mirror of https://github.com/PCSX2/pcsx2.git
324 lines
7.4 KiB
CMake
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)
|