mirror of
				https://github.com/hedge-dev/XenosRecomp.git
				synced 2025-10-30 07:12:17 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			63 lines
		
	
	
	
		
			1.8 KiB
		
	
	
	
		
			CMake
		
	
	
	
	
	
			
		
		
	
	
			63 lines
		
	
	
	
		
			1.8 KiB
		
	
	
	
		
			CMake
		
	
	
	
	
	
| project(XenosRecomp)
 | |
| 
 | |
| if (WIN32)
 | |
|     option(XENOS_RECOMP_DXIL "Generate DXIL shader cache" ON)
 | |
| endif()
 | |
| 
 | |
| if (APPLE)
 | |
|     option(XENOS_RECOMP_AIR "Generate Metal AIR shader cache" ON)
 | |
| endif()
 | |
| 
 | |
| set(SMOLV_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../thirdparty/smol-v/source")
 | |
| 
 | |
| add_executable(XenosRecomp
 | |
|     constant_table.h
 | |
|     air_compiler.cpp
 | |
|     air_compiler.h
 | |
|     dxc_compiler.cpp
 | |
|     dxc_compiler.h
 | |
|     main.cpp
 | |
|     pch.h
 | |
|     shader.h
 | |
|     shader_code.h
 | |
|     shader_recompiler.cpp
 | |
|     shader_recompiler.h
 | |
|     "${SMOLV_SOURCE_DIR}/smolv.cpp")
 | |
| 
 | |
| target_link_libraries(XenosRecomp PRIVATE
 | |
|     Microsoft::DirectXShaderCompiler
 | |
|     xxHash::xxhash
 | |
|     libzstd_static
 | |
|     fmt::fmt)
 | |
| 
 | |
| target_include_directories(XenosRecomp PRIVATE ${SMOLV_SOURCE_DIR})
 | |
| 
 | |
| target_precompile_headers(XenosRecomp PRIVATE pch.h)
 | |
| 
 | |
| if (CMAKE_CXX_COMPILER_ID STREQUAL "Clang" OR CMAKE_CXX_COMPILER_ID STREQUAL "AppleClang")
 | |
|     target_compile_options(XenosRecomp PRIVATE -Wno-switch -Wno-unused-variable -Wno-null-arithmetic -fms-extensions)
 | |
| 
 | |
|     include(CheckCXXSymbolExists)
 | |
|     check_cxx_symbol_exists(_LIBCPP_VERSION version LIBCPP)
 | |
|     if(LIBCPP)
 | |
|         # Allows using std::execution
 | |
|         target_compile_options(XenosRecomp PRIVATE -fexperimental-library)
 | |
|     endif()
 | |
| endif()
 | |
| 
 | |
| if (WIN32)
 | |
|     target_compile_definitions(XenosRecomp PRIVATE _CRT_SECURE_NO_WARNINGS)
 | |
|     add_custom_command(TARGET XenosRecomp POST_BUILD
 | |
|         COMMAND ${CMAKE_COMMAND} -E copy $<TARGET_RUNTIME_DLLS:XenosRecomp> $<TARGET_FILE_DIR:XenosRecomp>
 | |
|         COMMAND_EXPAND_LISTS
 | |
|     )
 | |
| endif()
 | |
| 
 | |
| if (XENOS_RECOMP_DXIL)
 | |
|     target_compile_definitions(XenosRecomp PRIVATE XENOS_RECOMP_DXIL)
 | |
|     target_link_libraries(XenosRecomp PRIVATE Microsoft::DXIL)
 | |
| endif()
 | |
| 
 | |
| if (XENOS_RECOMP_AIR)
 | |
|     target_compile_definitions(XenosRecomp PRIVATE XENOS_RECOMP_AIR)
 | |
| endif()
 | 
