Files
ppsspp/Common/CMakeLists.txt
T
Henrik RydgårdandClaude Opus 5.5 f3c69fc5d1 Remove FakeJit and the pre-IR JitBlockCache
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>
2026-10-15 02:24:25 +02:00

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})