diff options
author | Brad King <brad.king@kitware.com> | 2009-03-09 16:19:27 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2009-03-09 16:19:27 (GMT) |
commit | a86e81c3589d64a2a777b1b90490cb80b951d983 (patch) | |
tree | d704564ea129aa9b121bb1cd7c99b184700099d4 /Source/cmGlobalGenerator.cxx | |
parent | b9323d2dd6fd96505cca5132529e0e6b854bdf10 (diff) | |
download | CMake-a86e81c3589d64a2a777b1b90490cb80b951d983.zip CMake-a86e81c3589d64a2a777b1b90490cb80b951d983.tar.gz CMake-a86e81c3589d64a2a777b1b90490cb80b951d983.tar.bz2 |
ENH: Generate a central list of target directories
This generalizes the previous CMakeFiles/LabelFiles.txt created at the
top of the build tree to a CMakeFiles/TargetDirectories.txt file. It
lists the target support directories for all targets in the project.
Labels can still be loaded by looking for Labels.txt files in each
target directory.
Diffstat (limited to 'Source/cmGlobalGenerator.cxx')
-rw-r--r-- | Source/cmGlobalGenerator.cxx | 36 |
1 files changed, 11 insertions, 25 deletions
diff --git a/Source/cmGlobalGenerator.cxx b/Source/cmGlobalGenerator.cxx index 23bb1a2..8a184e0 100644 --- a/Source/cmGlobalGenerator.cxx +++ b/Source/cmGlobalGenerator.cxx @@ -901,7 +901,7 @@ void cmGlobalGenerator::Generate() // Update rule hashes. this->CheckRuleHashes(); - this->WriteTargetLabels(); + this->WriteSummary(); if (this->ExtraGenerator != 0) { @@ -2137,44 +2137,32 @@ void cmGlobalGenerator::CheckRuleHashes() } //---------------------------------------------------------------------------- -void cmGlobalGenerator::WriteTargetLabels() +void cmGlobalGenerator::WriteSummary() { cmMakefile* mf = this->LocalGenerators[0]->GetMakefile(); - // Record generated per-target label files in a central location. + // Record all target directories in a central location. std::string fname = mf->GetHomeOutputDirectory(); fname += cmake::GetCMakeFilesDirectory(); - fname += "/LabelFiles.txt"; - bool opened = false; - cmGeneratedFileStream fout; + fname += "/TargetDirectories.txt"; + cmGeneratedFileStream fout(fname.c_str()); - // Generate a label file for each target. - std::string file; + // Generate summary information files for each target. + std::string dir; for(std::map<cmStdString,cmTarget *>::const_iterator ti = this->TotalTargets.begin(); ti != this->TotalTargets.end(); ++ti) { - if(this->WriteTargetLabels(ti->second, file)) - { - if(!opened) - { - fout.Open(fname.c_str()); - opened = true; - } - fout << file << "\n"; - } - } - if(!opened) - { - cmSystemTools::RemoveFile(fname.c_str()); + this->WriteSummary(ti->second); + fout << ti->second->GetSupportDirectory() << "\n"; } } //---------------------------------------------------------------------------- -bool cmGlobalGenerator::WriteTargetLabels(cmTarget* target, std::string& file) +void cmGlobalGenerator::WriteSummary(cmTarget* target) { // Place the labels file in a per-target support directory. std::string dir = target->GetSupportDirectory(); - file = dir; + std::string file = dir; file += "/Labels.txt"; // Check whether labels are enabled for this target. @@ -2216,11 +2204,9 @@ bool cmGlobalGenerator::WriteTargetLabels(cmTarget* target, std::string& file) } } } - return true; } else { cmSystemTools::RemoveFile(file.c_str()); - return false; } } |