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()