ENH: Make ctest build command work
This commit is contained in:
parent
e4af567bd2
commit
eb3857ce83
|
@ -1,3 +1,4 @@
|
|||
SET (CTEST_PROJECT_NAME "CMake")
|
||||
SET (CTEST_NIGHTLY_START_TIME "21:00:00 EDT")
|
||||
SET (CTEST_DROP_SITE "public.kitware.com")
|
||||
SET (CTEST_DROP_LOCATION "/cgi-bin/HTTPUploadDartFile.cgi")
|
||||
|
|
|
@ -18,6 +18,8 @@
|
|||
|
||||
#include "cmCTest.h"
|
||||
#include "cmCTestGenericHandler.h"
|
||||
#include "cmake.h"
|
||||
#include "cmGlobalGenerator.h"
|
||||
|
||||
bool cmCTestBuildCommand::InitialPass(
|
||||
std::vector<std::string> const& args)
|
||||
|
@ -38,6 +40,43 @@ bool cmCTestBuildCommand::InitialPass(
|
|||
this->SetError("internal CTest error. Cannot instantiate build handler");
|
||||
return false;
|
||||
}
|
||||
|
||||
const char* ctestBuildCommand = m_Makefile->GetDefinition("CTEST_BUILD_COMMAND");
|
||||
if ( ctestBuildCommand && *ctestBuildCommand )
|
||||
{
|
||||
m_CTest->SetDartConfiguration("MakeCommand", ctestBuildCommand);
|
||||
}
|
||||
else
|
||||
{
|
||||
const char* cmakeGeneratorName = m_Makefile->GetDefinition("CTEST_CMAKE_GENERATOR");
|
||||
const char* cmakeProjectName = m_Makefile->GetDefinition("CTEST_PROJECT_NAME");
|
||||
const char* cmakeBuildConfiguration = m_Makefile->GetDefinition("CTEST_BUILD_CONFIGURATION");
|
||||
if ( cmakeGeneratorName && *cmakeGeneratorName &&
|
||||
cmakeProjectName && *cmakeProjectName )
|
||||
{
|
||||
if ( !cmakeBuildConfiguration )
|
||||
{
|
||||
cmakeBuildConfiguration = "Release";
|
||||
}
|
||||
cmGlobalGenerator* gen =
|
||||
m_Makefile->GetCMakeInstance()->CreateGlobalGenerator(cmakeGeneratorName);
|
||||
gen->FindMakeProgram(m_Makefile);
|
||||
const char* cmakeMakeProgram = m_Makefile->GetDefinition("CMAKE_MAKE_PROGRAM");
|
||||
std::cout << "CMake Make program is: " << cmakeMakeProgram << std::endl;
|
||||
std::string buildCommand = gen->GenerateBuildCommand(cmakeMakeProgram, cmakeProjectName,
|
||||
0, cmakeBuildConfiguration, true);
|
||||
|
||||
m_CTest->SetDartConfiguration("MakeCommand", buildCommand.c_str());
|
||||
}
|
||||
else
|
||||
{
|
||||
cmOStringStream ostr;
|
||||
ostr << "CTEST_BUILD_COMMAND or CTEST_CMAKE_GENERATOR not specified. Please specify the CTEST_CMAKE_GENERATOR if this is a CMake project, or specify the CTEST_BUILD_COMMAND for cmake or any other project.";
|
||||
this->SetError(ostr.str().c_str());
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
int res = handler->ProcessHandler();
|
||||
cmOStringStream str;
|
||||
str << res;
|
||||
|
|
|
@ -202,6 +202,7 @@ int cmCTestScriptHandler::ReadInScript(const std::string& total_script_arg)
|
|||
delete m_LocalGenerator;
|
||||
}
|
||||
m_CMake = new cmake;
|
||||
m_CMake->AddCMakePaths(m_CTest->GetCTestExecutable());
|
||||
m_GlobalGenerator = new cmGlobalGenerator;
|
||||
m_GlobalGenerator->SetCMakeInstance(m_CMake);
|
||||
|
||||
|
|
Loading…
Reference in New Issue