ENH: Add support for multiple build targets and start adding simple cpack tests
This commit is contained in:
parent
456c823ec0
commit
36d7f3990a
|
@ -34,6 +34,9 @@ cmCTestBuildAndTestHandler::cmCTestBuildAndTestHandler()
|
|||
//----------------------------------------------------------------------
|
||||
void cmCTestBuildAndTestHandler::Initialize()
|
||||
{
|
||||
#undef cout
|
||||
std::cout << "Erase the list" << std::endl; std::cout.flush();
|
||||
m_BuildTargets.erase(m_BuildTargets.begin(), m_BuildTargets.end());
|
||||
this->Superclass::Initialize();
|
||||
}
|
||||
|
||||
|
@ -179,25 +182,41 @@ int cmCTestBuildAndTestHandler::RunCMakeAndTest(std::string* outstring)
|
|||
}
|
||||
|
||||
// do the build
|
||||
std::string output;
|
||||
retVal = cm.GetGlobalGenerator()->Build(
|
||||
m_SourceDir.c_str(), m_BinaryDir.c_str(),
|
||||
m_BuildProject.c_str(), m_BuildTarget.c_str(),
|
||||
&output, m_BuildMakeProgram.c_str(),
|
||||
m_CTest->GetConfigType().c_str(),!m_BuildNoClean);
|
||||
|
||||
out << output;
|
||||
std::vector<std::string>::iterator tarIt;
|
||||
#undef cout
|
||||
if ( m_BuildTargets.size() == 0 )
|
||||
{
|
||||
m_BuildTargets.push_back("");
|
||||
}
|
||||
std::cout << "Execute targets: " << std::endl;
|
||||
for ( tarIt = m_BuildTargets.begin(); tarIt != m_BuildTargets.end();
|
||||
++ tarIt )
|
||||
{
|
||||
std::cout << "Execute targets: " << tarIt->c_str() << std::endl;
|
||||
std::cout.flush();
|
||||
std::string output;
|
||||
retVal = cm.GetGlobalGenerator()->Build(
|
||||
m_SourceDir.c_str(), m_BinaryDir.c_str(),
|
||||
m_BuildProject.c_str(), tarIt->c_str(),
|
||||
&output, m_BuildMakeProgram.c_str(),
|
||||
m_CTest->GetConfigType().c_str(),!m_BuildNoClean);
|
||||
|
||||
out << output;
|
||||
// if the build failed then return
|
||||
if (retVal)
|
||||
{
|
||||
if(outstring)
|
||||
{
|
||||
*outstring = out.str();
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
if(outstring)
|
||||
{
|
||||
*outstring = out.str();
|
||||
}
|
||||
|
||||
// if the build failed then return
|
||||
if (retVal)
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
|
||||
// if not test was specified then we are done
|
||||
if (!m_TestCommand.size())
|
||||
{
|
||||
|
@ -390,7 +409,7 @@ int cmCTestBuildAndTestHandler::ProcessCommandLineArguments(
|
|||
if(currentArg.find("--build-target",0) == 0 && idx < allArgs.size() - 1)
|
||||
{
|
||||
idx++;
|
||||
m_BuildTarget = allArgs[idx];
|
||||
m_BuildTargets.push_back(allArgs[idx]);
|
||||
}
|
||||
if(currentArg.find("--build-nocmake",0) == 0)
|
||||
{
|
||||
|
|
|
@ -73,7 +73,7 @@ protected:
|
|||
std::string m_BuildRunDir;
|
||||
std::string m_ExecutableDirectory;
|
||||
std::vector<std::string> m_TestCommandArgs;
|
||||
std::string m_BuildTarget;
|
||||
std::vector<std::string> m_BuildTargets;
|
||||
bool m_BuildNoCMake;
|
||||
};
|
||||
|
||||
|
|
|
@ -120,6 +120,14 @@ ELSE(CMAKE_CONFIGURATION_TYPES)
|
|||
SET(SI_CONFIG)
|
||||
ENDIF(CMAKE_CONFIGURATION_TYPES)
|
||||
|
||||
# Dummy test of CPack
|
||||
SET(CPACK_PACKAGE_DESCRIPTION_SUMMARY "Test of packaging with cpack")
|
||||
SET(CPACK_PACKAGE_VENDOR "Kitware")
|
||||
SET(CPACK_PACKAGE_DESCRIPTION_FILE "${CMAKE_CURRENT_SOURCE_DIR}/foo.h")
|
||||
|
||||
SET(CPACK_PACKAGE_EXECUTABLES "SimpleInstall" "Simple Install")
|
||||
INCLUDE(CPack)
|
||||
|
||||
ADD_CUSTOM_COMMAND(
|
||||
TARGET ${install_target}
|
||||
POST_BUILD
|
||||
|
@ -133,5 +141,6 @@ ADD_CUSTOM_COMMAND(
|
|||
--build-makeprogram ${CMAKE_MAKE_PROGRAM}
|
||||
--build-noclean
|
||||
--build-target install
|
||||
--build-target package
|
||||
COMMENT "Install Project"
|
||||
)
|
||||
|
|
|
@ -120,6 +120,14 @@ ELSE(CMAKE_CONFIGURATION_TYPES)
|
|||
SET(SI_CONFIG)
|
||||
ENDIF(CMAKE_CONFIGURATION_TYPES)
|
||||
|
||||
# Dummy test of CPack
|
||||
SET(CPACK_PACKAGE_DESCRIPTION_SUMMARY "Test of packaging with cpack")
|
||||
SET(CPACK_PACKAGE_VENDOR "Kitware")
|
||||
SET(CPACK_PACKAGE_DESCRIPTION_FILE "${CMAKE_CURRENT_SOURCE_DIR}/foo.h")
|
||||
|
||||
SET(CPACK_PACKAGE_EXECUTABLES "SimpleInstall" "Simple Install")
|
||||
INCLUDE(CPack)
|
||||
|
||||
ADD_CUSTOM_COMMAND(
|
||||
TARGET ${install_target}
|
||||
POST_BUILD
|
||||
|
@ -133,5 +141,6 @@ ADD_CUSTOM_COMMAND(
|
|||
--build-makeprogram ${CMAKE_MAKE_PROGRAM}
|
||||
--build-noclean
|
||||
--build-target install
|
||||
--build-target package
|
||||
COMMENT "Install Project"
|
||||
)
|
||||
|
|
Loading…
Reference in New Issue