# 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(XDG_STD) set(GSdxFinalFlags ${GSdxFinalFlags} -DXDG_STD) endif() if(EGL_API AND EGL_FOUND) set(GSdxFinalFlags ${GSdxFinalFlags} -DEGL_SUPPORTED) endif() if(LIBLZMA_FOUND) set(GSdxFinalFlags ${GSdxFinalFlags} -DLZMA_SUPPORTED) endif() #Clang doesn't support a few common flags that GCC does. if(NOT USE_CLANG) set(GSdxFinalFlags ${GSdxFinalFlags} -fabi-version=6) 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 res/glsl_source.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} ) if(EGL_API AND EGL_FOUND) set(GSdxFinalLibs ${GSdxFinalLibs} ${EGL_LIBRARIES}) endif() if(LIBLZMA_FOUND) set(GSdxFinalLibs ${GSdxFinalLibs} ${LIBLZMA_LIBRARIES}) endif() if(USE_VTUNE) set(GSdxFinalLibs ${GSdxFinalLibs} ${VTUNE_LIBRARIES}) endif() if(OPENCL_FOUND) set(GSdxFinalLibs ${GSdxFinalLibs} ${OPENCL_LIBRARIES}) endif() # Generate Glsl header file. Protect with REBUILD_SHADER to avoid build-dependency on PERL if (REBUILD_SHADER) add_custom_command(OUTPUT res/glsl_source.h COMMAND perl ${CMAKE_SOURCE_DIR}/linux_various/glsl2h.pl) endif() set(RESOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/res") # Note: trying to combine --generate-source and --generate-header doesn't work. It outputs whichever one comes last into the file named by the first add_custom_command( OUTPUT GSdxResources.h COMMAND glib-compile-resources --sourcedir "${RESOURCE_DIR}" --generate-header --c-name GSdx_res "${RESOURCE_DIR}/gsdx-res.xml" --target=GSdxResources.h DEPENDS res/gsdx-res.xml res/logo-ogl.bmp) add_custom_command( OUTPUT GSdxResources.cpp COMMAND glib-compile-resources --sourcedir "${RESOURCE_DIR}" --generate-source --c-name GSdx_res "${RESOURCE_DIR}/gsdx-res.xml" --target=GSdxResources.cpp DEPENDS res/gsdx-res.xml res/logo-ogl.bmp) 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)