pcsx2/plugins/GSdx/CMakeLists.txt

324 lines
7.4 KiB
CMake

# Check that people use the good file
if(NOT TOP_CMAKE_WAS_SOURCED)
message(FATAL_ERROR "
You did not 'cmake' the good CMakeLists.txt file. Use the one in the top dir.
It is advice to delete all wrongly generated cmake stuff => CMakeFiles & CMakeCache.txt")
endif()
# plugin name (no version number to ease future version bump and bisect)
set(Output GSdx)
set(CommonFlags
-fno-operator-names # because Xbyak uses and()/xor()/or()/not() function
-Wno-unknown-pragmas
-Wno-parentheses
-Wunused-variable # __dummy variable need to be investigated
)
if(USE_ICC)
set(CommonFlags "${CommonFlags} -restrict")
endif()
set(GSdxFinalFlags ${CommonFlags})
if(CMAKE_COMPILER_IS_GNUCXX)
# Newer version default to a correct ABI
if (${GCC_VERSION} VERSION_LESS "5.1")
set(GSdxFinalFlags ${GSdxFinalFlags} -fabi-version=6)
endif()
endif()
if(XDG_STD)
set(GSdxFinalFlags ${GSdxFinalFlags} -DXDG_STD)
endif()
if(EGL_API AND EGL_FOUND)
set(GSdxFinalFlags ${GSdxFinalFlags} -DEGL_SUPPORTED)
endif()
if(OPENCL_API)
set(GSdxFinalFlags ${GSdxFinalFlags} -DENABLE_OPENCL)
endif()
set(GSdxSources
GLLoader.cpp
GLState.cpp
PSX/GPU.cpp
PSX/GPUDrawScanline.cpp
PSX/GPUDrawScanlineCodeGenerator.cpp
PSX/GPULocalMemory.cpp
PSX/GPURenderer.cpp
PSX/GPURendererSW.cpp
PSX/GPUSetupPrimCodeGenerator.cpp
PSX/GPUState.cpp
GS.cpp
GSAlignedClass.cpp
GSBlock.cpp
GSCapture.cpp
GSClut.cpp
GSCodeBuffer.cpp
GSCrc.cpp
GSDevice.cpp
GSDeviceOGL.cpp
GSDeviceNull.cpp
GSDirtyRect.cpp
GSDrawingContext.cpp
GSDrawScanline.cpp
GSDrawScanlineCodeGenerator.cpp
GSDrawScanlineCodeGenerator.x64.cpp
GSDrawScanlineCodeGenerator.x64.avx.cpp
GSDrawScanlineCodeGenerator.x64.avx2.cpp
GSDrawScanlineCodeGenerator.x86.cpp
GSDrawScanlineCodeGenerator.x86.avx.cpp
GSDrawScanlineCodeGenerator.x86.avx2.cpp
GSDump.cpp
GSFunctionMap.cpp
GSHwHack.cpp
GSLocalMemory.cpp
GSLzma.cpp
GSPerfMon.cpp
GSPng.cpp
GSRasterizer.cpp
GSRenderer.cpp
GSRendererCL.cpp
GSRendererHW.cpp
GSRendererNull.cpp
GSRendererOGL.cpp
GSRendererSW.cpp
GSOsdManager.cpp
GSSetting.cpp
GSSetupPrimCodeGenerator.cpp
GSSetupPrimCodeGenerator.x64.cpp
GSSetupPrimCodeGenerator.x64.avx.cpp
GSSetupPrimCodeGenerator.x64.avx2.cpp
GSSetupPrimCodeGenerator.x86.cpp
GSSetupPrimCodeGenerator.x86.avx.cpp
GSSetupPrimCodeGenerator.x86.avx2.cpp
GSShaderOGL.cpp
GSState.cpp
GSTables.cpp
GSTexture.cpp
GSTextureCache.cpp
GSTextureCacheSW.cpp
GSTextureCacheOGL.cpp
GSTextureOGL.cpp
GSTextureNull.cpp
GSTextureSW.cpp
GSUtil.cpp
GSVector.cpp
GSVertexTrace.cpp
GSWnd.cpp
GSdx.cpp
GSdxResources.cpp
stdafx.cpp
)
set(GSdxHeaders
config.h
GLLoader.h
GLState.h
GSAlignedClass.h
GSBlock.h
GSCaptureDlg.h
GSCapture.h
GSClut.h
GSCodeBuffer.h
GSCrc.h
GSDevice.h
GSDeviceNull.h
GSDeviceOGL.h
GSDialog.h
GSDirtyRect.h
GSDrawingContext.h
GSDrawingEnvironment.h
GSDrawScanlineCodeGenerator.h
GSDrawScanline.h
GSDump.h
GSdx.h
GSdxResources.h
GSFunctionMap.h
GS.h
GSLocalMemory.h
GSLzma.h
GSOsdManager.h
GSPerfMon.h
GSPng.h
GSRasterizer.h
GSRendererCL.h
GSRendererCS.h
GSRenderer.h
GSRendererHW.h
GSRendererNull.h
GSRendererOGL.h
GSRendererSW.h
GSScanlineEnvironment.h
GSSetting.h
GSSettingsDlg.h
GSSetupPrimCodeGenerator.h
GSShaderOGL.h
GSState.h
GSTables.h
GSTextureCache.h
GSTextureCacheOGL.h
GSTextureCacheSW.h
GSTexture.h
GSTextureNull.h
GSTextureOGL.h
GSTextureSW.h
GSThread_CXX11.h
GSThread.h
GSUniformBufferOGL.h
GSUtil.h
GSVector.h
GSVector4.h
GSVector4i.h
GSVector8.h
GSVector8i.h
GSVertexArrayOGL.h
GSVertex.h
GSVertexHW.h
GSVertexList.h
GSVertexSW.h
GSVertexTrace.h
GSWnd.h
PSX/GPUDrawingEnvironment.h
PSX/GPUDrawScanlineCodeGenerator.h
PSX/GPUDrawScanline.h
PSX/GPU.h
PSX/GPULocalMemory.h
PSX/GPURenderer.h
PSX/GPURendererSW.h
PSX/GPUScanlineEnvironment.h
PSX/GPUSetupPrimCodeGenerator.h
PSX/GPUState.h
PSX/GPUVertex.h
stdafx.h
xbyak/xbyak.h
xbyak/xbyak_mnemonic.h
xbyak/xbyak_util.h
)
if(Windows)
LIST(APPEND GSdxSources
GSCaptureDlg.cpp
GSDevice11.cpp
GSDevice9.cpp
GSDeviceDX.cpp
GSDialog.cpp
GSRendererCS.cpp
GSRendererDX11.cpp
GSRendererDX9.cpp
GSRendererDX.cpp
GSSettingsDlg.cpp
GSTexture11.cpp
GSTexture9.cpp
GSTextureCache11.cpp
GSTextureCache9.cpp
GSTextureFX11.cpp
GSTextureFX9.cpp
GSTextureFX.cpp
GSVertexList.cpp
GSVertexSW.cpp
GSWndDX.cpp
GSWndWGL.cpp
PSX/GPUSettingsDlg.cpp
)
LIST(APPEND GSdxHeaders
GSDevice11.h
GSDevice9.h
GSDeviceDX.h
GSRendererDX11.h
GSRendererDX9.h
GSRendererDX.h
GSTexture11.h
GSTexture9.h
GSTextureCache11.h
GSTextureCache9.h
GSWndDX.h
GSWndWGL.h
PSX/GPUSettingsDlg.h
resource.h
targetver.h
)
else()
LIST(APPEND GSdxSources
GSLinuxDialog.cpp
GSWndOGL.cpp
GSWndEGL.cpp
)
LIST(APPEND GSdxHeaders
GSWndEGL.h
GSWndOGL.h
)
endif()
set(GSdxFinalSources
${GSdxSources}
${GSdxHeaders}
)
set(GSdxFinalLibs
${X11_LIBRARIES}
${OPENGL_LIBRARIES}
${GTK2_LIBRARIES}
${LIBC_LIBRARIES}
${PNG_LIBRARIES}
${FREETYPE_LIBRARIES}
${LIBLZMA_LIBRARIES}
)
if(EGL_API AND EGL_FOUND)
set(GSdxFinalLibs ${GSdxFinalLibs} ${EGL_LIBRARIES})
endif()
if(USE_VTUNE)
set(GSdxFinalLibs ${GSdxFinalLibs} ${VTUNE_LIBRARIES})
endif()
if(OPENCL_FOUND)
set(GSdxFinalLibs ${GSdxFinalLibs} ${OPENCL_LIBRARIES})
endif()
set(RESOURCE_FILES
res/logo-ogl.bmp
res/fxaa.fx
res/tfx.cl
res/glsl/common_header.glsl
res/glsl/convert.glsl
res/glsl/interlace.glsl
res/glsl/merge.glsl
res/glsl/shadeboost.glsl
res/glsl/tfx_fs.glsl
res/glsl/tfx_vgs.glsl)
add_custom_glib_res("GSdxResources" "gsdx-res.xml" "GSdx_res" ${RESOURCE_FILES})
include_directories(${CMAKE_CURRENT_BINARY_DIR})
if(BUILTIN_GS)
add_pcsx2_lib(${Output} "${GSdxFinalSources}" "${GSdxFinalLibs}" "${GSdxFinalFlags}")
else()
if (DISABLE_ADVANCE_SIMD)
# Don't append -SSE2 on the first build to keep same name as SIMD build
add_pcsx2_plugin("${Output}" "${GSdxFinalSources}" "${GSdxFinalLibs}" "${GSdxFinalFlags}")
add_pcsx2_plugin("${Output}-SSE4" "${GSdxFinalSources}" "${GSdxFinalLibs}" "${GSdxFinalFlags} -mssse3 -msse4 -msse4.1")
add_pcsx2_plugin("${Output}-AVX2" "${GSdxFinalSources}" "${GSdxFinalLibs}" "${GSdxFinalFlags} -mavx -mavx2 -mbmi -mbmi2")
else()
add_pcsx2_plugin(${Output} "${GSdxFinalSources}" "${GSdxFinalLibs}" "${GSdxFinalFlags}")
endif()
endif()
################################### Replay Loader
if(BUILD_REPLAY_LOADERS)
set(Replay pcsx2_GSReplayLoader)
set(GSdxReplayLoaderFinalSources
linux_replay.cpp
)
add_pcsx2_executable(${Replay} "${GSdxReplayLoaderFinalSources}" "${LIBC_LIBRARIES}" "${GSdxFinalFlags}")
endif(BUILD_REPLAY_LOADERS)