From 03a99304f382dbcbda2b9a9661961d62d0d02384 Mon Sep 17 00:00:00 2001 From: rickwebiii Date: Wed, 13 Jul 2022 14:44:55 -0700 Subject: [PATCH] Don't fetch deps during build; use submodules --- .gitignore | 1 - .gitmodules | 18 +++++++++ CMakeLists.txt | 14 +++---- cmake/ExternalBenchmark.cmake | 75 +++++++++++++++-------------------- cmake/ExternalGTest.cmake | 35 ++++++---------- cmake/ExternalIntelHEXL.cmake | 45 ++++++++------------- cmake/ExternalMSGSL.cmake | 30 +++++--------- cmake/ExternalZLIB.cmake | 61 ++++++++++++++-------------- cmake/ExternalZSTD.cmake | 55 +++++++++++++------------ cmake/SEALMacros.cmake | 9 ----- native/bench/CMakeLists.txt | 2 +- native/tests/CMakeLists.txt | 2 +- thirdparty/benchmark | 1 + thirdparty/googletest | 1 + thirdparty/hexl | 1 + thirdparty/msgsl | 1 + thirdparty/zlib | 1 + thirdparty/zstd | 1 + 18 files changed, 160 insertions(+), 193 deletions(-) create mode 100644 .gitmodules create mode 160000 thirdparty/benchmark create mode 160000 thirdparty/googletest create mode 160000 thirdparty/hexl create mode 160000 thirdparty/msgsl create mode 160000 thirdparty/zlib create mode 160000 thirdparty/zstd diff --git a/.gitignore b/.gitignore index fd37e456d..10b4d77ec 100644 --- a/.gitignore +++ b/.gitignore @@ -31,7 +31,6 @@ lib/ build/ *.build env -thirdparty/ ######################################################################################## #### The following are based on templates from https://github.com/github/gitignore. #### diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 000000000..ab6e2898e --- /dev/null +++ b/.gitmodules @@ -0,0 +1,18 @@ +[submodule "thirdparty/benchmark"] + path = thirdparty/benchmark + url = https://github.com/google/benchmark.git +[submodule "thirdparty/googletest"] + path = thirdparty/googletest + url = https://github.com/google/googletest.git +[submodule "thirdparty/hexl"] + path = thirdparty/hexl + url = https://github.com/intel/hexl +[submodule "thirdparty/zlib"] + path = thirdparty/zlib + url = https://github.com/madler/zlib.git +[submodule "thirdparty/zstd"] + path = thirdparty/zstd + url = https://github.com/facebook/zstd.git +[submodule "thirdparty/msgsl"] + path = thirdparty/msgsl + url = https://github.com/microsoft/GSL.git diff --git a/CMakeLists.txt b/CMakeLists.txt index 03d2b5da9..b24ff612d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -101,7 +101,7 @@ set(SEAL_TARGETS_FILENAME ${CMAKE_CURRENT_BINARY_DIR}/cmake/SEALTargets.cmake) set(SEAL_CONFIG_FILENAME ${CMAKE_CURRENT_BINARY_DIR}/cmake/SEALConfig.cmake) set(SEAL_CONFIG_VERSION_FILENAME ${CMAKE_CURRENT_BINARY_DIR}/cmake/SEALConfigVersion.cmake) set(SEAL_CONFIG_H_FILENAME ${CMAKE_CURRENT_BINARY_DIR}/native/src/seal/util/config.h) -set(SEAL_THIRDPARTY_DIR ${CMAKE_CURRENT_BINARY_DIR}/thirdparty) +set(SEAL_THIRDPARTY_DIR ${CMAKE_SOURCE_DIR}/thirdparty) # Install set(SEAL_CONFIG_INSTALL_DIR ${CMAKE_INSTALL_LIBDIR}/cmake/SEAL-${SEAL_VERSION_MAJOR}.${SEAL_VERSION_MINOR}) @@ -146,8 +146,7 @@ message(STATUS "SEAL_USE_MSGSL: ${SEAL_USE_MSGSL}") if(SEAL_USE_MSGSL) if(SEAL_BUILD_DEPS) - message(STATUS "Microsoft GSL: download ...") - seal_fetch_thirdparty_content(ExternalMSGSL) + include(ExternalMSGSL) else() find_package(Microsoft.GSL 3 CONFIG) if(NOT Microsoft.GSL_FOUND) @@ -165,8 +164,7 @@ message(STATUS "SEAL_USE_ZLIB: ${SEAL_USE_ZLIB}") if(SEAL_USE_ZLIB) if(SEAL_BUILD_DEPS) - message(STATUS "ZLIB: download ...") - seal_fetch_thirdparty_content(ExternalZLIB) + include(ExternalZLIB) set(zlib "zlibstatic") else() find_package(ZLIB 1.2.11) @@ -186,8 +184,7 @@ message(STATUS "SEAL_USE_ZSTD: ${SEAL_USE_ZSTD}") if(SEAL_USE_ZSTD) if(SEAL_BUILD_DEPS) - message(STATUS "Zstandard: download ...") - seal_fetch_thirdparty_content(ExternalZSTD) + include(ExternalZSTD) set(zstd_static "libzstd_static") else() find_package(zstd CONFIG) @@ -220,8 +217,7 @@ message(STATUS "SEAL_USE_INTEL_HEXL: ${SEAL_USE_INTEL_HEXL}") if(SEAL_USE_INTEL_HEXL) if(SEAL_BUILD_DEPS) - message(STATUS "Intel HEXL: download ...") - seal_fetch_thirdparty_content(ExternalIntelHEXL) + include(ExternalIntelHEXL) else() find_package(HEXL 1.2.3) if (NOT TARGET HEXL::hexl) diff --git a/cmake/ExternalBenchmark.cmake b/cmake/ExternalBenchmark.cmake index 0160a6406..0e931095d 100644 --- a/cmake/ExternalBenchmark.cmake +++ b/cmake/ExternalBenchmark.cmake @@ -1,50 +1,39 @@ # Copyright (c) Microsoft Corporation. All rights reserved. # Licensed under the MIT license. -FetchContent_Declare( - benchmark - GIT_REPOSITORY https://github.com/google/benchmark.git - GIT_TAG f91b6b42b1b9854772a90ae9501464a161707d1e # 1.6.0 -) -FetchContent_GetProperties(benchmark) +set(LLVMAR_EXECUTABLE ${CMAKE_AR}) +set(LLVMNM_EXECUTABLE ${CMAKE_NM}) +set(LLVMRANLIB_EXECUTABLE ${CMAKE_RANLIB}) +set(LLVM_FILECHECK_EXE ${CMAKE_CXX_COMPILER_AR}/../FileCheck) +set(BENCHMARK_ENABLE_GTEST_TESTS OFF CACHE BOOL "" FORCE) +set(BENCHMARK_ENABLE_INSTALL OFF CACHE BOOL "" FORCE) +set(BENCHMARK_ENABLE_TESTING OFF CACHE BOOL "" FORCE) +set(BENCHMARK_ENABLE_LTO OFF CACHE BOOL "" FORCE) +mark_as_advanced(LIBRT) +mark_as_advanced(LLVM_FILECHECK_EXE) +mark_as_advanced(BENCHMARK_BUILD_32_BITS) +mark_as_advanced(BENCHMARK_DOWNLOAD_DEPENDENCIES) +mark_as_advanced(BENCHMARK_ENABLE_ASSEMBLY_TESTS) +mark_as_advanced(BENCHMARK_ENABLE_EXCEPTIONS) +mark_as_advanced(BENCHMARK_ENABLE_GTEST_TESTS) +mark_as_advanced(BENCHMARK_ENABLE_INSTALL) +mark_as_advanced(BENCHMARK_ENABLE_LTO) +mark_as_advanced(BENCHMARK_ENABLE_TESTING) +mark_as_advanced(BENCHMARK_USE_LIBCXX) +mark_as_advanced(FETCHCONTENT_SOURCE_DIR_BENCHMARK) +mark_as_advanced(FETCHCONTENT_UPDATES_DISCONNECTED_BENCHMARK) -if(NOT benchmark) - FetchContent_Populate(benchmark) - - set(LLVMAR_EXECUTABLE ${CMAKE_AR}) - set(LLVMNM_EXECUTABLE ${CMAKE_NM}) - set(LLVMRANLIB_EXECUTABLE ${CMAKE_RANLIB}) - set(LLVM_FILECHECK_EXE ${CMAKE_CXX_COMPILER_AR}/../FileCheck) - set(BENCHMARK_ENABLE_GTEST_TESTS OFF CACHE BOOL "" FORCE) - set(BENCHMARK_ENABLE_INSTALL OFF CACHE BOOL "" FORCE) - set(BENCHMARK_ENABLE_TESTING OFF CACHE BOOL "" FORCE) - set(BENCHMARK_ENABLE_LTO OFF CACHE BOOL "" FORCE) - mark_as_advanced(LIBRT) - mark_as_advanced(LLVM_FILECHECK_EXE) - mark_as_advanced(BENCHMARK_BUILD_32_BITS) - mark_as_advanced(BENCHMARK_DOWNLOAD_DEPENDENCIES) - mark_as_advanced(BENCHMARK_ENABLE_ASSEMBLY_TESTS) - mark_as_advanced(BENCHMARK_ENABLE_EXCEPTIONS) - mark_as_advanced(BENCHMARK_ENABLE_GTEST_TESTS) - mark_as_advanced(BENCHMARK_ENABLE_INSTALL) - mark_as_advanced(BENCHMARK_ENABLE_LTO) - mark_as_advanced(BENCHMARK_ENABLE_TESTING) - mark_as_advanced(BENCHMARK_USE_LIBCXX) - mark_as_advanced(FETCHCONTENT_SOURCE_DIR_BENCHMARK) - mark_as_advanced(FETCHCONTENT_UPDATES_DISCONNECTED_BENCHMARK) - - if(NOT WIN32) - # Google Benchmark contains unsafe conversions so force -Wno-conversion temporarily - set(OLD_CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS}) - set(CMAKE_CXX_FLAGS "${OLD_CMAKE_CXX_FLAGS} -Wno-conversion") - endif() +if(NOT WIN32) + # Google Benchmark contains unsafe conversions so force -Wno-conversion temporarily + set(OLD_CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS}) + set(CMAKE_CXX_FLAGS "${OLD_CMAKE_CXX_FLAGS} -Wno-conversion") +endif() - add_subdirectory( - ${benchmark_SOURCE_DIR} - ${THIRDPARTY_BINARY_DIR}/benchmark-src - EXCLUDE_FROM_ALL) +add_subdirectory( + ${CMAKE_SOURCE_DIR}/thirdparty/benchmark + ${CMAKE_BINARY_DIR}/thirdparty/benchmark + EXCLUDE_FROM_ALL) - if(NOT WIN32) - set(CMAKE_CXX_FLAGS ${OLD_CMAKE_CXX_FLAGS}) - endif() +if(NOT WIN32) + set(CMAKE_CXX_FLAGS ${OLD_CMAKE_CXX_FLAGS}) endif() diff --git a/cmake/ExternalGTest.cmake b/cmake/ExternalGTest.cmake index bdbf7f167..bc28e91db 100644 --- a/cmake/ExternalGTest.cmake +++ b/cmake/ExternalGTest.cmake @@ -1,26 +1,15 @@ # Copyright (c) Microsoft Corporation. All rights reserved. # Licensed under the MIT license. -FetchContent_Declare( - googletest - GIT_REPOSITORY https://github.com/google/googletest.git - GIT_TAG e2239ee6043f73722e7aa812a459f54a28552929 # 1.11.0 -) -FetchContent_GetProperties(googletest) - -if(NOT googletest_POPULATED) - FetchContent_Populate(googletest) - - set(BUILD_GMOCK OFF CACHE BOOL "" FORCE) - set(INSTALL_GTEST OFF CACHE BOOL "" FORCE) - set(gtest_force_shared_crt ON CACHE BOOL "" FORCE) - mark_as_advanced(BUILD_GMOCK) - mark_as_advanced(INSTALL_GTEST) - mark_as_advanced(FETCHCONTENT_SOURCE_DIR_GOOGLETEST) - mark_as_advanced(FETCHCONTENT_UPDATES_DISCONNECTED_GOOGLETEST) - - add_subdirectory( - ${googletest_SOURCE_DIR} - ${THIRDPARTY_BINARY_DIR}/googletest-src - EXCLUDE_FROM_ALL) -endif() +set(BUILD_GMOCK OFF CACHE BOOL "" FORCE) +set(INSTALL_GTEST OFF CACHE BOOL "" FORCE) +set(gtest_force_shared_crt ON CACHE BOOL "" FORCE) +mark_as_advanced(BUILD_GMOCK) +mark_as_advanced(INSTALL_GTEST) +mark_as_advanced(FETCHCONTENT_SOURCE_DIR_GOOGLETEST) +mark_as_advanced(FETCHCONTENT_UPDATES_DISCONNECTED_GOOGLETEST) + +add_subdirectory( + ${CMAKE_SOURCE_DIR}/thirdparty/googletest + ${CMAKE_BINARY_DIR}/thirdparty/googletest + EXCLUDE_FROM_ALL) diff --git a/cmake/ExternalIntelHEXL.cmake b/cmake/ExternalIntelHEXL.cmake index c1b8b420b..4e28789ff 100644 --- a/cmake/ExternalIntelHEXL.cmake +++ b/cmake/ExternalIntelHEXL.cmake @@ -1,33 +1,22 @@ # Copyright (c) Microsoft Corporation. All rights reserved. # Licensed under the MIT license. -FetchContent_Declare( - hexl - PREFIX hexl - GIT_REPOSITORY https://github.com/intel/hexl - GIT_TAG 0858760 # 1.2.3 -) -FetchContent_GetProperties(hexl) - -if(NOT hexl_POPULATED) - FetchContent_Populate(hexl) - set(CMAKE_C_COMPILER ${CMAKE_C_COMPILER} CACHE STRING "" FORCE) - set(CMAKE_CXX_COMPILER ${CMAKE_CXX_COMPILER} CACHE STRING "" FORCE) - set(CMAKE_INSTALL_PREFIX ${CMAKE_INSTALL_PREFIX} CACHE STRING "" FORCE) - set(HEXL_BENCHMARK OFF CACHE BOOL "" FORCE) - set(HEXL_COVERAGE OFF CACHE BOOL "" FORCE) - set(HEXL_TESTING OFF CACHE BOOL "" FORCE) - set(HEXL_SHARED_LIB ${BUILD_SHARED_LIBS} CACHE BOOL "" FORCE) - set(EXCLUDE_FROM_ALL TRUE) +set(CMAKE_C_COMPILER ${CMAKE_C_COMPILER} CACHE STRING "" FORCE) +set(CMAKE_CXX_COMPILER ${CMAKE_CXX_COMPILER} CACHE STRING "" FORCE) +set(CMAKE_INSTALL_PREFIX ${CMAKE_INSTALL_PREFIX} CACHE STRING "" FORCE) +set(HEXL_BENCHMARK OFF CACHE BOOL "" FORCE) +set(HEXL_COVERAGE OFF CACHE BOOL "" FORCE) +set(HEXL_TESTING OFF CACHE BOOL "" FORCE) +set(HEXL_SHARED_LIB ${BUILD_SHARED_LIBS} CACHE BOOL "" FORCE) +set(EXCLUDE_FROM_ALL TRUE) - mark_as_advanced(BUILD_HEXL) - mark_as_advanced(INSTALL_HEXL) - mark_as_advanced(FETCHCONTENT_SOURCE_DIR_HEXL) - mark_as_advanced(FETCHCONTENT_UPDATES_DISCONNECTED_HEXL) +mark_as_advanced(BUILD_HEXL) +mark_as_advanced(INSTALL_HEXL) +mark_as_advanced(FETCHCONTENT_SOURCE_DIR_HEXL) +mark_as_advanced(FETCHCONTENT_UPDATES_DISCONNECTED_HEXL) - add_subdirectory( - ${hexl_SOURCE_DIR} - ${hexl_SOURCE_DIR}/../hexl-build - EXCLUDE_FROM_ALL - ) -endif() +add_subdirectory( + ${CMAKE_SOURCE_DIR}/thirdparty/hexl + ${CMAKE_BINARY_DIR}/thirdparty/hexl + EXCLUDE_FROM_ALL +) diff --git a/cmake/ExternalMSGSL.cmake b/cmake/ExternalMSGSL.cmake index 0c5520f4d..770a3dd2a 100644 --- a/cmake/ExternalMSGSL.cmake +++ b/cmake/ExternalMSGSL.cmake @@ -1,25 +1,17 @@ # Copyright (c) Microsoft Corporation. All rights reserved. # Licensed under the MIT license. -FetchContent_Declare( - msgsl - GIT_REPOSITORY https://github.com/microsoft/GSL.git - GIT_TAG 0f6dbc9e2915ef5c16830f3fa3565738de2a9230 # 3.1.0 -) -FetchContent_GetProperties(msgsl) +set(GSL_CXX_STANDARD "14" CACHE STRING "" FORCE) +set(GSL_TEST OFF CACHE BOOL "" FORCE) +mark_as_advanced(GSL_CXX_STANDARD ) +mark_as_advanced(GSL_TEST) +mark_as_advanced(FETCHCONTENT_SOURCE_DIR_MSGSL) +mark_as_advanced(FETCHCONTENT_UPDATES_DISCONNECTED_MSGSL) -if(NOT msgsl_POPULATED) - FetchContent_Populate(msgsl) +add_subdirectory( + ${CMAKE_SOURCE_DIR}/thirdparty/msgsl + ${CMAKE_BINARY_DIR}/thirdparty/msgsl + EXCLUDE_FROM_ALL) - set(GSL_CXX_STANDARD "14" CACHE STRING "" FORCE) - set(GSL_TEST OFF CACHE BOOL "" FORCE) - mark_as_advanced(GSL_CXX_STANDARD ) - mark_as_advanced(GSL_TEST) - mark_as_advanced(FETCHCONTENT_SOURCE_DIR_MSGSL) - mark_as_advanced(FETCHCONTENT_UPDATES_DISCONNECTED_MSGSL) +include_directories(${CMAKE_SOURCE_DIR}/thirdparty/msgsl/include) - add_subdirectory( - ${msgsl_SOURCE_DIR} - ${msgsl_SOURCE_DIR}/../msgsl-build - EXCLUDE_FROM_ALL) -endif() diff --git a/cmake/ExternalZLIB.cmake b/cmake/ExternalZLIB.cmake index dd382ebdb..e4576cb1b 100644 --- a/cmake/ExternalZLIB.cmake +++ b/cmake/ExternalZLIB.cmake @@ -1,35 +1,34 @@ # Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license. -FetchContent_Declare( - zlib - GIT_REPOSITORY https://github.com/madler/zlib.git - GIT_TAG cacf7f1d4e3d44d871b605da3b647f07d718623f # 1.2.11 -) -FetchContent_GetProperties(zlib) -if(NOT zlib_POPULATED) - FetchContent_Populate(zlib) +set(SKIP_INSTALL_ALL ON CACHE BOOL "" FORCE) +mark_as_advanced(AMD64) +mark_as_advanced(ASM686) +mark_as_advanced(EXECUTABLE_OUTPUT_PATH) +mark_as_advanced(CMAKE_INSTALL_PREFIX) +mark_as_advanced(INSTALL_BIN_DIR) +mark_as_advanced(INSTALL_INC_DIR) +mark_as_advanced(INSTALL_LIB_DIR) +mark_as_advanced(INSTALL_MAN_DIR) +mark_as_advanced(INSTALL_PKGCONFIG_DIR) +mark_as_advanced(LIBRARY_OUTPUT_PATH) +mark_as_advanced(CMAKE_BACKWARDS_COMPATIBILITY) +mark_as_advanced(ZLIB_BUILD_STATIC) +mark_as_advanced(SKIP_INSTALL_ALL) - set(SKIP_INSTALL_ALL ON CACHE BOOL "" FORCE) - mark_as_advanced(AMD64) - mark_as_advanced(ASM686) - mark_as_advanced(EXECUTABLE_OUTPUT_PATH) - mark_as_advanced(CMAKE_INSTALL_PREFIX) - mark_as_advanced(INSTALL_BIN_DIR) - mark_as_advanced(INSTALL_INC_DIR) - mark_as_advanced(INSTALL_LIB_DIR) - mark_as_advanced(INSTALL_MAN_DIR) - mark_as_advanced(INSTALL_PKGCONFIG_DIR) - mark_as_advanced(LIBRARY_OUTPUT_PATH) - mark_as_advanced(CMAKE_BACKWARDS_COMPATIBILITY) - mark_as_advanced(ZLIB_BUILD_STATIC) - mark_as_advanced(SKIP_INSTALL_ALL) - mark_as_advanced(FETCHCONTENT_SOURCE_DIR_ZLIB) - mark_as_advanced(FETCHCONTENT_UPDATES_DISCONNECTED_ZLIB) +# ZLIB has no VERSION given to project(), needs to suppress CMP0048 warning +set(CMAKE_SUPPRESS_DEVELOPER_WARNINGS TRUE CACHE INTERNAL "Suppress CMP0048 warning" FORCE) - # ZLIB has no VERSION given to project(), needs to suppress CMP0048 warning - set(CMAKE_SUPPRESS_DEVELOPER_WARNINGS TRUE CACHE INTERNAL "Suppress CMP0048 warning" FORCE) - add_subdirectory( - ${zlib_SOURCE_DIR} - ${zlib_SOURCE_DIR}/../zlib-build - EXCLUDE_FROM_ALL) -endif() +# ZLIB pollutes the source directory, so copy the source code under +# {CMAKE_BINARY_DIR} and build it from there. This keeps *our* source +# directory clean. +file( + COPY + ${CMAKE_SOURCE_DIR}/thirdparty/zlib/ + DESTINATION + ${CMAKE_BINARY_DIR}/thirdparty/zlib/) + + +add_subdirectory( + ${CMAKE_BINARY_DIR}/thirdparty/zlib/ + ${CMAKE_BINARY_DIR}/thirdparty/zlib-build/ + EXCLUDE_FROM_ALL) diff --git a/cmake/ExternalZSTD.cmake b/cmake/ExternalZSTD.cmake index 5af0f8a8f..460e45ca0 100644 --- a/cmake/ExternalZSTD.cmake +++ b/cmake/ExternalZSTD.cmake @@ -1,33 +1,32 @@ # Copyright (c) Microsoft Corporation. All rights reserved. # Licensed under the MIT license. -FetchContent_Declare( - zstd - GIT_REPOSITORY https://github.com/facebook/zstd.git - GIT_TAG b706286adbba780006a47ef92df0ad7a785666b6 # 1.4.5 -) -FetchContent_GetProperties(zstd) -if(NOT zstd_POPULATED) - FetchContent_Populate(zstd) +set(ZSTD_BUILD_PROGRAMS OFF CACHE BOOL "" FORCE) +set(ZSTD_BUILD_SHARED OFF CACHE BOOL "" FORCE) +set(ZLIB_BUILD_STATIC ON CACHE BOOL "" FORCE) +set(ZSTD_BUILD_TESTS OFF CACHE BOOL "" FORCE) +set(ZSTD_MULTITHREAD_SUPPORT OFF CACHE BOOL "" FORCE) +mark_as_advanced(ZSTD_BUILD_CONTRIB) +mark_as_advanced(ZSTD_BUILD_PROGRAMS) +mark_as_advanced(ZSTD_BUILD_SHARED) +mark_as_advanced(ZSTD_BUILD_STATIC) +mark_as_advanced(ZSTD_BUILD_TESTS) +mark_as_advanced(ZSTD_LEGACY_SUPPORT) +mark_as_advanced(ZSTD_MULTITHREAD_SUPPORT) +mark_as_advanced(ZSTD_PROGRAMS_LINK_SHARED) +mark_as_advanced(FETCHCONTENT_SOURCE_DIR_ZLIB) +mark_as_advanced(FETCHCONTENT_UPDATES_DISCONNECTED_ZLIB) - set(ZSTD_BUILD_PROGRAMS OFF CACHE BOOL "" FORCE) - set(ZSTD_BUILD_SHARED OFF CACHE BOOL "" FORCE) - set(ZLIB_BUILD_STATIC ON CACHE BOOL "" FORCE) - set(ZSTD_BUILD_TESTS OFF CACHE BOOL "" FORCE) - set(ZSTD_MULTITHREAD_SUPPORT OFF CACHE BOOL "" FORCE) - mark_as_advanced(ZSTD_BUILD_CONTRIB) - mark_as_advanced(ZSTD_BUILD_PROGRAMS) - mark_as_advanced(ZSTD_BUILD_SHARED) - mark_as_advanced(ZSTD_BUILD_STATIC) - mark_as_advanced(ZSTD_BUILD_TESTS) - mark_as_advanced(ZSTD_LEGACY_SUPPORT) - mark_as_advanced(ZSTD_MULTITHREAD_SUPPORT) - mark_as_advanced(ZSTD_PROGRAMS_LINK_SHARED) - mark_as_advanced(FETCHCONTENT_SOURCE_DIR_ZSTD) - mark_as_advanced(FETCHCONTENT_UPDATES_DISCONNECTED_ZSTD) +add_subdirectory( + ${CMAKE_SOURCE_DIR}/thirdparty/zstd/build/cmake + ${CMAKE_BINARY_DIR}/thirdparty/zstd + EXCLUDE_FROM_ALL) - add_subdirectory( - ${zstd_SOURCE_DIR}/build/cmake - ${zstd_SOURCE_DIR}/../zstd-build - EXCLUDE_FROM_ALL) -endif() +include_directories(${CMAKE_SOURCE_DIR}/thirdparty/zstd/lib) +include_directories(${CMAKE_SOURCE_DIR}/thirdparty/zstd/lib/common) +include_directories(${CMAKE_SOURCE_DIR}/thirdparty/zstd/lib/compress) +include_directories(${CMAKE_SOURCE_DIR}/thirdparty/zstd/lib/decompress) +include_directories(${CMAKE_SOURCE_DIR}/thirdparty/zstd/lib/deprecated) +include_directories(${CMAKE_SOURCE_DIR}/thirdparty/zstd/lib/dictBuilder) +include_directories(${CMAKE_SOURCE_DIR}/thirdparty/zstd/lib/dll) +include_directories(${CMAKE_SOURCE_DIR}/thirdparty/zstd/lib/legacy) diff --git a/cmake/SEALMacros.cmake b/cmake/SEALMacros.cmake index c2f78e20a..5202fc8cb 100644 --- a/cmake/SEALMacros.cmake +++ b/cmake/SEALMacros.cmake @@ -10,15 +10,6 @@ macro(seal_set_language target) endif() endmacro() -# Include a file to fetch thirdparty content -macro(seal_fetch_thirdparty_content content_file) - set(SEAL_FETCHCONTENT_BASE_DIR_OLD ${FETCHCONTENT_BASE_DIR}) - set(FETCHCONTENT_BASE_DIR ${SEAL_THIRDPARTY_DIR} CACHE STRING "" FORCE) - include(${content_file}) - set(FETCHCONTENT_BASE_DIR ${SEAL_FETCHCONTENT_BASE_DIR_OLD} CACHE STRING "" FORCE) - unset(SEAL_FETCHCONTENT_BASE_DIR_OLD) -endmacro() - # Set the VERSION property macro(seal_set_version target) set_target_properties(${target} PROPERTIES VERSION ${SEAL_VERSION}) diff --git a/native/bench/CMakeLists.txt b/native/bench/CMakeLists.txt index 1d52252a6..55c673295 100644 --- a/native/bench/CMakeLists.txt +++ b/native/bench/CMakeLists.txt @@ -38,7 +38,7 @@ endif() # if SEAL_BUILD_BENCH is ON, use GoogleBenchmark if(SEAL_BUILD_BENCH) if(SEAL_BUILD_DEPS) - seal_fetch_thirdparty_content(ExternalBenchmark) + include(ExternalBenchmark) else() find_package(benchmark REQUIRED) if(NOT benchmark_FOUND) diff --git a/native/tests/CMakeLists.txt b/native/tests/CMakeLists.txt index 34c5f04a2..d89304a07 100644 --- a/native/tests/CMakeLists.txt +++ b/native/tests/CMakeLists.txt @@ -38,7 +38,7 @@ endif() # if SEAL_BUILD_TESTS is ON, use GoogleTest if(SEAL_BUILD_TESTS) if(SEAL_BUILD_DEPS) - seal_fetch_thirdparty_content(ExternalGTest) + include(ExternalGTest) add_library(GTest::gtest ALIAS gtest) else() find_package(GTest 1.10.0 CONFIG) diff --git a/thirdparty/benchmark b/thirdparty/benchmark new file mode 160000 index 000000000..f91b6b42b --- /dev/null +++ b/thirdparty/benchmark @@ -0,0 +1 @@ +Subproject commit f91b6b42b1b9854772a90ae9501464a161707d1e diff --git a/thirdparty/googletest b/thirdparty/googletest new file mode 160000 index 000000000..e2239ee60 --- /dev/null +++ b/thirdparty/googletest @@ -0,0 +1 @@ +Subproject commit e2239ee6043f73722e7aa812a459f54a28552929 diff --git a/thirdparty/hexl b/thirdparty/hexl new file mode 160000 index 000000000..0858760dc --- /dev/null +++ b/thirdparty/hexl @@ -0,0 +1 @@ +Subproject commit 0858760dc957280e8eb8953af4b4b83879d7b8a4 diff --git a/thirdparty/msgsl b/thirdparty/msgsl new file mode 160000 index 000000000..0f6dbc9e2 --- /dev/null +++ b/thirdparty/msgsl @@ -0,0 +1 @@ +Subproject commit 0f6dbc9e2915ef5c16830f3fa3565738de2a9230 diff --git a/thirdparty/zlib b/thirdparty/zlib new file mode 160000 index 000000000..cacf7f1d4 --- /dev/null +++ b/thirdparty/zlib @@ -0,0 +1 @@ +Subproject commit cacf7f1d4e3d44d871b605da3b647f07d718623f diff --git a/thirdparty/zstd b/thirdparty/zstd new file mode 160000 index 000000000..b706286ad --- /dev/null +++ b/thirdparty/zstd @@ -0,0 +1 @@ +Subproject commit b706286adbba780006a47ef92df0ad7a785666b6