diff --git a/builtins/vdt/CMakeLists.txt b/builtins/vdt/CMakeLists.txt new file mode 100644 index 0000000000000..a05772b0abaac --- /dev/null +++ b/builtins/vdt/CMakeLists.txt @@ -0,0 +1,44 @@ +set(ROOT_VDT_VERSION 0.4.6) +set(VDT_FOUND True) +set(VDT_LIBRARIES "${CMAKE_BINARY_DIR}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}vdt${CMAKE_SHARED_LIBRARY_SUFFIX}") +ExternalProject_Add( + BUILTIN_VDT + URL ${lcgpackages}/vdt-${ROOT_VDT_VERSION}.tar.gz + URL_HASH SHA256=1820feae446780763ec8bbb60a0dbcf3ae1ee548bdd01415b1fb905fd4f90c54 + INSTALL_DIR ${CMAKE_BINARY_DIR} + CMAKE_ARGS + -DCMAKE_POLICY_VERSION_MINIMUM=3.5 + -DSSE=OFF # breaks on ARM without this + -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} + -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER} + -DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER} + -DCMAKE_C_FLAGS=${CMAKE_C_FLAGS} + -DCMAKE_CXX_FLAGS=${ROOT_EXTERNAL_CXX_FLAGS} + -DCMAKE_INSTALL_PREFIX= + LOG_DOWNLOAD 1 LOG_CONFIGURE 1 LOG_BUILD 1 LOG_INSTALL 1 LOG_OUTPUT_ON_FAILURE 1 + BUILD_BYPRODUCTS ${VDT_LIBRARIES} + TIMEOUT 600 +) +ExternalProject_Add_Step( + BUILTIN_VDT copy2externals + COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_BINARY_DIR}/include/vdt ${CMAKE_BINARY_DIR}/ginclude/vdt + DEPENDEES install +) +set(VDT_INCLUDE_DIR ${CMAKE_BINARY_DIR}/ginclude) +set(VDT_INCLUDE_DIRS ${CMAKE_BINARY_DIR}/ginclude) + +add_library(VDT::VDT SHARED IMPORTED GLOBAL) +add_dependencies(VDT::VDT BUILTIN_VDT) +set_target_properties(VDT::VDT PROPERTIES IMPORTED_LOCATION ${VDT_LIBRARIES}) +target_include_directories(VDT::VDT INTERFACE $ $) + +install(FILES ${VDT_LIBRARIES} + DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT libraries) +install(DIRECTORY ${CMAKE_BINARY_DIR}/include/vdt + DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} COMPONENT extra-headers) +set_property(GLOBAL APPEND PROPERTY ROOT_BUILTIN_TARGETS VDT::VDT) + +set(VDT_VERSION ${ROOT_VDT_VERSION} PARENT_SCOPE) +set(VDT_FOUND ${VDT_FOUND} PARENT_SCOPE) +set(VDT_LIBRARIES ${VDT_LIBRARIES} PARENT_SCOPE) +set(VDT_INCLUDE_DIRS ${VDT_INCLUDE_DIRS} PARENT_SCOPE) diff --git a/cmake/modules/SearchInstalledSoftware.cmake b/cmake/modules/SearchInstalledSoftware.cmake index fb3ba29c6804a..ab26b95f421fb 100644 --- a/cmake/modules/SearchInstalledSoftware.cmake +++ b/cmake/modules/SearchInstalledSoftware.cmake @@ -1030,47 +1030,8 @@ if(vdt OR builtin_vdt) endif() endif() if(builtin_vdt) - set(vdt_version 0.4.6) - set(VDT_FOUND True) - set(VDT_LIBRARIES ${CMAKE_BINARY_DIR}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}vdt${CMAKE_SHARED_LIBRARY_SUFFIX}) - ExternalProject_Add( - BUILTIN_VDT - URL ${lcgpackages}/vdt-${vdt_version}.tar.gz - URL_HASH SHA256=1820feae446780763ec8bbb60a0dbcf3ae1ee548bdd01415b1fb905fd4f90c54 - INSTALL_DIR ${CMAKE_BINARY_DIR} - CMAKE_ARGS - -DCMAKE_POLICY_VERSION_MINIMUM=3.5 - -DSSE=OFF # breaks on ARM without this - -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} - -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER} - -DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER} - -DCMAKE_C_FLAGS=${CMAKE_C_FLAGS} - -DCMAKE_CXX_FLAGS=${ROOT_EXTERNAL_CXX_FLAGS} - -DCMAKE_INSTALL_PREFIX= - LOG_DOWNLOAD 1 LOG_CONFIGURE 1 LOG_BUILD 1 LOG_INSTALL 1 LOG_OUTPUT_ON_FAILURE 1 - BUILD_BYPRODUCTS ${VDT_LIBRARIES} - TIMEOUT 600 - ) - ExternalProject_Add_Step( - BUILTIN_VDT copy2externals - COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_BINARY_DIR}/include/vdt ${CMAKE_BINARY_DIR}/ginclude/vdt - DEPENDEES install - ) - set(VDT_INCLUDE_DIR ${CMAKE_BINARY_DIR}/ginclude) - set(VDT_INCLUDE_DIRS ${CMAKE_BINARY_DIR}/ginclude) - - add_library(VDT::VDT SHARED IMPORTED GLOBAL) - add_dependencies(VDT::VDT BUILTIN_VDT) - set_target_properties(VDT::VDT PROPERTIES IMPORTED_LOCATION "${VDT_LIBRARIES}") - target_include_directories(VDT::VDT INTERFACE $ $) - - install(FILES ${VDT_LIBRARIES} - DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT libraries) - install(DIRECTORY ${CMAKE_BINARY_DIR}/include/vdt - DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} COMPONENT extra-headers) - set_property(GLOBAL APPEND PROPERTY ROOT_BUILTIN_TARGETS VDT::VDT) - else() - BUILD_ROOT_INCLUDE_PATH("${VDT_INCLUDE_DIR}") + list(APPEND ROOT_BUILTINS VDT) + add_subdirectory(builtins/vdt) endif() endif() diff --git a/roottest/root/math/vdt/CMakeLists.txt b/roottest/root/math/vdt/CMakeLists.txt index bf391b419a35b..f8462583d210c 100644 --- a/roottest/root/math/vdt/CMakeLists.txt +++ b/roottest/root/math/vdt/CMakeLists.txt @@ -3,12 +3,10 @@ if (vdt AND NOT ROOT_CLASSIC_BUILD AND NOT "${CMAKE_CXX_COMPILER_ID}" STREQUAL " set (testname stressVdt) set(additional_compile_flags "-O3") - include_directories(${VDT_INCLUDE_DIRS}) - ROOTTEST_GENERATE_EXECUTABLE(${testname} ${testname}.cxx COMPILE_FLAGS ${additional_compile_flags} - LIBRARIES Core Hist Gpad MathCore ${VDT_LIBRARIES} + LIBRARIES Core Hist Gpad MathCore VDT::VDT FIXTURES_SETUP root-math-vdt-stressVdt-fixture) ROOTTEST_ADD_TEST(${testname}