From 6569f50f4cd78789199fe70e10c78f3a36f86bca Mon Sep 17 00:00:00 2001 From: Stephen Nicholas Swatman Date: Tue, 23 Jul 2024 22:38:47 +0200 Subject: [PATCH] Include external libraries as system libraries The Vc library in particular is throwing a lot of warnings in the compilation of algebra-plugins and, in turn, in detray and traccc. This commit marks all of algebra-plugins' dependencies as system dependencies if allowed by CMake (i.e. on CMake 3.25 and later) to avoid the warnings. --- extern/benchmark/CMakeLists.txt | 12 ++++++++++-- extern/eigen3/CMakeLists.txt | 11 ++++++++++- extern/fastor/CMakeLists.txt | 11 ++++++++++- extern/googletest/CMakeLists.txt | 11 ++++++++++- extern/vc/CMakeLists.txt | 11 ++++++++++- extern/vecmem/CMakeLists.txt | 11 ++++++++++- 6 files changed, 60 insertions(+), 7 deletions(-) diff --git a/extern/benchmark/CMakeLists.txt b/extern/benchmark/CMakeLists.txt index 4cffface..4d4d6ce2 100644 --- a/extern/benchmark/CMakeLists.txt +++ b/extern/benchmark/CMakeLists.txt @@ -16,7 +16,16 @@ set( ALGEBRA_PLUGINS_BENCHMARK_SOURCE "URL;https://github.com/google/benchmark/archive/refs/tags/v1.6.1.tar.gz;URL_MD5;8c33c51f9b7154e6c290df3750081c87" CACHE STRING "Source for Google Benchmark, when built as part of this project" ) mark_as_advanced( ALGEBRA_PLUGINS_BENCHMARK_SOURCE ) -FetchContent_Declare( benchmark ${ALGEBRA_PLUGINS_BENCHMARK_SOURCE} ) + +# Mark the import as a system library on modern CMake versions +if (CMAKE_VERSION VERSION_GREATER_EQUAL 3.25.0) + set(ALGEBRA_PLUGINS_BENCHMARK_SOURCE_FULL "${ALGEBRA_PLUGINS_BENCHMARK_SOURCE};SYSTEM") +else() + set(ALGEBRA_PLUGINS_BENCHMARK_SOURCE_FULL "${ALGEBRA_PLUGINS_BENCHMARK_SOURCE}") +endif() +mark_as_advanced( ALGEBRA_PLUGINS_BENCHMARK_SOURCE_FULL ) + +FetchContent_Declare( benchmark ${ALGEBRA_PLUGINS_BENCHMARK_SOURCE_FULL} ) # Options used in the build of Google Benchmark. set(BENCHMARK_ENABLE_TESTING OFF CACHE BOOL "Don't build the Google Benchmark tests") @@ -29,4 +38,3 @@ set(BENCHMARK_ENABLE_WERROR OFF CACHE BOOL "Enable/disable using -Werror in the FetchContent_Populate( benchmark ) add_subdirectory( "${benchmark_SOURCE_DIR}" "${benchmark_BINARY_DIR}" EXCLUDE_FROM_ALL ) - diff --git a/extern/eigen3/CMakeLists.txt b/extern/eigen3/CMakeLists.txt index 2d89b4c5..82db231f 100644 --- a/extern/eigen3/CMakeLists.txt +++ b/extern/eigen3/CMakeLists.txt @@ -16,7 +16,16 @@ set( ALGEBRA_PLUGINS_EIGEN_SOURCE "URL;https://gitlab.com/libeigen/eigen/-/archive/3.4.0/eigen-3.4.0.tar.bz2;URL_MD5;132dde48fe2b563211675626d29f1707" CACHE STRING "Source for Eigen, when built as part of this project" ) mark_as_advanced( ALGEBRA_PLUGINS_EIGEN_SOURCE ) -FetchContent_Declare( Eigen3 ${ALGEBRA_PLUGINS_EIGEN_SOURCE} ) + +# Mark the import as a system library on modern CMake versions +if (CMAKE_VERSION VERSION_GREATER_EQUAL 3.25.0) + set(ALGEBRA_PLUGINS_EIGEN_SOURCE_FULL "${ALGEBRA_PLUGINS_EIGEN_SOURCE};SYSTEM") +else() + set(ALGEBRA_PLUGINS_EIGEN_SOURCE_FULL "${ALGEBRA_PLUGINS_EIGEN_SOURCE}") +endif() +mark_as_advanced( ALGEBRA_PLUGINS_EIGEN_SOURCE_FULL ) + +FetchContent_Declare( Eigen3 ${ALGEBRA_PLUGINS_EIGEN_SOURCE_FULL} ) # Turn off the unit tests for Eigen3. if( DEFINED CACHE{BUILD_TESTING} ) diff --git a/extern/fastor/CMakeLists.txt b/extern/fastor/CMakeLists.txt index 11e8d9f7..f4b4ff36 100644 --- a/extern/fastor/CMakeLists.txt +++ b/extern/fastor/CMakeLists.txt @@ -23,7 +23,16 @@ set( ALGEBRA_PLUGINS_FASTOR_SOURCE "fastor;GIT_REPOSITORY;https://github.com/romeric/Fastor.git;GIT_TAG;e96e63fe8a05898d732d0b9faba3667d9a25a38f" CACHE STRING "Source for Fastor, when built as part of this project" ) mark_as_advanced( ALGEBRA_PLUGINS_FASTOR_SOURCE ) -FetchContent_Declare( fastor ${ALGEBRA_PLUGINS_FASTOR_SOURCE} ) + +# Mark the import as a system library on modern CMake versions +if (CMAKE_VERSION VERSION_GREATER_EQUAL 3.25.0) + set(ALGEBRA_PLUGINS_FASTOR_SOURCE_FULL "${ALGEBRA_PLUGINS_FASTOR_SOURCE};SYSTEM") +else() + set(ALGEBRA_PLUGINS_FASTOR_SOURCE_FULL "${ALGEBRA_PLUGINS_FASTOR_SOURCE}") +endif() +mark_as_advanced( ALGEBRA_PLUGINS_FASTOR_SOURCE_FULL ) + +FetchContent_Declare( fastor ${ALGEBRA_PLUGINS_FASTOR_SOURCE_FULL} ) # Turn off the unit tests for Fastor. if( DEFINED CACHE{BUILD_TESTING} ) diff --git a/extern/googletest/CMakeLists.txt b/extern/googletest/CMakeLists.txt index d5bf9cc6..6f3cdf2a 100644 --- a/extern/googletest/CMakeLists.txt +++ b/extern/googletest/CMakeLists.txt @@ -16,7 +16,16 @@ set( ALGEBRA_PLUGINS_GOOGLETEST_SOURCE "URL;https://github.com/google/googletest/archive/refs/tags/v1.14.0.tar.gz;URL_MD5;c8340a482851ef6a3fe618a082304cfc" CACHE STRING "Source for GoogleTest, when built as part of this project" ) mark_as_advanced( ALGEBRA_PLUGINS_GOOGLETEST_SOURCE ) -FetchContent_Declare( GoogleTest ${ALGEBRA_PLUGINS_GOOGLETEST_SOURCE} ) + +# Mark the import as a system library on modern CMake versions +if (CMAKE_VERSION VERSION_GREATER_EQUAL 3.25.0) + set(ALGEBRA_PLUGINS_GOOGLETEST_SOURCE_FULL "${ALGEBRA_PLUGINS_GOOGLETEST_SOURCE};SYSTEM") +else() + set(ALGEBRA_PLUGINS_GOOGLETEST_SOURCE_FULL "${ALGEBRA_PLUGINS_GOOGLETEST_SOURCE}") +endif() +mark_as_advanced( ALGEBRA_PLUGINS_GOOGLETEST_SOURCE_FULL ) + +FetchContent_Declare( GoogleTest ${ALGEBRA_PLUGINS_GOOGLETEST_SOURCE_FULL} ) # Options used in the build of GoogleTest. set( BUILD_GMOCK TRUE CACHE BOOL "Turn off the build of GMock" ) diff --git a/extern/vc/CMakeLists.txt b/extern/vc/CMakeLists.txt index 29e8c957..abc3a1ad 100644 --- a/extern/vc/CMakeLists.txt +++ b/extern/vc/CMakeLists.txt @@ -16,7 +16,16 @@ set( ALGEBRA_PLUGINS_VC_SOURCE "URL;https://github.com/VcDevel/Vc/archive/refs/tags/1.4.3.tar.gz;URL_MD5;02d33a9d560a14bb23204be235713f65" CACHE STRING "Source for Vc, when built as part of this project" ) mark_as_advanced( ALGEBRA_PLUGINS_VC_SOURCE ) -FetchContent_Declare( Vc ${ALGEBRA_PLUGINS_VC_SOURCE} ) + +# Mark the import as a system library on modern CMake versions +if (CMAKE_VERSION VERSION_GREATER_EQUAL 3.25.0) + set(ALGEBRA_PLUGINS_VC_SOURCE_FULL "${ALGEBRA_PLUGINS_VC_SOURCE};SYSTEM") +else() + set(ALGEBRA_PLUGINS_VC_SOURCE_FULL "${ALGEBRA_PLUGINS_VC_SOURCE}") +endif() +mark_as_advanced( ALGEBRA_PLUGINS_VC_SOURCE_FULL ) + +FetchContent_Declare( Vc ${ALGEBRA_PLUGINS_VC_SOURCE_FULL} ) # Turn off the unit tests for Vc. if( DEFINED CACHE{BUILD_TESTING} ) diff --git a/extern/vecmem/CMakeLists.txt b/extern/vecmem/CMakeLists.txt index 71d31e37..c235f696 100644 --- a/extern/vecmem/CMakeLists.txt +++ b/extern/vecmem/CMakeLists.txt @@ -16,7 +16,16 @@ set( ALGEBRA_PLUGINS_VECMEM_SOURCE "URL;https://github.com/acts-project/vecmem/archive/refs/tags/v1.5.0.tar.gz;URL_MD5;3cc5a3bb14b93f611513535173a6be28" CACHE STRING "Source for VecMem, when built as part of this project" ) mark_as_advanced( ALGEBRA_PLUGINS_VECMEM_SOURCE ) -FetchContent_Declare( VecMem ${ALGEBRA_PLUGINS_VECMEM_SOURCE} ) + +# Mark the import as a system library on modern CMake versions +if (CMAKE_VERSION VERSION_GREATER_EQUAL 3.25.0) + set(ALGEBRA_PLUGINS_VECMEM_SOURCE_FULL "${ALGEBRA_PLUGINS_VECMEM_SOURCE};SYSTEM") +else() + set(ALGEBRA_PLUGINS_VECMEM_SOURCE_FULL "${ALGEBRA_PLUGINS_VECMEM_SOURCE}") +endif() +mark_as_advanced( ALGEBRA_PLUGINS_VECMEM_SOURCE_FULL ) + +FetchContent_Declare( VecMem ${ALGEBRA_PLUGINS_VECMEM_SOURCE_FULL} ) # Options used in the build of VecMem. set( VECMEM_BUILD_TESTING FALSE CACHE BOOL