diff options
author | Andy Cedilnik <andy.cedilnik@kitware.com> | 2006-10-30 20:59:54 (GMT) |
---|---|---|
committer | Andy Cedilnik <andy.cedilnik@kitware.com> | 2006-10-30 20:59:54 (GMT) |
commit | 7ded253013b60f7c36b65e0346c658b88f6cffd3 (patch) | |
tree | d650b5e0cc64a66ad872430d9550cd5e267d51c5 /Source/cmGlobalGenerator.cxx | |
parent | b2240ef6afae619545758ec4184c19c8fd0a2ae9 (diff) | |
download | CMake-7ded253013b60f7c36b65e0346c658b88f6cffd3.zip CMake-7ded253013b60f7c36b65e0346c658b88f6cffd3.tar.gz CMake-7ded253013b60f7c36b65e0346c658b88f6cffd3.tar.bz2 |
ENH: Add support for displaying the list of components
Diffstat (limited to 'Source/cmGlobalGenerator.cxx')
-rw-r--r-- | Source/cmGlobalGenerator.cxx | 41 |
1 files changed, 38 insertions, 3 deletions
diff --git a/Source/cmGlobalGenerator.cxx b/Source/cmGlobalGenerator.cxx index 49000b4..40da2f61 100644 --- a/Source/cmGlobalGenerator.cxx +++ b/Source/cmGlobalGenerator.cxx @@ -1395,12 +1395,16 @@ void cmGlobalGenerator::CreateDefaultGlobalTargets(cmTargets* targets) singleLine.erase(singleLine.begin(), singleLine.end()); depends.erase(depends.begin(), depends.end()); singleLine.push_back(this->GetCMakeInstance()->GetCTestCommand()); + singleLine.push_back("--force-new-ctest-process"); if(cmakeCfgIntDir && *cmakeCfgIntDir && cmakeCfgIntDir[0] != '.') { singleLine.push_back("-C"); singleLine.push_back(mf->GetDefinition("CMAKE_CFG_INTDIR")); } - singleLine.push_back("--force-new-ctest-process"); + else // TODO: This is a hack. Should be something to do with the generator + { + singleLine.push_back("$(ARGS)"); + } cpackCommandLines.push_back(singleLine); (*targets)[this->GetTestTargetName()] = this->CreateGlobalTarget(this->GetTestTargetName(), @@ -1464,9 +1468,40 @@ void cmGlobalGenerator::CreateDefaultGlobalTargets(cmTargets* targets) //Install if(this->InstallTargetEnabled) { + if(!cmakeCfgIntDir || !*cmakeCfgIntDir || cmakeCfgIntDir[0] == '.') + { + std::set<cmStdString>* componentsSet + = this->GetCMakeInstance()->GetInstallComponents(); + cpackCommandLines.erase(cpackCommandLines.begin(), + cpackCommandLines.end()); + depends.erase(depends.begin(), depends.end()); + cmOStringStream ostr; + if ( componentsSet->size() > 0 ) + { + ostr << "Available install components are:"; + std::set<cmStdString>::iterator it; + for ( + it = componentsSet->begin(); + it != componentsSet->end(); + ++ it ) + { + ostr << " \"" << it->c_str() << "\""; + } + } + else + { + ostr << "Only default component available"; + } + singleLine.push_back(ostr.str().c_str()); + //cpackCommandLines.push_back(singleLine); + (*targets)["list_install_components"] + = this->CreateGlobalTarget("list_install_components", + ostr.str().c_str(), + &cpackCommandLines, depends); + } std::string cmd; cpackCommandLines.erase(cpackCommandLines.begin(), - cpackCommandLines.end()); + cpackCommandLines.end()); singleLine.erase(singleLine.begin(), singleLine.end()); depends.erase(depends.begin(), depends.end()); if ( this->GetPreinstallTargetName() ) @@ -1518,7 +1553,7 @@ void cmGlobalGenerator::CreateDefaultGlobalTargets(cmTargets* targets) { singleLine.insert(singleLine.begin()+1, "-DCMAKE_INSTALL_LOCAL_ONLY=1"); cpackCommandLines.erase(cpackCommandLines.begin(), - cpackCommandLines.end()); + cpackCommandLines.end()); cpackCommandLines.push_back(singleLine); (*targets)[install_local] = |