Files
ppsspp/Common/CMakeLists.txt
T
Henrik RydgårdandClaude Opus 5.5 5704b972e7 iOS: Remove OpenGL support from the app
The app now always uses the Metal view controller with Vulkan (MoltenVK),
for both the App Store and sideload builds. The GL view controller is gone,
and Common/GPU/OpenGL (except GLFeatures, used by the shader generators) and
GPU/GLES are no longer compiled for it. PPSSPP_API_ANY_GL is now off for
all of iOS except the libretro core, which still uses GLES.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-11 16:13:28 +02:00

416 lines
9.2 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
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/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/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
Input/GestureDetector.cpp
Input/GestureDetector.h
Input/KeyCodes.h
Input/InputState.cpp
Input/InputState.h
Math/SIMDHeaders.h
Math/SIMDHeaders.h
Math/curves.cpp
Math/curves.h
Math/expression_parser.cpp
Math/expression_parser.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/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/Channel.h
Thread/ParallelLoop.cpp
Thread/ParallelLoop.h
Thread/Promise.h
Thread/ThreadUtil.cpp
Thread/ThreadUtil.h
Thread/ThreadManager.cpp
Thread/ThreadManager.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
DbgNew.h
FakeEmitter.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
MemArenaAndroid.cpp
MemArenaDarwin.cpp
MemArenaPosix.cpp
MemArenaWin32.cpp
MemArenaHorizon.cpp
MemArena.h
MemoryUtil.cpp
MemoryUtilHorizon.cpp
MemoryUtil.h
OSVersion.cpp
OSVersion.h
StringUtils.cpp
StringUtils.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})