diff --git a/Source/CTest/cmCTestBuildHandler.cxx b/Source/CTest/cmCTestBuildHandler.cxx index 71c9e3f24c..484f17a2a4 100644 --- a/Source/CTest/cmCTestBuildHandler.cxx +++ b/Source/CTest/cmCTestBuildHandler.cxx @@ -465,6 +465,9 @@ void cmCTestBuildHandler::GenerateXMLHeader(cmXMLWriter& xml) xml.StartElement("Build"); xml.Element("StartDateTime", this->StartBuild); xml.Element("StartBuildTime", this->StartBuildTime); + xml.Element("SourceDirectory", + this->CTest->GetCTestConfiguration("SourceDirectory")); + xml.Element("BinaryDirectory", this->CTest->GetBinaryDir()); xml.Element("BuildCommand", this->GetMakeCommand()); } diff --git a/Tests/RunCMake/ctest_build/BuildDirectories-check.cmake b/Tests/RunCMake/ctest_build/BuildDirectories-check.cmake new file mode 100644 index 0000000000..e704c52a8a --- /dev/null +++ b/Tests/RunCMake/ctest_build/BuildDirectories-check.cmake @@ -0,0 +1,18 @@ +file(GLOB build_xml_file "${RunCMake_TEST_BINARY_DIR}/Testing/*/Build.xml") +if(build_xml_file) + file(READ "${build_xml_file}" build_xml LIMIT 4096) + if(NOT build_xml MATCHES [[]]) + string(REPLACE "\n" "\n " build_xml " ${build_xml}") + set(RunCMake_TEST_FAILED + "Build.xml does not have expected attribute:\n${build_xml}" + ) + endif() + if(NOT build_xml MATCHES [[]]) + string(REPLACE "\n" "\n " build_xml " ${build_xml}") + set(RunCMake_TEST_FAILED + "Build.xml does not have expected attribute:\n${build_xml}" + ) + endif() +else() + set(RunCMake_TEST_FAILED "Build.xml not found") +endif() diff --git a/Tests/RunCMake/ctest_build/BuildDirectories-result.txt b/Tests/RunCMake/ctest_build/BuildDirectories-result.txt new file mode 100644 index 0000000000..b57e2deb77 --- /dev/null +++ b/Tests/RunCMake/ctest_build/BuildDirectories-result.txt @@ -0,0 +1 @@ +(-1|255) diff --git a/Tests/RunCMake/ctest_build/BuildDirectories-stderr.txt b/Tests/RunCMake/ctest_build/BuildDirectories-stderr.txt new file mode 100644 index 0000000000..bbe9410a11 --- /dev/null +++ b/Tests/RunCMake/ctest_build/BuildDirectories-stderr.txt @@ -0,0 +1 @@ +^Error\(s\) when building project diff --git a/Tests/RunCMake/ctest_build/RunCMakeTest.cmake b/Tests/RunCMake/ctest_build/RunCMakeTest.cmake index f45a972351..34ef64fe5f 100644 --- a/Tests/RunCMake/ctest_build/RunCMakeTest.cmake +++ b/Tests/RunCMake/ctest_build/RunCMakeTest.cmake @@ -61,6 +61,11 @@ set(RunCMake_BUILD_COMMAND "${FAKE_BUILD_COMMAND_EXE}") run_ctest(BuildCommandFailure) unset(RunCMake_BUILD_COMMAND) +set(RunCMake_USE_CUSTOM_BUILD_COMMAND TRUE) +set(RunCMake_BUILD_COMMAND "${FAKE_BUILD_COMMAND_EXE}") +run_ctest(BuildDirectories) +unset(RunCMake_BUILD_COMMAND) + set(RunCMake_USE_LAUNCHERS FALSE) set(RunCMake_BUILD_COMMAND "${COLOR_WARNING}") run_ctest(IgnoreColor)