Record set of targets used in cmGeneratorExpression

This commit is contained in:
Brad King 2010-12-08 13:34:05 -05:00
parent ef9e9de0b8
commit 4749e4cb76
2 changed files with 7 additions and 0 deletions

View File

@ -141,6 +141,7 @@ bool cmGeneratorExpression::EvaluateTargetInfo(std::string& result)
result = "Target \"" + name + "\" is not an executable or library.";
return false;
}
this->Targets.insert(target);
// Lookup the target file with the given purpose.
std::string purpose = this->TargetInfo.match(1);

View File

@ -15,6 +15,7 @@
#include <cmsys/RegularExpression.hxx>
class cmTarget;
class cmMakefile;
class cmListFileBacktrace;
@ -38,6 +39,10 @@ public:
/** Evaluate generator expressions in a string. */
const char* Process(std::string const& input);
const char* Process(const char* input);
/** Get set of targets found during evaluations. */
std::set<cmTarget*> const& GetTargets() const
{ return this->Targets; }
private:
cmMakefile* Makefile;
const char* Config;
@ -46,6 +51,7 @@ private:
std::vector<char> Data;
std::stack<size_t> Barriers;
cmsys::RegularExpression TargetInfo;
std::set<cmTarget*> Targets;
bool Evaluate();
bool Evaluate(const char* expr, std::string& result);
bool EvaluateTargetInfo(std::string& result);