summaryrefslogtreecommitdiffstats
path: root/Source/CTest/cmCTestBuildCommand.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'Source/CTest/cmCTestBuildCommand.cxx')
-rw-r--r--Source/CTest/cmCTestBuildCommand.cxx41
1 files changed, 35 insertions, 6 deletions
diff --git a/Source/CTest/cmCTestBuildCommand.cxx b/Source/CTest/cmCTestBuildCommand.cxx
index d8f1ef7..4812152 100644
--- a/Source/CTest/cmCTestBuildCommand.cxx
+++ b/Source/CTest/cmCTestBuildCommand.cxx
@@ -21,6 +21,24 @@
#include "cmake.h"
#include "cmGlobalGenerator.h"
+
+//----------------------------------------------------------------------------
+cmCTestBuildCommand::cmCTestBuildCommand()
+{
+ m_GlobalGenerator = 0;
+}
+
+//----------------------------------------------------------------------------
+cmCTestBuildCommand::~cmCTestBuildCommand()
+{
+ if ( m_GlobalGenerator )
+ {
+ delete m_GlobalGenerator;
+ m_GlobalGenerator = 0;
+ }
+}
+
+//----------------------------------------------------------------------------
bool cmCTestBuildCommand::InitialPass(
std::vector<std::string> const& args)
{
@@ -97,13 +115,24 @@ bool cmCTestBuildCommand::InitialPass(
{
cmakeBuildConfiguration = "Release";
}
- cmGlobalGenerator* gen =
- m_Makefile->GetCMakeInstance()->CreateGlobalGenerator(cmakeGeneratorName);
- gen->FindMakeProgram(m_Makefile);
+ if ( m_GlobalGenerator )
+ {
+ if ( strcmp(m_GlobalGenerator->GetName(), cmakeGeneratorName) != 0 )
+ {
+ delete m_GlobalGenerator;
+ m_GlobalGenerator = 0;
+ }
+ }
+ if ( !m_GlobalGenerator )
+ {
+ m_GlobalGenerator =
+ m_Makefile->GetCMakeInstance()->CreateGlobalGenerator(cmakeGeneratorName);
+ }
+ m_GlobalGenerator->FindMakeProgram(m_Makefile);
const char* cmakeMakeProgram = m_Makefile->GetDefinition("CMAKE_MAKE_PROGRAM");
- std::string buildCommand = gen->GenerateBuildCommand(cmakeMakeProgram, cmakeProjectName,
- 0, cmakeBuildConfiguration, true);
-
+ std::string buildCommand
+ = m_GlobalGenerator->GenerateBuildCommand(cmakeMakeProgram, cmakeProjectName,
+ 0, cmakeBuildConfiguration, true);
m_CTest->SetCTestConfiguration("MakeCommand", buildCommand.c_str());
}
else