From 26ba56d9d06f89739552010090483459f749640d Mon Sep 17 00:00:00 2001 From: PancakeTAS Date: Sun, 13 Jul 2025 17:33:11 +0200 Subject: [PATCH] get rid of cmake fetch --- .github/workflows/build.yml | 2 ++ .gitmodules | 6 ++++++ CMakeLists.txt | 10 ++++++---- cmake/FetchDXBC.cmake | 33 --------------------------------- cmake/FetchPeParse.cmake | 32 -------------------------------- dxbc | 1 + lsfg-vk-common/CMakeLists.txt | 2 -- lsfg-vk-v3.1/CMakeLists.txt | 2 -- lsfg-vk-v3.1p/CMakeLists.txt | 2 -- pe-parse | 1 + 10 files changed, 16 insertions(+), 75 deletions(-) create mode 100644 .gitmodules delete mode 100644 cmake/FetchDXBC.cmake delete mode 100644 cmake/FetchPeParse.cmake create mode 160000 dxbc create mode 160000 pe-parse diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index cd222ce..0d467ef 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -22,6 +22,8 @@ jobs: spirv-headers vulkan-headers vulkan-icd-loader - name: Checkout repository uses: actions/checkout@v4 + with: + submodules: true - name: Configure with CMake and Ninja run: | cmake -B build -G Ninja \ diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000..57f075d --- /dev/null +++ b/.gitmodules @@ -0,0 +1,6 @@ +[submodule "dxbc"] + path = dxbc + url = https://github.com/PancakeTAS/dxbc.git +[submodule "pe-parse"] + path = pe-parse + url = https://github.com/trailofbits/pe-parse diff --git a/CMakeLists.txt b/CMakeLists.txt index f057af5..de1f21b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -10,10 +10,12 @@ if(CMAKE_BUILD_TYPE STREQUAL "Release") endif() # subprojects +add_compile_options(-fPIC + -Wno-deprecated-declarations + -Wno-unused-template) -include(cmake/FetchDXBC.cmake) -include(cmake/FetchPeParse.cmake) - +add_subdirectory(dxbc) +add_subdirectory(pe-parse/pe-parser-library) add_subdirectory(lsfg-vk-common) add_subdirectory(lsfg-vk-v3.1) add_subdirectory(lsfg-vk-v3.1p) @@ -41,7 +43,7 @@ target_include_directories(lsfg-vk PRIVATE include) target_link_libraries(lsfg-vk PRIVATE lsfg-vk-common lsfg-vk-v3.1 lsfg-vk-v3.1p - peparse dxvk_dxbc vulkan) + pe-parse dxbc vulkan) if(CMAKE_BUILD_TYPE STREQUAL "Release") set_target_properties(lsfg-vk PROPERTIES diff --git a/cmake/FetchDXBC.cmake b/cmake/FetchDXBC.cmake deleted file mode 100644 index 3311a26..0000000 --- a/cmake/FetchDXBC.cmake +++ /dev/null @@ -1,33 +0,0 @@ -include(ExternalProject) - -ExternalProject_Add(dxbc_git - GIT_REPOSITORY "https://github.com/PancakeTAS/dxbc" - GIT_TAG "d77124f" - UPDATE_DISCONNECTED true - USES_TERMINAL_CONFIGURE true - USES_TERMINAL_BUILD true - BUILD_IN_SOURCE true - CONFIGURE_COMMAND - cmake -S . -B build -G Ninja - -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} - -DCMAKE_C_COMPILER=clang - -DCMAKE_CXX_COMPILER=clang++ - -DCMAKE_C_FLAGS=-fPIC - -DCMAKE_CXX_FLAGS=-fPIC - BUILD_COMMAND - ninja -C build - INSTALL_COMMAND "" -) - -ExternalProject_Get_Property(dxbc_git SOURCE_DIR) - -add_library(dxvk_dxbc INTERFACE) -add_dependencies(dxvk_dxbc dxbc_git) - -target_link_directories(dxvk_dxbc - INTERFACE ${SOURCE_DIR}/build) -target_include_directories(dxvk_dxbc SYSTEM - INTERFACE ${SOURCE_DIR}/include/dxbc - INTERFACE ${SOURCE_DIR}/include/spirv ${SOURCE_DIR}/include/util ${SOURCE_DIR}/include/dxvk) -target_link_libraries(dxvk_dxbc - INTERFACE dxbc) diff --git a/cmake/FetchPeParse.cmake b/cmake/FetchPeParse.cmake deleted file mode 100644 index df7879b..0000000 --- a/cmake/FetchPeParse.cmake +++ /dev/null @@ -1,32 +0,0 @@ -include(ExternalProject) - -ExternalProject_Add(peparse_git - GIT_REPOSITORY "https://github.com/trailofbits/pe-parse" - GIT_TAG "v2.1.1" - UPDATE_DISCONNECTED true - USES_TERMINAL_CONFIGURE true - USES_TERMINAL_BUILD true - BUILD_IN_SOURCE true - CONFIGURE_COMMAND - cmake -S pe-parser-library -B build -G Ninja - -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} - -DCMAKE_C_COMPILER=clang - -DCMAKE_CXX_COMPILER=clang++ - -DCMAKE_C_FLAGS=-fPIC - -DCMAKE_CXX_FLAGS=-fPIC - BUILD_COMMAND - ninja -C build - INSTALL_COMMAND "" -) - -ExternalProject_Get_Property(peparse_git SOURCE_DIR) - -add_library(peparse INTERFACE) -add_dependencies(peparse peparse_git) - -target_link_directories(peparse - INTERFACE ${SOURCE_DIR}/build) -target_include_directories(peparse SYSTEM - INTERFACE ${SOURCE_DIR}/pe-parser-library/include) -target_link_libraries(peparse - INTERFACE pe-parse) diff --git a/dxbc b/dxbc new file mode 160000 index 0000000..04ca5e9 --- /dev/null +++ b/dxbc @@ -0,0 +1 @@ +Subproject commit 04ca5e9ae5fef6c0c65ea72bbaa7375327f11454 diff --git a/lsfg-vk-common/CMakeLists.txt b/lsfg-vk-common/CMakeLists.txt index 50b4525..5c5ab0f 100644 --- a/lsfg-vk-common/CMakeLists.txt +++ b/lsfg-vk-common/CMakeLists.txt @@ -21,8 +21,6 @@ target_include_directories(lsfg-vk-common PUBLIC include) target_link_libraries(lsfg-vk-common PRIVATE vulkan) -target_compile_options(lsfg-vk-common PRIVATE - -fPIC) if(CMAKE_BUILD_TYPE STREQUAL "Release") set_target_properties(lsfg-vk-common PROPERTIES diff --git a/lsfg-vk-v3.1/CMakeLists.txt b/lsfg-vk-v3.1/CMakeLists.txt index 314c0ad..d181cc4 100644 --- a/lsfg-vk-v3.1/CMakeLists.txt +++ b/lsfg-vk-v3.1/CMakeLists.txt @@ -24,8 +24,6 @@ target_include_directories(lsfg-vk-v3.1 PUBLIC public) target_link_libraries(lsfg-vk-v3.1 PUBLIC lsfg-vk-common vulkan) -target_compile_options(lsfg-vk-v3.1 PRIVATE - -fPIC) if(CMAKE_BUILD_TYPE STREQUAL "Release") set_target_properties(lsfg-vk-v3.1 PROPERTIES diff --git a/lsfg-vk-v3.1p/CMakeLists.txt b/lsfg-vk-v3.1p/CMakeLists.txt index 6e08b62..d889858 100644 --- a/lsfg-vk-v3.1p/CMakeLists.txt +++ b/lsfg-vk-v3.1p/CMakeLists.txt @@ -24,8 +24,6 @@ target_include_directories(lsfg-vk-v3.1p PUBLIC public) target_link_libraries(lsfg-vk-v3.1p PUBLIC lsfg-vk-common vulkan) -target_compile_options(lsfg-vk-v3.1p PRIVATE - -fPIC) if(CMAKE_BUILD_TYPE STREQUAL "Release") set_target_properties(lsfg-vk-v3.1p PROPERTIES diff --git a/pe-parse b/pe-parse new file mode 160000 index 0000000..7888f1f --- /dev/null +++ b/pe-parse @@ -0,0 +1 @@ +Subproject commit 7888f1f8de2f6bc302c291a5b4519fad926c0133