From e03fcaf4b0bb17d5ba305ed67fe9f4cbb84e5dc1 Mon Sep 17 00:00:00 2001 From: PancakeTAS Date: Fri, 4 Jul 2025 14:38:42 +0200 Subject: [PATCH] install cmake logic --- CMakeLists.txt | 11 +++++++++++ lsfg-vk-gen/CMakeLists.txt | 24 ++++++++++++++++++------ 2 files changed, 29 insertions(+), 6 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 8199b0c..5f9edb9 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -6,6 +6,10 @@ 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 @@ -51,3 +55,10 @@ target_compile_options(lsfg-vk PRIVATE # 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) diff --git a/lsfg-vk-gen/CMakeLists.txt b/lsfg-vk-gen/CMakeLists.txt index 52ef4dd..4445665 100644 --- a/lsfg-vk-gen/CMakeLists.txt +++ b/lsfg-vk-gen/CMakeLists.txt @@ -44,20 +44,32 @@ target_link_libraries(dxvk INTERFACE # pe-parse subproject -include(FetchContent) -FetchContent_Declare(peparse_git +ExternalProject_Add(peparse_git + PREFIX ${CMAKE_BINARY_DIR}/peparse GIT_REPOSITORY "https://github.com/trailofbits/pe-parse" GIT_TAG "v2.1.1" + UPDATE_DISCONNECTED true + USES_TERMINAL_CONFIGURE true + USES_TERMINAL_BUILD true + CONFIGURE_COMMAND + cd ${CMAKE_BINARY_DIR}/peparse/src/peparse_git/pe-parser-library && + CC=clang CXX=clang++ CXXFLAGS=-Wno-deprecated-declarations + cmake -B build -G Ninja + -DCMAKE_BUILD_TYPE=Release + -DBUILD_SHARED_LIBS=1 + BUILD_COMMAND + cd ${CMAKE_BINARY_DIR}/peparse/src/peparse_git/pe-parser-library && + ninja -C build + INSTALL_COMMAND "" ) -FetchContent_MakeAvailable(peparse_git) add_library(peparse INTERFACE) add_dependencies(peparse peparse_git) target_link_directories(peparse - INTERFACE ${peparse_SOURCE_DIR}/pe-parser-library/include) + INTERFACE ${CMAKE_BINARY_DIR}/peparse/src/peparse_git/pe-parser-library/build) target_include_directories(peparse SYSTEM - INTERFACE ${peparse_BUILD_DIR}) + INTERFACE ${CMAKE_BINARY_DIR}/peparse/src/peparse_git/pe-parser-library/include) target_link_libraries(peparse INTERFACE pe-parse) @@ -104,5 +116,5 @@ target_compile_options(lsfg-vk-gen PRIVATE # required for peparse -Wno-unused-template # required for dxvk (yeah don't worry about it) - -Qunused-arguments -Wl,--unresolved-symbols=ignore-all + -Qunused-arguments -Wl,--unresolved-symbols=ignore-all1 )