add_library(videocommon AbstractFramebuffer.cpp AbstractFramebuffer.h AbstractShader.h AbstractStagingTexture.cpp AbstractStagingTexture.h AbstractTexture.cpp AbstractTexture.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 CPMemory.cpp CPMemory.h DriverDetails.cpp DriverDetails.h Fifo.cpp Fifo.h FPSCounter.cpp FPSCounter.h FramebufferManager.cpp FramebufferManager.h FramebufferShaderGen.cpp FramebufferShaderGen.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/GraphicsModActionFactory.cpp GraphicsModSystem/Runtime/GraphicsModActionFactory.h GraphicsModSystem/Runtime/GraphicsModManager.cpp GraphicsModSystem/Runtime/GraphicsModManager.h HiresTextures.cpp HiresTextures.h HiresTextures_DDSLoader.cpp IndexGenerator.cpp IndexGenerator.h LightingShaderGen.cpp LightingShaderGen.h LookUpTables.h NativeVertexFormat.h NetPlayChatUI.cpp NetPlayChatUI.h NetPlayGolfUI.cpp NetPlayGolfUI.h OnScreenDisplay.cpp OnScreenDisplay.h OpcodeDecoding.cpp OpcodeDecoding.h PerfQueryBase.cpp PerfQueryBase.h PixelEngine.cpp PixelEngine.h PixelShaderGen.cpp PixelShaderGen.h PixelShaderManager.cpp PixelShaderManager.h PostProcessing.cpp PostProcessing.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 VideoCommon.h VideoConfig.cpp VideoConfig.h VideoState.cpp VideoState.h XFMemory.cpp XFMemory.h XFStructs.cpp XFStructs.h ) target_link_libraries(videocommon PUBLIC core PRIVATE fmt::fmt png xxhash imgui 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 FrameDump.cpp FrameDump.h ) 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()