diff --git a/Modules/GoogleTest.cmake b/Modules/GoogleTest.cmake index 2fded3f2f7..1a27f002cc 100644 --- a/Modules/GoogleTest.cmake +++ b/Modules/GoogleTest.cmake @@ -704,6 +704,7 @@ function(gtest_discover_tests target) -D "TEST_DISCOVERY_TIMEOUT=${arg_DISCOVERY_TIMEOUT}" -D "TEST_DISCOVERY_EXTRA_ARGS=${arg_DISCOVERY_EXTRA_ARGS}" -D "TEST_XML_OUTPUT_DIR=${arg_XML_OUTPUT_DIR}" + -D "TEST_JSON_OUTPUT_DIR=${CMAKE_CURRENT_BINARY_DIR}" -P "${CMAKE_ROOT}/Modules/GoogleTestAddTests.cmake" VERBATIM ) @@ -747,6 +748,7 @@ function(gtest_discover_tests target) " TEST_DISCOVERY_TIMEOUT" " [==[${arg_DISCOVERY_TIMEOUT}]==]" "\n" " TEST_DISCOVERY_EXTRA_ARGS [==[${arg_DISCOVERY_EXTRA_ARGS}]==]" "\n" " TEST_XML_OUTPUT_DIR" " [==[${arg_XML_OUTPUT_DIR}]==]" "\n" + " TEST_JSON_OUTPUT_DIR" " [==[${CMAKE_CURRENT_BINARY_DIR}]==]" "\n" " )" "\n" " endif()" "\n" " include(\"${ctest_tests_file}\")" "\n" diff --git a/Modules/GoogleTestAddTests.cmake b/Modules/GoogleTestAddTests.cmake index 10f92a32bd..acada1f9c4 100644 --- a/Modules/GoogleTestAddTests.cmake +++ b/Modules/GoogleTestAddTests.cmake @@ -294,6 +294,7 @@ function(gtest_discover_tests_impl) CTEST_FILE TEST_DISCOVERY_TIMEOUT TEST_XML_OUTPUT_DIR + TEST_JSON_OUTPUT_DIR # The following are all multi-value arguments in gtest_discover_tests(), # but they are each given to us as a single argument. We parse them that # way to avoid problems with preserving empty list values and escaping. @@ -355,7 +356,7 @@ function(gtest_discover_tests_impl) string(SHA256 target_hash "${arg_TEST_TARGET}") string(SUBSTRING "${target_hash}" 0 10 target_hash) set(json_file - "${arg_TEST_WORKING_DIR}/cmake_test_discovery_${target_hash}.json" + "${arg_TEST_JSON_OUTPUT_DIR}/cmake_test_discovery_${target_hash}.json" ) # Remove json file to make sure we don't pick up an outdated one @@ -435,6 +436,7 @@ if(CMAKE_SCRIPT_MODE_FILE) CTEST_FILE ${CTEST_FILE} TEST_DISCOVERY_TIMEOUT ${TEST_DISCOVERY_TIMEOUT} TEST_XML_OUTPUT_DIR ${TEST_XML_OUTPUT_DIR} + TEST_JSON_OUTPUT_DIR ${TEST_JSON_OUTPUT_DIR} TEST_EXTRA_ARGS "${TEST_EXTRA_ARGS}" TEST_DISCOVERY_EXTRA_ARGS "${TEST_DISCOVERY_EXTRA_ARGS}" TEST_PROPERTIES "${TEST_PROPERTIES}"