From e12968280719f66b48b6ba1f3de951b0c3125d4c Mon Sep 17 00:00:00 2001 From: Florian Albrechtskirchinger Date: Thu, 22 Sep 2022 21:34:23 +0200 Subject: [PATCH] Merge cmake/download_test_data.cmake into cmake/test.cmake --- cmake/download_test_data.cmake | 19 ------------------- cmake/json_opts.cmake | 9 +++++++++ cmake/json_summary.cmake | 10 ++++++++++ cmake/test.cmake | 16 +++++++++++++++- 4 files changed, 34 insertions(+), 20 deletions(-) delete mode 100644 cmake/download_test_data.cmake diff --git a/cmake/download_test_data.cmake b/cmake/download_test_data.cmake deleted file mode 100644 index 224d7db2c..000000000 --- a/cmake/download_test_data.cmake +++ /dev/null @@ -1,19 +0,0 @@ -set(JSON_TEST_DATA_URL https://github.com/nlohmann/json_test_data) -set(JSON_TEST_DATA_VERSION 3.1.0) - -# if variable is set, use test data from given directory rather than downloading them -if(JSON_TestDataDirectory) - message(STATUS "Using test data in ${JSON_TestDataDirectory}.") - add_custom_target(download_test_data) - file(WRITE ${CMAKE_BINARY_DIR}/include/test_data.hpp "#define TEST_DATA_DIRECTORY \"${JSON_TestDataDirectory}\"\n") -else() - find_package(Git) - # target to download test data - add_custom_target(download_test_data - COMMAND test -d json_test_data || ${GIT_EXECUTABLE} clone -c advice.detachedHead=false --branch v${JSON_TEST_DATA_VERSION} ${JSON_TEST_DATA_URL}.git --quiet --depth 1 - COMMENT "Downloading test data from ${JSON_TEST_DATA_URL} (v${JSON_TEST_DATA_VERSION})" - WORKING_DIRECTORY ${CMAKE_BINARY_DIR} - ) - # create a header with the path to the downloaded test data - file(WRITE ${CMAKE_BINARY_DIR}/include/test_data.hpp "#define TEST_DATA_DIRECTORY \"${CMAKE_BINARY_DIR}/json_test_data\"\n") -endif() diff --git a/cmake/json_opts.cmake b/cmake/json_opts.cmake index f22680fec..3483b15f3 100644 --- a/cmake/json_opts.cmake +++ b/cmake/json_opts.cmake @@ -62,3 +62,12 @@ endif() if (JSON_SystemInclude) set(NLOHMANN_JSON_SYSTEM_INCLUDE "SYSTEM") endif() + +if(JSON_TestDataDirectory) + set(JSON_TEST_DATA_DIRECTORY "${JSON_TestDataDirectory}" CACHE INTERNAL "") +elseif(DEFINED ENV{JSON_TEST_DATA_DIRECTORY}) + set(JSON_TEST_DATA_DIRECTORY "$ENV{JSON_TEST_DATA_DIRECTORY}" CACHE INTERNAL "") +endif() + +set(JSON_TEST_DATA_URL https://github.com/nlohmann/json_test_data CACHE INTERNAL "") +set(JSON_TEST_DATA_VERSION 3.1.0 CACHE INTERNAL "") diff --git a/cmake/json_summary.cmake b/cmake/json_summary.cmake index b20210f1b..3abbe1a27 100644 --- a/cmake/json_summary.cmake +++ b/cmake/json_summary.cmake @@ -51,7 +51,17 @@ json_feature(JSON_BuildTests "Build tests?") if(JSON_BuildTests) json_feature(JSON_32bitTest "Build the 32bit unit test?" VALUES AUTO ONLY) json_feature(JSON_FastTests "Skip expensive/slow tests?") + + if(JSON_TEST_DATA_DIRECTORY) + message(" Test data: ${JSON_TEST_DATA_DIRECTORY}") + else() + message(" Test data: ${JSON_TEST_DATA_URL} (v${JSON_TEST_DATA_VERSION})") + endif() + json_feature(JSON_Valgrind "Execute test suite with Valgrind?") + if(JSON_Valgrind) + message(" Valgrind command: ${CMAKE_MEMORYCHECK_COMMAND}" ${CMAKE_MEMORYCHECK_COMMAND_OPTIONS}) + endif() set(test_cxx_standards "") foreach(cxx_standard ${JSON_TEST_CXX_STANDARDS_FEATURE_INFO}) diff --git a/cmake/test.cmake b/cmake/test.cmake index bb840c6c0..8a0240a06 100644 --- a/cmake/test.cmake +++ b/cmake/test.cmake @@ -4,7 +4,21 @@ set(_json_test_cmake_list_file ${CMAKE_CURRENT_LIST_FILE}) # download test data ############################################################################# -include(download_test_data) +# if variable is set, use test data from given directory rather than downloading them +if(JSON_TEST_DATA_DIRECTORY) + add_custom_target(download_test_data) + file(WRITE ${CMAKE_BINARY_DIR}/include/test_data.hpp "#define TEST_DATA_DIRECTORY \"${JSON_TEST_DATA_DIRECTORY}\"\n") +else() + find_package(Git REQUIRED) + # target to download test data + add_custom_target(download_test_data + COMMAND test -d json_test_data || ${GIT_EXECUTABLE} clone -c advice.detachedHead=false --branch v${JSON_TEST_DATA_VERSION} ${JSON_TEST_DATA_URL}.git --quiet --depth 1 + COMMENT "Downloading test data from ${JSON_TEST_DATA_URL} (v${JSON_TEST_DATA_VERSION})" + WORKING_DIRECTORY ${CMAKE_BINARY_DIR} + ) + # create a header with the path to the downloaded test data + file(WRITE ${CMAKE_BINARY_DIR}/include/test_data.hpp "#define TEST_DATA_DIRECTORY \"${CMAKE_BINARY_DIR}/json_test_data\"\n") +endif() # test fixture to download test data add_test(NAME "download_test_data" COMMAND ${CMAKE_COMMAND} --build ${CMAKE_BINARY_DIR}