From 875cc362e0e0b2a33873efa3d9b20f2c3ad572c3 Mon Sep 17 00:00:00 2001 From: Florian Albrechtskirchinger Date: Sat, 24 Sep 2022 14:35:07 +0200 Subject: [PATCH] Move test data download into CMake script Avoid using shell commands to check if the test directory exists by using a CMake script. --- cmake/json_test.cmake | 6 +++++- cmake/scripts/clone_test_data.cmake | 16 ++++++++++++++++ 2 files changed, 21 insertions(+), 1 deletion(-) create mode 100644 cmake/scripts/clone_test_data.cmake diff --git a/cmake/json_test.cmake b/cmake/json_test.cmake index d64affdca..9c35a3d14 100644 --- a/cmake/json_test.cmake +++ b/cmake/json_test.cmake @@ -12,7 +12,11 @@ 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} --quiet --depth 1 + COMMAND ${CMAKE_COMMAND} + -DGIT_EXECUTABLE=${GIT_EXECUTABLE} + -DJSON_TEST_DATA_VERSION=${JSON_TEST_DATA_VERSION} + -DJSON_TEST_DATA_URL=${JSON_TEST_DATA_URL} + -P ${PROJECT_SOURCE_DIR}/cmake/scripts/clone_test_data.cmake COMMENT "Downloading test data from ${JSON_TEST_DATA_URL} (v${JSON_TEST_DATA_VERSION})" WORKING_DIRECTORY ${CMAKE_BINARY_DIR} ) diff --git a/cmake/scripts/clone_test_data.cmake b/cmake/scripts/clone_test_data.cmake new file mode 100644 index 000000000..c6cc90eb9 --- /dev/null +++ b/cmake/scripts/clone_test_data.cmake @@ -0,0 +1,16 @@ +# clone test data + +get_filename_component(test_data_dir json_test_data ABSOLUTE) + +if(NOT EXISTS ${test_data_dir}) + execute_process(COMMAND ${GIT_EXECUTABLE} clone + -q -c advice.detachedHead=false -b v${JSON_TEST_DATA_VERSION} --depth 1 + -- ${JSON_TEST_DATA_URL} ${test_data_dir} + RESULT_VARIABLE git_result + OUTPUT_VARIABLE git_output + ERROR_VARIABLE git_output) + + if(NOT git_result EQUAL 0) + message(FATAL_ERROR "git failed:\n${git_output}") + endif() +endif()