install cmake logic

This commit is contained in:
PancakeTAS 2025-07-04 14:38:42 +02:00
parent b34f66e38d
commit e03fcaf4b0
No known key found for this signature in database
2 changed files with 29 additions and 6 deletions

View file

@ -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)

View file

@ -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
)