mirror of
				https://github.com/PancakeTAS/lsfg-vk.git
				synced 2025-10-30 07:01:10 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			64 lines
		
	
	
	
		
			2 KiB
		
	
	
	
		
			CMake
		
	
	
	
	
	
			
		
		
	
	
			64 lines
		
	
	
	
		
			2 KiB
		
	
	
	
		
			CMake
		
	
	
	
	
	
| cmake_minimum_required(VERSION 3.29)
 | |
| 
 | |
| # cmake options
 | |
| 
 | |
| set(CMAKE_CXX_COMPILER clang++)
 | |
| set(CMAKE_CXX_STANDARD 20)
 | |
| set(CMAKE_CXX_STANDARD_REQUIRED ON)
 | |
| 
 | |
| set(CMAKE_SKIP_BUILD_RPATH FALSE)
 | |
| set(CMAKE_BUILD_WITH_INSTALL_RPATH TRUE)
 | |
| set(CMAKE_INSTALL_RPATH "$\{ORIGIN\}")
 | |
| 
 | |
| set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
 | |
| 
 | |
| # main project
 | |
| 
 | |
| project(lsfg-vk
 | |
|     VERSION 0.0.1
 | |
|     DESCRIPTION "lsfg-vk: LSFG on Linux through Vulkan"
 | |
|     LANGUAGES CXX)
 | |
| 
 | |
| add_subdirectory(lsfg-vk-gen)
 | |
| 
 | |
| file(GLOB SOURCES
 | |
|     "src/loader/*.cpp"
 | |
|     "src/mini/*.cpp"
 | |
|     "src/*.cpp"
 | |
| )
 | |
| 
 | |
| add_library(lsfg-vk SHARED ${SOURCES})
 | |
| 
 | |
| target_include_directories(lsfg-vk
 | |
|     PRIVATE include)
 | |
| target_link_libraries(lsfg-vk
 | |
|     PRIVATE lsfg-vk-gen vulkan)
 | |
| set_target_properties(lsfg-vk
 | |
|     PROPERTIES CXX_CLANG_TIDY clang-tidy)
 | |
| target_compile_options(lsfg-vk PRIVATE
 | |
|     -Weverything
 | |
|     # disable compat c++ flags
 | |
|     -Wno-pre-c++20-compat-pedantic
 | |
|     -Wno-pre-c++17-compat
 | |
|     -Wno-c++98-compat-pedantic
 | |
|     -Wno-c++98-compat
 | |
|     # disable other flags
 | |
|     -Wno-missing-designated-field-initializers
 | |
|     -Wno-shadow         # allow shadowing
 | |
|     -Wno-switch-enum    # ignore missing cases
 | |
|     -Wno-switch-default # ignore missing default
 | |
|     -Wno-padded         # ignore automatic padding
 | |
|     -Wno-exit-time-destructors # allow globals
 | |
|     -Wno-global-constructors   # allow globals
 | |
|     # required for vulkan
 | |
|     -Wno-cast-function-type-strict
 | |
|     # required for dxvk (yeah don't worry about it)
 | |
|     -Qunused-arguments -Wl,--unresolved-symbols=ignore-all
 | |
| )
 | |
| 
 | |
| install(FILES "${CMAKE_BINARY_DIR}/peparse/src/peparse_git/pe-parser-library/build/libpe-parse.so" DESTINATION lib)
 | |
| install(FILES "${CMAKE_BINARY_DIR}/dxvk/native/usr/lib/libdxvk_d3d11.so.0.20602" DESTINATION lib RENAME libdxvk_d3d11.so.0)
 | |
| install(FILES "${CMAKE_BINARY_DIR}/dxvk/native/usr/lib/libdxvk_dxgi.so.0.20602" DESTINATION lib RENAME libdxvk_dxgi.so.0)
 | |
| install(FILES "${CMAKE_BINARY_DIR}/dxvk/libdxvkinternals.so" DESTINATION lib)
 | |
| install(FILES "${CMAKE_BINARY_DIR}/liblsfg-vk.so" DESTINATION lib)
 | |
| install(FILES "${CMAKE_BINARY_DIR}/lsfg-vk-gen/liblsfg-vk-gen.so" DESTINATION lib)
 | 
