mirror of
https://github.com/hrydgard/ppsspp.git
synced 2026-10-15 23:40:29 +02:00
The libretro core is the frontend, and the headless tools are the test and debugging hosts. The Windows, UWP, Android, iOS, macOS and SDL apps, the UI framework and imgui go, along with what only they used: the Win32 debugger hooks (g_frameMutex, the shutdown lock), JNI thread attachment, the Android text drawer, RAIntegration, Discord, recent files, game installs, tilt input, the audio resamplers, the control mapper, memstick moving and the remote ISO and upload server modes. The web server keeps the debugger. The MSVC, Gradle and ndk-build projects go too.
206 lines
5.4 KiB
CMake
206 lines
5.4 KiB
CMake
set(GPUArch)
|
|
list(APPEND GPUArch
|
|
Common/VertexDecoderArm.cpp
|
|
Common/VertexDecoderArm64.cpp
|
|
Common/VertexDecoderX86.cpp
|
|
Software/DrawPixelX86.cpp
|
|
Software/SamplerX86.cpp
|
|
Common/VertexDecoderRiscV.cpp
|
|
Common/VertexDecoderLoongArch64.cpp
|
|
)
|
|
|
|
set(GPU_GLES
|
|
GLES/StencilBufferGLES.cpp
|
|
GLES/GPU_GLES.cpp
|
|
GLES/GPU_GLES.h
|
|
GLES/FragmentTestCacheGLES.cpp
|
|
GLES/FragmentTestCacheGLES.h
|
|
GLES/FramebufferManagerGLES.cpp
|
|
GLES/FramebufferManagerGLES.h
|
|
GLES/ShaderManagerGLES.cpp
|
|
GLES/ShaderManagerGLES.h
|
|
GLES/StateMappingGLES.cpp
|
|
GLES/StateMappingGLES.h
|
|
GLES/TextureCacheGLES.cpp
|
|
GLES/TextureCacheGLES.h
|
|
GLES/DrawEngineGLES.cpp
|
|
GLES/DrawEngineGLES.h
|
|
)
|
|
|
|
set(GPU_VULKAN
|
|
Vulkan/DrawEngineVulkan.cpp
|
|
Vulkan/DrawEngineVulkan.h
|
|
Vulkan/FramebufferManagerVulkan.cpp
|
|
Vulkan/FramebufferManagerVulkan.h
|
|
Vulkan/GPU_Vulkan.cpp
|
|
Vulkan/GPU_Vulkan.h
|
|
Vulkan/PipelineManagerVulkan.cpp
|
|
Vulkan/PipelineManagerVulkan.h
|
|
Vulkan/ShaderManagerVulkan.cpp
|
|
Vulkan/ShaderManagerVulkan.h
|
|
Vulkan/StateMappingVulkan.cpp
|
|
Vulkan/StateMappingVulkan.h
|
|
Vulkan/TextureCacheVulkan.cpp
|
|
Vulkan/TextureCacheVulkan.h
|
|
Vulkan/VulkanUtil.cpp
|
|
Vulkan/VulkanUtil.h
|
|
)
|
|
|
|
set(GPU_D3D11
|
|
D3D11/DrawEngineD3D11.cpp
|
|
D3D11/DrawEngineD3D11.h
|
|
D3D11/FramebufferManagerD3D11.cpp
|
|
D3D11/FramebufferManagerD3D11.h
|
|
D3D11/GPU_D3D11.cpp
|
|
D3D11/GPU_D3D11.h
|
|
D3D11/D3D11Util.cpp
|
|
D3D11/D3D11Util.h
|
|
D3D11/ShaderManagerD3D11.cpp
|
|
D3D11/ShaderManagerD3D11.h
|
|
D3D11/StateMappingD3D11.cpp
|
|
D3D11/StateMappingD3D11.h
|
|
D3D11/TextureCacheD3D11.cpp
|
|
D3D11/TextureCacheD3D11.h
|
|
)
|
|
|
|
# We build Vulkan even on Apple to avoid annoying build differences.
|
|
set(GPU_IMPLS ${GPU_GLES} ${GPU_VULKAN})
|
|
if(WIN32)
|
|
list(APPEND GPU_IMPLS ${GPU_D3D11})
|
|
endif()
|
|
|
|
set(GPU_SOURCES
|
|
${GPUArch}
|
|
${GPU_IMPLS}
|
|
${GPU_NEON}
|
|
Common/Draw2D.cpp
|
|
Common/Draw2D.h
|
|
Common/DepthBufferCommon.cpp
|
|
Common/DepthRaster.cpp
|
|
Common/DepthRaster.h
|
|
Common/TextureShaderCommon.cpp
|
|
Common/TextureShaderCommon.h
|
|
Common/DepalettizeShaderCommon.cpp
|
|
Common/DepalettizeShaderCommon.h
|
|
Common/FragmentShaderGenerator.cpp
|
|
Common/FragmentShaderGenerator.h
|
|
Common/VertexShaderGenerator.cpp
|
|
Common/VertexShaderGenerator.h
|
|
Common/FramebufferManagerCommon.cpp
|
|
Common/FramebufferManagerCommon.h
|
|
Common/GPUDebugInterface.cpp
|
|
Common/GPUDebugInterface.h
|
|
Common/GPUStateUtils.cpp
|
|
Common/GPUStateUtils.h
|
|
Common/DrawEngineCommon.cpp
|
|
Common/DrawEngineCommon.h
|
|
Common/PresentationCommon.cpp
|
|
Common/PresentationCommon.h
|
|
Common/ReinterpretFramebuffer.cpp
|
|
Common/ReinterpretFramebuffer.h
|
|
Common/ShaderId.cpp
|
|
Common/ShaderId.h
|
|
Common/ShaderUniforms.cpp
|
|
Common/ShaderUniforms.h
|
|
Common/ShaderCommon.cpp
|
|
Common/ShaderCommon.h
|
|
Common/SplineCommon.cpp
|
|
Common/SplineCommon.h
|
|
Common/StencilCommon.cpp
|
|
Common/StencilCommon.h
|
|
Common/SoftwareTransformCommon.cpp
|
|
Common/SoftwareTransformCommon.h
|
|
Common/VertexDecoderCommon.cpp
|
|
Common/VertexDecoderCommon.h
|
|
Common/VertexDecoderHandwritten.cpp
|
|
Common/VertexDecoderHandwritten.h
|
|
Common/VertexReader.h
|
|
Common/TransformCommon.cpp
|
|
Common/TransformCommon.h
|
|
Common/IndexGenerator.cpp
|
|
Common/IndexGenerator.h
|
|
Common/ImageCommon.h
|
|
Common/TextureDecoder.cpp
|
|
Common/TextureDecoder.h
|
|
Common/TextureCacheCommon.cpp
|
|
Common/TextureCacheCommon.h
|
|
Common/TextureScalerCommon.cpp
|
|
Common/TextureScalerCommon.h
|
|
Common/PostShader.cpp
|
|
Common/PostShader.h
|
|
Common/TextureReplacer.cpp
|
|
Common/TextureReplacer.h
|
|
Common/ReplacedTexture.cpp
|
|
Common/ReplacedTexture.h
|
|
Debugger/Breakpoints.cpp
|
|
Debugger/Breakpoints.h
|
|
Debugger/Debugger.cpp
|
|
Debugger/Debugger.h
|
|
Debugger/GECommandTable.cpp
|
|
Debugger/GECommandTable.h
|
|
Debugger/Playback.cpp
|
|
Debugger/Playback.h
|
|
Debugger/Record.cpp
|
|
Debugger/Record.h
|
|
Debugger/RecordFormat.h
|
|
Debugger/State.cpp
|
|
Debugger/State.h
|
|
Debugger/Stepping.cpp
|
|
Debugger/Stepping.h
|
|
ge_constants.h
|
|
GeConstants.cpp
|
|
GPUDefinitions.h
|
|
GeDisasm.cpp
|
|
GeDisasm.h
|
|
GPU.cpp
|
|
GPU.h
|
|
GPUCommon.cpp
|
|
GPUCommon.h
|
|
GPUCommonHW.cpp
|
|
GPUCommonHW.h
|
|
GPUState.cpp
|
|
GPUState.h
|
|
GPUStateSIMDUtil.h
|
|
Math3D.cpp
|
|
Math3D.h
|
|
Software/BinManager.cpp
|
|
Software/BinManager.h
|
|
Software/Clipper.cpp
|
|
Software/Clipper.h
|
|
Software/DrawPixel.cpp
|
|
Software/DrawPixel.h
|
|
Software/FuncId.cpp
|
|
Software/FuncId.h
|
|
Software/GEMath.cpp
|
|
Software/GEMath.h
|
|
Software/Lighting.cpp
|
|
Software/Lighting.h
|
|
Software/Rasterizer.cpp
|
|
Software/Rasterizer.h
|
|
Software/RasterizerRectangle.cpp
|
|
Software/RasterizerRectangle.h
|
|
Software/RasterizerRegCache.cpp
|
|
Software/RasterizerRegCache.h
|
|
Software/Sampler.cpp
|
|
Software/Sampler.h
|
|
Software/SoftGpu.cpp
|
|
Software/SoftGpu.h
|
|
Software/TransformUnit.cpp
|
|
Software/TransformUnit.h
|
|
)
|
|
|
|
# GPU has a genuine two-way dependency with Core (Core/System.cpp calls GPU_Init(), while
|
|
# all of GPU/ calls back into Core for Memory/Config/CoreTiming/etc). An OBJECT library's
|
|
# object files are always included wherever it's consumed rather than being lazily pulled
|
|
# from an archive, which sidesteps the GNU ld single-pass archive-ordering problem a normal
|
|
# two-way STATIC dependency would hit. Core links this PUBLICLY so consumers of Core get it.
|
|
add_library(GPU OBJECT ${GPU_SOURCES})
|
|
target_compile_features(GPU PUBLIC cxx_std_17)
|
|
|
|
setup_target_project(GPU GPU)
|
|
|
|
# The only direct external dependencies of GPU/ itself (as opposed to Common/GPU/*, which
|
|
# already carries its own GL/Vulkan loader abstractions): raw gl*() calls in GPU/GLES, rzstd
|
|
# calls in GPU/Debugger/Record.cpp and Playback.cpp, and snappy_uncompress() in Playback.cpp.
|
|
target_link_libraries(GPU PUBLIC ${OPENGL_LIBRARIES} ${X11_LIBRARIES} Ext::Snappy libretro-common)
|