diff --git a/Framework/Kernel/CMakeLists.txt b/Framework/Kernel/CMakeLists.txt index bc345c68048063e6ceb9330c16d0f7f8674ae2c4..f460253f9f617270a763004300f0d2e1acdacad1 100644 --- a/Framework/Kernel/CMakeLists.txt +++ b/Framework/Kernel/CMakeLists.txt @@ -491,7 +491,7 @@ target_include_directories(Kernel SYSTEM PUBLIC ${Boost_INCLUDE_DIRS} ${POCO_INCLUDE_DIRS} ${JSONCPP_INCLUDE_DIR} PRIVATE ${NEXUS_INCLUDE_DIR} ${GSL_INCLUDE_DIR} - ${OPENSSL_INCLUDE_DIR} ${SPAN_INCLUDE_DIR}) + ${OPENSSL_INCLUDE_DIR}) if(${CMAKE_SYSTEM_NAME} MATCHES "Darwin") set_target_properties(Kernel PROPERTIES INSTALL_RPATH "@loader_path/../MacOS;@loader_path/../Frameworks") @@ -519,7 +519,9 @@ target_link_libraries(Kernel ${TCMALLOC_LIBRARIES_LINKTIME} ${GSL_LIBRARIES} ${MANTIDLIBS} - ${NETWORK_LIBRARIES}) + ${NETWORK_LIBRARIES} + span + ) if(WIN32) target_link_libraries(Kernel LINK_PRIVATE Psapi.lib) # For memory usage # queries diff --git a/buildconfig/CMake/Span.cmake b/buildconfig/CMake/Span.cmake index 120f837fcf1bf8eeca6611b21d1b8b739052b4c4..4e5155f9ef3a4502e073f4278960ace37b326d48 100644 --- a/buildconfig/CMake/Span.cmake +++ b/buildconfig/CMake/Span.cmake @@ -1,12 +1,20 @@ -include(ExternalProject) +include(FetchContent) +message(STATUS "Using external tcbrindle/span") -message(STATUS "Using tcbrindle/span in ExternalProject") +find_package(Git) -# Download and unpack Eigen at configure time -configure_file(${CMAKE_SOURCE_DIR}/buildconfig/CMake/Span.in ${CMAKE_BINARY_DIR}/extern-span/CMakeLists.txt) +set ( _apply_flags --ignore-space-change --whitespace=fix ) -execute_process(COMMAND ${CMAKE_COMMAND} -G "${CMAKE_GENERATOR}" -DCMAKE_SYSTEM_VERSION=${CMAKE_SYSTEM_VERSION} . WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/extern-span ) -execute_process(COMMAND ${CMAKE_COMMAND} --build . WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/extern-span ) - -set(SPAN_INCLUDE_DIR "${CMAKE_BINARY_DIR}/extern-span/span-prefix/src/span/include" CACHE PATH "") +FetchContent_Declare( + span + GIT_REPOSITORY https://github.com/tcbrindle/span.git + GIT_TAG 08cb4bf0e06c0e36f7e2b64e488ede711a8bb5ad + PATCH_COMMAND ${GIT_EXECUTABLE} reset --hard ${_tag} + COMMAND ${GIT_EXECUTABLE} apply ${_apply_flags} ${CMAKE_SOURCE_DIR}/buildconfig/CMake/span_disable_testing.patch +) +FetchContent_GetProperties(span) +if(NOT span_POPULATED) + FetchContent_Populate(span) + add_subdirectory(${span_SOURCE_DIR} ${span_BINARY_DIR}) +endif() diff --git a/buildconfig/CMake/Span.in b/buildconfig/CMake/Span.in deleted file mode 100644 index 60f79cc7919325210497817e8ed77b198bea2e79..0000000000000000000000000000000000000000 --- a/buildconfig/CMake/Span.in +++ /dev/null @@ -1,14 +0,0 @@ -cmake_minimum_required ( VERSION 3.5 ) - -project(span-download NONE) - -include( ExternalProject ) - -ExternalProject_Add(span - GIT_REPOSITORY "https://github.com/tcbrindle/span.git" - GIT_TAG "e9cf0809c9b8b9ecd06db782dc631f138fab4ee8" - CONFIGURE_COMMAND "" - BUILD_COMMAND "" - INSTALL_COMMAND "" - TEST_COMMAND "" -) diff --git a/buildconfig/CMake/span_disable_testing.patch b/buildconfig/CMake/span_disable_testing.patch new file mode 100644 index 0000000000000000000000000000000000000000..6d2b0b1a01e9618b12c357a088acd68afe0dc3f5 --- /dev/null +++ b/buildconfig/CMake/span_disable_testing.patch @@ -0,0 +1,19 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 7ad07e2..0470696 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -2,7 +2,7 @@ + cmake_minimum_required(VERSION 3.8) + project(span LANGUAGES CXX) + +-enable_testing() ++# enable_testing() + + add_library(span INTERFACE) + target_sources(span INTERFACE ${CMAKE_CURRENT_SOURCE_DIR}/include/tcb/span.hpp) +@@ -11,4 +11,4 @@ target_compile_features(span INTERFACE cxx_std_11) + + set(TCB_SPAN_TEST_CXX_STD 11 CACHE STRING "C++ standard version for testing") + +-add_subdirectory(test) ++# add_subdirectory(test)