mirror of
https://github.com/hrydgard/ppsspp.git
synced 2026-07-27 17:24:59 +02:00
Mirrors the earlier Common extraction. The old "core" target folded in all of GPU/ (~200 files) plus a few ext/ files wholesale; Windows already treats GPU as its own project (GPU.vcxproj), so GPU/CMakeLists.txt splits that out too. GPU has a genuine two-way dependency with Core (Core/System.cpp calls GPU_Init(), GPU/* calls back into Core for Memory/Config/CoreTiming/etc), so GPU is a CMake OBJECT library: its object files are always included wherever consumed instead of being lazily pulled from an archive, avoiding the GNU ld single-pass archive-ordering problem a two-way STATIC dependency would hit. Also fixed a few library misattributions discovered while tracing what each file actually uses: - GlslangLibs (glslang/spirv-cross) moved from Core to Common, since it's Common/GPU/ShaderTranslation.cpp and VulkanContext.cpp that call into it directly. It only worked before because Core happened to always be linked after Common. - ZSTD and OPENGL_LIBRARIES/X11_LIBRARIES moved from Core to GPU, matching where they're actually called (GPU/Debugger/Record.cpp and Playback.cpp for ZSTD, GPU/GLES for raw gl*() calls). - GPU also needs Ext::Snappy directly (Playback.cpp calls snappy_uncompress) and the libretro-common include dir under LIBRETRO, both previously inherited for free by accident. Also fixed USE_DISCORD's add_compile_definitions ordering: it was being defined after ppsspp_ui's add_library call, so the UI target never actually saw it on non-MSVC platforms. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01PSNaZnHCjmryS3ziVN9gZU