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.
This commit is contained in:
parent
36bb624907
commit
a48f29c904
|
@ -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();
|
||||
|
|
Loading…
Reference in New Issue