add_library(videocommon AbstractFramebuffer.cpp AbstractFramebuffer.h AbstractGfx.cpp AbstractGfx.h AbstractShader.h AbstractStagingTexture.cpp AbstractStagingTexture.h AbstractTexture.cpp AbstractTexture.h Assets/CustomAsset.cpp Assets/CustomAsset.h Assets/CustomAssetLibrary.cpp Assets/CustomAssetLibrary.h Assets/CustomAssetLoader.cpp Assets/CustomAssetLoader.h Assets/CustomTextureData.cpp Assets/CustomTextureData.h Assets/DirectFilesystemAssetLibrary.cpp Assets/DirectFilesystemAssetLibrary.h Assets/MaterialAsset.cpp Assets/MaterialAsset.h Assets/ShaderAsset.cpp Assets/ShaderAsset.h Assets/TextureAsset.cpp Assets/TextureAsset.h AsyncRequests.cpp AsyncRequests.h AsyncShaderCompiler.cpp AsyncShaderCompiler.h BoundingBox.cpp BoundingBox.h BPFunctions.cpp BPFunctions.h BPMemory.cpp BPMemory.h BPStructs.cpp BPStructs.h CommandProcessor.cpp CommandProcessor.h ConstantManager.h Constants.h CPMemory.cpp CPMemory.h CPUCull.cpp CPUCull.h CPUCullImpl.h DriverDetails.cpp DriverDetails.h Fifo.cpp Fifo.h FramebufferManager.cpp FramebufferManager.h FramebufferShaderGen.cpp FramebufferShaderGen.h FrameDumper.cpp FrameDumper.h FrameDumpFFMpeg.h FreeLookCamera.cpp FreeLookCamera.h GeometryShaderGen.cpp GeometryShaderGen.h GeometryShaderManager.cpp GeometryShaderManager.h GraphicsModSystem/Config/GraphicsMod.cpp GraphicsModSystem/Config/GraphicsMod.h GraphicsModSystem/Config/GraphicsModFeature.cpp GraphicsModSystem/Config/GraphicsModFeature.h GraphicsModSystem/Config/GraphicsModGroup.cpp GraphicsModSystem/Config/GraphicsModGroup.h GraphicsModSystem/Config/GraphicsTarget.cpp GraphicsModSystem/Config/GraphicsTarget.h GraphicsModSystem/Config/GraphicsTargetGroup.cpp GraphicsModSystem/Config/GraphicsTargetGroup.h GraphicsModSystem/Constants.h GraphicsModSystem/Runtime/Actions/MoveAction.cpp GraphicsModSystem/Runtime/Actions/MoveAction.h GraphicsModSystem/Runtime/Actions/PrintAction.cpp GraphicsModSystem/Runtime/Actions/PrintAction.h GraphicsModSystem/Runtime/Actions/ScaleAction.cpp GraphicsModSystem/Runtime/Actions/ScaleAction.h GraphicsModSystem/Runtime/Actions/SkipAction.cpp GraphicsModSystem/Runtime/Actions/SkipAction.h GraphicsModSystem/Runtime/FBInfo.cpp GraphicsModSystem/Runtime/FBInfo.h GraphicsModSystem/Runtime/GraphicsModAction.h GraphicsModSystem/Runtime/GraphicsModActionData.h GraphicsModSystem/Runtime/GraphicsModActionFactory.cpp GraphicsModSystem/Runtime/GraphicsModActionFactory.h GraphicsModSystem/Runtime/GraphicsModManager.cpp GraphicsModSystem/Runtime/GraphicsModManager.h HiresTextures.cpp HiresTextures.h IndexGenerator.cpp IndexGenerator.h LightingShaderGen.cpp LightingShaderGen.h LookUpTables.h NativeVertexFormat.h NetPlayChatUI.cpp NetPlayChatUI.h NetPlayGolfUI.cpp NetPlayGolfUI.h OnScreenDisplay.cpp OnScreenDisplay.h OnScreenUI.cpp OnScreenUI.h OnScreenUIKeyMap.h OpcodeDecoding.cpp OpcodeDecoding.h PerfQueryBase.cpp PerfQueryBase.h PerformanceMetrics.cpp PerformanceMetrics.h PerformanceTracker.cpp PerformanceTracker.h PixelEngine.cpp PixelEngine.h PixelShaderGen.cpp PixelShaderGen.h PixelShaderManager.cpp PixelShaderManager.h PostProcessing.cpp PostProcessing.h Present.cpp Present.h RenderBase.cpp RenderBase.h RenderState.cpp RenderState.h ShaderCache.cpp ShaderCache.h ShaderGenCommon.cpp ShaderGenCommon.h Spirv.cpp Spirv.h Statistics.cpp Statistics.h TextureCacheBase.cpp TextureCacheBase.h TextureConfig.cpp TextureConfig.h TextureConversionShader.cpp TextureConversionShader.h TextureConverterShaderGen.cpp TextureConverterShaderGen.h TextureDecoder.h TextureDecoder_Common.cpp TextureDecoder_Util.h TextureInfo.cpp TextureInfo.h TMEM.cpp TMEM.h UberShaderCommon.cpp UberShaderCommon.h UberShaderPixel.cpp UberShaderPixel.h UberShaderVertex.cpp UberShaderVertex.h VertexLoader.cpp VertexLoader.h VertexLoaderBase.cpp VertexLoaderBase.h VertexLoaderManager.cpp VertexLoaderManager.h VertexLoaderUtils.h VertexLoader_Color.cpp VertexLoader_Color.h VertexLoader_Normal.cpp VertexLoader_Normal.h VertexLoader_Position.cpp VertexLoader_Position.h VertexLoader_TextCoord.cpp VertexLoader_TextCoord.h VertexManagerBase.cpp VertexManagerBase.h VertexShaderGen.cpp VertexShaderGen.h VertexShaderManager.cpp VertexShaderManager.h VideoBackendBase.cpp VideoBackendBase.h VideoEvents.h VideoCommon.h VideoConfig.cpp VideoConfig.h VideoState.cpp VideoState.h Widescreen.cpp Widescreen.h XFMemory.cpp XFMemory.h XFStructs.cpp XFStructs.h ) target_link_libraries(videocommon PUBLIC core PRIVATE fmt::fmt spng::spng xxhash imgui implot glslang ) if(_M_X86) target_sources(videocommon PRIVATE TextureDecoder_x64.cpp VertexLoaderX64.cpp VertexLoaderX64.h ) elseif(_M_ARM_64) target_sources(videocommon PRIVATE VertexLoaderARM64.cpp VertexLoaderARM64.h TextureDecoder_Generic.cpp ) else() target_sources(videocommon PRIVATE TextureDecoder_Generic.cpp ) endif() if(FFmpeg_FOUND) target_sources(videocommon PRIVATE FrameDumpFFMpeg.cpp ) target_link_libraries(videocommon PRIVATE FFmpeg::avcodec FFmpeg::avformat FFmpeg::avutil FFmpeg::swresample FFmpeg::swscale ) if(APPLE) target_link_libraries(videocommon PRIVATE ${COREMEDIA_LIBRARY} ${VIDEOTOOLBOX_LIBRARY} ${COREVIDEO_LIBRARY} ${AUDIOTOOLBOX_LIBRARY} ) endif() endif() # Silence warnings on glslang by flagging it as a system include target_include_directories(videocommon SYSTEM PUBLIC ${CMAKE_SOURCE_DIR}/Externals/glslang/glslang/Public SYSTEM PRIVATE ${CMAKE_SOURCE_DIR}/Externals/glslang/StandAlone ${CMAKE_SOURCE_DIR}/Externals/glslang/SPIRV ${CMAKE_SOURCE_DIR}/Externals/glslang ) if(MSVC) # Add precompiled header target_link_libraries(videocommon PRIVATE use_pch) endif()