mirror of
https://github.com/hrydgard/ppsspp.git
synced 2026-10-21 18:29:05 +02:00
FakeJit was the native JIT for architectures without one, but the config already forces those onto the IR interpreter, so CreateNativeJit() now returns that instead. The vertex decoder fallback no longer needs FakeEmitter. JitBlockCache was the block cache of the pre-IR JITs. Its header keeps the debug interface types the IR block caches use. Also removes the JitInterface link hooks only it called, and the JitState fields tied to it. This fixes a null dereference in the ImDebugger memory section, which read GetBlockCache(), always null with the IR JITs. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
431 lines
9.5 KiB
CMake
431 lines
9.5 KiB
CMake
if(WIN32)
|
|
set(CommonD3D
|
|
GPU/D3D11/thin3d_d3d11.cpp
|
|
GPU/D3D11/D3D11Loader.cpp
|
|
GPU/D3D11/D3D11Loader.h
|
|
)
|
|
endif()
|
|
|
|
# GLFeatures (gl_extensions) is used by the shader generators, so it's built even without GL.
|
|
if(NOT NO_OPENGL)
|
|
set(CommonGL
|
|
GPU/OpenGL/GLCommon.h
|
|
GPU/OpenGL/GLDebugLog.cpp
|
|
GPU/OpenGL/GLDebugLog.h
|
|
GPU/OpenGL/GLSLProgram.cpp
|
|
GPU/OpenGL/GLSLProgram.h
|
|
GPU/OpenGL/gl3stub.c
|
|
GPU/OpenGL/gl3stub.h
|
|
GPU/OpenGL/GLFrameData.cpp
|
|
GPU/OpenGL/GLFrameData.h
|
|
GPU/OpenGL/thin3d_gl.cpp
|
|
GPU/OpenGL/GLMemory.cpp
|
|
GPU/OpenGL/GLMemory.h
|
|
GPU/OpenGL/GLRenderManager.cpp
|
|
GPU/OpenGL/GLRenderManager.h
|
|
GPU/OpenGL/GLQueueRunner.cpp
|
|
GPU/OpenGL/GLQueueRunner.h
|
|
GPU/OpenGL/GLProfiler.cpp
|
|
GPU/OpenGL/GLProfiler.h
|
|
GPU/OpenGL/DataFormatGL.cpp
|
|
GPU/OpenGL/DataFormatGL.h
|
|
GPU/OpenGL/OpenGLGraphicsContext.cpp
|
|
GPU/OpenGL/OpenGLGraphicsContext.h
|
|
)
|
|
endif()
|
|
|
|
set(CommonVR
|
|
VR/OpenXRLoader.cpp
|
|
VR/OpenXRLoader.h
|
|
VR/PPSSPPVR.cpp
|
|
VR/PPSSPPVR.h
|
|
VR/VRBase.cpp
|
|
VR/VRBase.h
|
|
VR/VRFramebuffer.cpp
|
|
VR/VRFramebuffer.h
|
|
VR/VRInput.cpp
|
|
VR/VRInput.h
|
|
VR/VRMath.cpp
|
|
VR/VRMath.h
|
|
VR/VRRenderer.cpp
|
|
VR/VRRenderer.h
|
|
)
|
|
|
|
add_library(Common STATIC
|
|
ABI.cpp
|
|
ABI.h
|
|
CPUDetect.cpp
|
|
CPUDetect.h
|
|
Thunk.cpp
|
|
Thunk.h
|
|
x64Analyzer.cpp
|
|
x64Analyzer.h
|
|
x64Emitter.cpp
|
|
x64Emitter.h
|
|
ArmCPUDetect.cpp
|
|
ArmCommon.h
|
|
ArmEmitter.h
|
|
ArmEmitter.cpp
|
|
Arm64Emitter.h
|
|
Arm64Emitter.cpp
|
|
ArmEmitter.h
|
|
ArmEmitter.cpp
|
|
RiscVCPUDetect.cpp
|
|
RiscVEmitter.cpp
|
|
RiscVEmitter.h
|
|
LoongArchCPUDetect.cpp
|
|
LoongArch64Emitter.cpp
|
|
LoongArch64Emitter.h
|
|
${CommonD3D}
|
|
${CommonVR}
|
|
Serialize/Serializer.cpp
|
|
Serialize/Serializer.h
|
|
Serialize/SerializeDeque.h
|
|
Serialize/SerializeFuncs.h
|
|
Serialize/SerializeList.h
|
|
Serialize/SerializeMap.h
|
|
Serialize/SerializeSet.h
|
|
Crypto/md5.cpp
|
|
Crypto/md5.h
|
|
Crypto/sha1.cpp
|
|
Crypto/sha1.h
|
|
Crypto/sha256.cpp
|
|
Crypto/sha256.h
|
|
Data/Collections/ConstMap.h
|
|
Data/Collections/FixedSizeQueue.h
|
|
Data/Collections/Hashmaps.h
|
|
Data/Collections/TinySet.h
|
|
Data/Collections/FastVec.h
|
|
Data/Collections/CharQueue.h
|
|
Data/Collections/CyclicBuffer.h
|
|
Data/Collections/LinkedList.h
|
|
Data/Collections/Slice.h
|
|
Data/Color/RGBAUtil.cpp
|
|
Data/Color/RGBAUtil.h
|
|
Data/Convert/ColorConv.cpp
|
|
Data/Convert/ColorConv.h
|
|
Data/Convert/SmallDataConvert.cpp
|
|
Data/Convert/SmallDataConvert.h
|
|
Data/Encoding/Base64.cpp
|
|
Data/Encoding/Base64.h
|
|
Data/Encoding/Compression.cpp
|
|
Data/Encoding/Compression.h
|
|
Data/Encoding/Shiftjis.h
|
|
Data/Encoding/Utf8.cpp
|
|
Data/Encoding/Utf8.h
|
|
Data/Encoding/Utf16.h
|
|
Data/Format/RIFF.cpp
|
|
Data/Format/RIFF.h
|
|
Data/Format/IniFile.cpp
|
|
Data/Format/IniFile.h
|
|
Data/Format/JSONReader.h
|
|
Data/Format/JSONReader.cpp
|
|
Data/Format/JSONWriter.h
|
|
Data/Format/JSONWriter.cpp
|
|
Data/Format/DDSLoad.cpp
|
|
Data/Format/DDSLoad.h
|
|
Data/Format/PNGLoad.cpp
|
|
Data/Format/PNGLoad.h
|
|
Data/Format/ZIMLoad.cpp
|
|
Data/Format/ZIMLoad.h
|
|
Data/Format/ZIMSave.cpp
|
|
Data/Format/ZIMSave.h
|
|
Data/Hash/Hash.cpp
|
|
Data/Hash/Hash.h
|
|
Data/Text/Demangle.cpp
|
|
Data/Text/Demangle.h
|
|
Data/Text/I18n.cpp
|
|
Data/Text/I18n.h
|
|
Data/Text/Parsers.cpp
|
|
Data/Text/Parsers.h
|
|
Data/Text/StringWriter.h
|
|
Data/Text/WrapText.cpp
|
|
Data/Text/WrapText.h
|
|
Data/Random/Rng.h
|
|
File/VFS/VFS.h
|
|
File/VFS/VFS.cpp
|
|
File/VFS/ZipFileReader.cpp
|
|
File/VFS/ZipFileReader.h
|
|
File/VFS/SevenZipFileReader.cpp
|
|
File/VFS/SevenZipFileReader.h
|
|
File/VFS/DirectoryReader.cpp
|
|
File/VFS/DirectoryReader.h
|
|
File/AndroidStorage.h
|
|
File/AndroidStorage.cpp
|
|
File/AndroidContentURI.h
|
|
File/AndroidContentURI.cpp
|
|
File/DiskFree.h
|
|
File/DiskFree.cpp
|
|
File/Path.h
|
|
File/Path.cpp
|
|
File/PathBrowser.h
|
|
File/PathBrowser.cpp
|
|
File/FileUtil.cpp
|
|
File/FileUtil.h
|
|
File/DirListing.cpp
|
|
File/DirListing.h
|
|
File/FileDescriptor.cpp
|
|
File/FileDescriptor.h
|
|
GPU/GraphicsContext.h
|
|
GPU/DataFormat.h
|
|
GPU/MiscTypes.h
|
|
GPU/GPUBackendCommon.cpp
|
|
GPU/GPUBackendCommon.h
|
|
GPU/thin3d.cpp
|
|
GPU/thin3d.h
|
|
GPU/thin3d_create.h
|
|
GPU/Shader.cpp
|
|
GPU/Shader.h
|
|
GPU/ShaderWriter.cpp
|
|
GPU/ShaderWriter.h
|
|
GPU/ShaderTranslation.h
|
|
GPU/ShaderTranslation.cpp
|
|
GPU/OpenGL/GLFeatures.cpp
|
|
GPU/OpenGL/GLFeatures.h
|
|
${CommonGL}
|
|
GPU/Vulkan/VulkanAlloc.h
|
|
GPU/Vulkan/VulkanBarrier.cpp
|
|
GPU/Vulkan/VulkanBarrier.h
|
|
GPU/Vulkan/VulkanDebug.cpp
|
|
GPU/Vulkan/VulkanDebug.h
|
|
GPU/Vulkan/VulkanContext.cpp
|
|
GPU/Vulkan/VulkanContext.h
|
|
GPU/Vulkan/FixedSPIRVCache.h
|
|
GPU/Vulkan/VulkanDescSet.cpp
|
|
GPU/Vulkan/VulkanDescSet.h
|
|
GPU/Vulkan/VulkanFramebuffer.cpp
|
|
GPU/Vulkan/VulkanFramebuffer.h
|
|
GPU/Vulkan/VulkanImage.cpp
|
|
GPU/Vulkan/VulkanImage.h
|
|
GPU/Vulkan/VulkanLoader.cpp
|
|
GPU/Vulkan/VulkanLoader.h
|
|
GPU/Vulkan/VulkanMemory.cpp
|
|
GPU/Vulkan/VulkanMemory.h
|
|
GPU/Vulkan/VulkanProfiler.cpp
|
|
GPU/Vulkan/VulkanProfiler.h
|
|
GPU/Vulkan/thin3d_vulkan.cpp
|
|
GPU/Vulkan/VulkanRenderManager.cpp
|
|
GPU/Vulkan/VulkanRenderManager.h
|
|
GPU/Vulkan/VulkanQueueRunner.cpp
|
|
GPU/Vulkan/VulkanQueueRunner.h
|
|
GPU/Vulkan/VulkanFrameData.cpp
|
|
GPU/Vulkan/VulkanFrameData.h
|
|
GPU/Vulkan/VulkanPresentation.h
|
|
GPU/Vulkan/VulkanGraphicsContext.cpp
|
|
GPU/Vulkan/VulkanGraphicsContext.h
|
|
Input/GestureDetector.cpp
|
|
Input/GestureDetector.h
|
|
Input/KeyCodes.h
|
|
Input/InputState.cpp
|
|
Input/InputState.h
|
|
Math/SIMDHeaders.h
|
|
Math/SIMDHeaders.h
|
|
Math/CrossSIMD.h
|
|
Math/curves.cpp
|
|
Math/curves.h
|
|
Math/expression_parser.cpp
|
|
Math/expression_parser.h
|
|
Math/fast/fast_matrix.h
|
|
Math/geom2d.h
|
|
Math/lin/matrix4x4.cpp
|
|
Math/lin/matrix4x4.h
|
|
Math/lin/vec3.cpp
|
|
Math/lin/vec3.h
|
|
Math/math_util.cpp
|
|
Math/math_util.h
|
|
Math/Statistics.h
|
|
Math/Statistics.cpp
|
|
Net/HTTPClient.cpp
|
|
Net/HTTPClient.h
|
|
Net/HTTPHeaders.cpp
|
|
Net/HTTPHeaders.h
|
|
Net/HTTPNaettRequest.cpp
|
|
Net/HTTPNaettRequest.h
|
|
Net/HTTPRequest.cpp
|
|
Net/HTTPRequest.h
|
|
Net/HTTPServer.cpp
|
|
Net/HTTPServer.h
|
|
Net/NetBuffer.cpp
|
|
Net/NetBuffer.h
|
|
Net/Resolve.cpp
|
|
Net/Resolve.h
|
|
Net/Sinks.cpp
|
|
Net/Sinks.h
|
|
Net/SocketCompat.h
|
|
Net/URL.cpp
|
|
Net/URL.h
|
|
Net/WebsocketServer.cpp
|
|
Net/WebsocketServer.h
|
|
Profiler/Profiler.cpp
|
|
Profiler/Profiler.h
|
|
Render/AtlasGen.cpp
|
|
Render/AtlasGen.h
|
|
Render/TextureAtlas.cpp
|
|
Render/TextureAtlas.h
|
|
Render/DrawBuffer.cpp
|
|
Render/DrawBuffer.h
|
|
Render/ManagedTexture.cpp
|
|
Render/ManagedTexture.h
|
|
Render/Text/Font.h
|
|
Render/Text/draw_text.cpp
|
|
Render/Text/draw_text.h
|
|
Render/Text/draw_text_android.cpp
|
|
Render/Text/draw_text_android.h
|
|
Render/Text/draw_text_win.cpp
|
|
Render/Text/draw_text_win.h
|
|
Render/Text/draw_text_uwp.cpp
|
|
Render/Text/draw_text_uwp.h
|
|
Audio/AudioBackend.h
|
|
Audio/SampleRing.h
|
|
System/Display.cpp
|
|
System/Display.h
|
|
System/Application.h
|
|
System/System.h
|
|
System/NativeApp.h
|
|
System/Request.cpp
|
|
System/Request.h
|
|
System/OSD.cpp
|
|
System/OSD.h
|
|
Thread/Barrier.h
|
|
Thread/Channel.h
|
|
Thread/Event.h
|
|
Thread/ParallelLoop.cpp
|
|
Thread/ParallelLoop.h
|
|
Thread/Promise.h
|
|
Thread/ThreadUtil.cpp
|
|
Thread/ThreadUtil.h
|
|
Thread/ThreadManager.cpp
|
|
Thread/ThreadManager.h
|
|
Thread/Waitable.h
|
|
UI/AsyncImageFileView.cpp
|
|
UI/AsyncImageFileView.h
|
|
UI/Root.cpp
|
|
UI/Root.h
|
|
UI/Screen.cpp
|
|
UI/Screen.h
|
|
UI/ScreenManager.cpp
|
|
UI/ScreenManager.h
|
|
UI/UI.cpp
|
|
UI/UI.h
|
|
UI/Context.cpp
|
|
UI/Context.h
|
|
UI/IconCache.cpp
|
|
UI/IconCache.h
|
|
UI/UIScreen.cpp
|
|
UI/UIScreen.h
|
|
UI/Notice.cpp
|
|
UI/Notice.h
|
|
UI/Tween.cpp
|
|
UI/Tween.h
|
|
UI/View.cpp
|
|
UI/View.h
|
|
UI/ViewGroup.cpp
|
|
UI/ViewGroup.h
|
|
UI/ScrollView.cpp
|
|
UI/ScrollView.h
|
|
UI/TabHolder.cpp
|
|
UI/TabHolder.h
|
|
UI/PopupScreens.cpp
|
|
UI/PopupScreens.h
|
|
BitScan.h
|
|
BitSet.h
|
|
Buffer.h
|
|
Buffer.cpp
|
|
CodeBlock.h
|
|
Common.h
|
|
CommonFuncs.h
|
|
CommonTypes.h
|
|
CommonWindows.h
|
|
DbgNew.h
|
|
FakeCPUDetect.cpp
|
|
ExceptionHandlerSetup.cpp
|
|
ExceptionHandlerSetup.h
|
|
GhidraClient.h
|
|
GhidraClient.cpp
|
|
Log.h
|
|
Log.cpp
|
|
Log/ConsoleListener.cpp
|
|
Log/ConsoleListener.h
|
|
Log/LogManager.cpp
|
|
Log/LogManager.h
|
|
LogReporting.cpp
|
|
LogReporting.h
|
|
MachineContext.h
|
|
MemArenaAndroid.cpp
|
|
MemArenaDarwin.cpp
|
|
MemArenaPosix.cpp
|
|
MemArenaWin32.cpp
|
|
MemArenaHorizon.cpp
|
|
MemArena.h
|
|
MemoryUtil.cpp
|
|
MemoryUtilHorizon.cpp
|
|
MemoryUtil.h
|
|
MsgHandler.h
|
|
OSVersion.cpp
|
|
OSVersion.h
|
|
StringUtils.cpp
|
|
StringUtils.h
|
|
Swap.h
|
|
SysError.h
|
|
SysError.cpp
|
|
TimeUtil.cpp
|
|
TimeUtil.h
|
|
${CMAKE_SOURCE_DIR}/ext/jpge/jpgd.cpp
|
|
${CMAKE_SOURCE_DIR}/ext/jpge/jpgd.h
|
|
${CMAKE_SOURCE_DIR}/ext/jpge/jpge.cpp
|
|
${CMAKE_SOURCE_DIR}/ext/jpge/jpge.h
|
|
)
|
|
|
|
if(LIBRETRO)
|
|
target_include_directories(Common PRIVATE ${CMAKE_SOURCE_DIR}/libretro/libretro-common/include)
|
|
endif()
|
|
|
|
setup_target_project(Common Common)
|
|
|
|
if(IOS AND NOT NO_OPENGL)
|
|
target_compile_definitions(Common PUBLIC GLES_SILENCE_DEPRECATION)
|
|
endif()
|
|
|
|
target_link_libraries(Common Ext::Snappy cpu_features)
|
|
|
|
if(SDL_LIB_TARGET AND TARGET SDL3::Headers)
|
|
target_link_libraries(Common SDL3::Headers)
|
|
endif()
|
|
|
|
if(NOT LIBRETRO)
|
|
target_link_libraries(Common imgui)
|
|
endif()
|
|
|
|
if(ARM64)
|
|
if(ANDROID)
|
|
target_link_libraries(Common adrenotools)
|
|
endif()
|
|
endif()
|
|
|
|
target_compile_definitions(Common PRIVATE Z7_CRC_NUM_TABLES=1)
|
|
|
|
if(TARGET Ext::GLEW)
|
|
target_link_libraries(Common Ext::GLEW)
|
|
endif()
|
|
|
|
if(WIN32)
|
|
target_link_libraries(Common winmm dsound dxguid d2d1 dwrite d3d11 Version dbghelp)
|
|
endif()
|
|
|
|
target_link_libraries(Common ${LIBZIP_LIBRARY} 7zip ${PNG_LIBRARIES} basis_universal ${ZLIB_LIBRARY} pugixml vma gason udis86 ${RT_LIB} ${ATOMIC_LIB})
|
|
|
|
# ZIMLoad.cpp/ZIMSave.cpp, Serializer.cpp, and Render/TextureAtlas.cpp call directly into zstd.
|
|
if(USE_SYSTEM_ZSTD)
|
|
target_include_directories(Common PRIVATE ${ZSTD_INCLUDE_DIR})
|
|
target_link_libraries(Common ${ZSTD_LIBRARY})
|
|
else()
|
|
target_link_libraries(Common libzstd_static)
|
|
endif()
|
|
|
|
# Common/GPU/ShaderTranslation.cpp and Common/GPU/Vulkan/VulkanContext.cpp call directly into
|
|
# glslang/spirv-cross, so Common needs to declare this dependency itself rather than relying on
|
|
# some downstream consumer happening to also link it (that was the previous, fragile setup: this
|
|
# was only linked to the old combined "core" target, which happened to always be linked after
|
|
# Common everywhere it mattered).
|
|
target_link_libraries(Common ${GlslangLibs})
|