diff options
author | Brad King <brad.king@kitware.com> | 2009-07-31 13:19:19 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2009-07-31 13:19:19 (GMT) |
commit | a48f29c904a0b2ae409b511e4b4436a85da68292 (patch) | |
tree | 924a4623fe9c803c222ff3eba7293824d1bb14d5 /Source/CTest/cmCTestScriptHandler.cxx | |
parent | 36bb624907cd2eec30c8bbfe4787e29685b80947 (diff) | |
download | CMake-a48f29c904a0b2ae409b511e4b4436a85da68292.zip CMake-a48f29c904a0b2ae409b511e4b4436a85da68292.tar.gz CMake-a48f29c904a0b2ae409b511e4b4436a85da68292.tar.bz2 |
Set current directory variables in CTest scripts
The commit "Fix get_filename_component ABSOLUTE mode" broke the code
get_filename_component(cwd . ABSOLUTE)
because CTest scripts did not make cmMakefile::GetCurrentDirectory()
available. This commit fixes the problem by setting the proper
information on CTest script instances of cmMakefile.
This also makes CMAKE_CURRENT_SOURCE_DIR and CMAKE_CURRENT_BINARY_DIR
available to CTest scripts. They are set to the working directory at
script startup.
Diffstat (limited to 'Source/CTest/cmCTestScriptHandler.cxx')
-rw-r--r-- | Source/CTest/cmCTestScriptHandler.cxx | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/Source/CTest/cmCTestScriptHandler.cxx b/Source/CTest/cmCTestScriptHandler.cxx index 4ba9e68..0890fd1 100644 --- a/Source/CTest/cmCTestScriptHandler.cxx +++ b/Source/CTest/cmCTestScriptHandler.cxx @@ -337,6 +337,12 @@ void cmCTestScriptHandler::CreateCMake() this->LocalGenerator = this->GlobalGenerator->CreateLocalGenerator(); this->Makefile = this->LocalGenerator->GetMakefile(); + // Set CMAKE_CURRENT_SOURCE_DIR and CMAKE_CURRENT_BINARY_DIR. + // Also, some commands need Makefile->GetCurrentDirectory(). + std::string cwd = cmSystemTools::GetCurrentWorkingDirectory(); + this->Makefile->SetStartDirectory(cwd.c_str()); + this->Makefile->SetStartOutputDirectory(cwd.c_str()); + // remove all cmake commands which are not scriptable, since they can't be // used in ctest scripts this->CMake->RemoveUnscriptableCommands(); |