ENH: Add support for multiple build targets and start adding simple cpack tests

This commit is contained in:
Andy Cedilnik 2006-02-28 08:23:40 -05:00
parent 456c823ec0
commit 36d7f3990a
4 changed files with 53 additions and 16 deletions

View File

@ -34,6 +34,9 @@ cmCTestBuildAndTestHandler::cmCTestBuildAndTestHandler()
//---------------------------------------------------------------------- //----------------------------------------------------------------------
void cmCTestBuildAndTestHandler::Initialize() 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(); this->Superclass::Initialize();
} }
@ -179,25 +182,41 @@ int cmCTestBuildAndTestHandler::RunCMakeAndTest(std::string* outstring)
} }
// do the build // do the build
std::string output; std::vector<std::string>::iterator tarIt;
retVal = cm.GetGlobalGenerator()->Build( #undef cout
m_SourceDir.c_str(), m_BinaryDir.c_str(), if ( m_BuildTargets.size() == 0 )
m_BuildProject.c_str(), m_BuildTarget.c_str(), {
&output, m_BuildMakeProgram.c_str(), m_BuildTargets.push_back("");
m_CTest->GetConfigType().c_str(),!m_BuildNoClean); }
std::cout << "Execute targets: " << std::endl;
out << output; 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) if(outstring)
{ {
*outstring = out.str(); *outstring = out.str();
} }
// if the build failed then return
if (retVal)
{
return 1;
}
// if not test was specified then we are done // if not test was specified then we are done
if (!m_TestCommand.size()) if (!m_TestCommand.size())
{ {
@ -390,7 +409,7 @@ int cmCTestBuildAndTestHandler::ProcessCommandLineArguments(
if(currentArg.find("--build-target",0) == 0 && idx < allArgs.size() - 1) if(currentArg.find("--build-target",0) == 0 && idx < allArgs.size() - 1)
{ {
idx++; idx++;
m_BuildTarget = allArgs[idx]; m_BuildTargets.push_back(allArgs[idx]);
} }
if(currentArg.find("--build-nocmake",0) == 0) if(currentArg.find("--build-nocmake",0) == 0)
{ {

View File

@ -73,7 +73,7 @@ protected:
std::string m_BuildRunDir; std::string m_BuildRunDir;
std::string m_ExecutableDirectory; std::string m_ExecutableDirectory;
std::vector<std::string> m_TestCommandArgs; std::vector<std::string> m_TestCommandArgs;
std::string m_BuildTarget; std::vector<std::string> m_BuildTargets;
bool m_BuildNoCMake; bool m_BuildNoCMake;
}; };

View File

@ -120,6 +120,14 @@ ELSE(CMAKE_CONFIGURATION_TYPES)
SET(SI_CONFIG) SET(SI_CONFIG)
ENDIF(CMAKE_CONFIGURATION_TYPES) 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( ADD_CUSTOM_COMMAND(
TARGET ${install_target} TARGET ${install_target}
POST_BUILD POST_BUILD
@ -133,5 +141,6 @@ ADD_CUSTOM_COMMAND(
--build-makeprogram ${CMAKE_MAKE_PROGRAM} --build-makeprogram ${CMAKE_MAKE_PROGRAM}
--build-noclean --build-noclean
--build-target install --build-target install
--build-target package
COMMENT "Install Project" COMMENT "Install Project"
) )

View File

@ -120,6 +120,14 @@ ELSE(CMAKE_CONFIGURATION_TYPES)
SET(SI_CONFIG) SET(SI_CONFIG)
ENDIF(CMAKE_CONFIGURATION_TYPES) 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( ADD_CUSTOM_COMMAND(
TARGET ${install_target} TARGET ${install_target}
POST_BUILD POST_BUILD
@ -133,5 +141,6 @@ ADD_CUSTOM_COMMAND(
--build-makeprogram ${CMAKE_MAKE_PROGRAM} --build-makeprogram ${CMAKE_MAKE_PROGRAM}
--build-noclean --build-noclean
--build-target install --build-target install
--build-target package
COMMENT "Install Project" COMMENT "Install Project"
) )