diff options
author | Brad King <brad.king@kitware.com> | 2012-03-07 16:50:41 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2012-03-09 20:16:02 (GMT) |
commit | 4b245580913e02ba577d6eb7825866300d364b53 (patch) | |
tree | a2b47ef4b515cd77fa20bc981ccf1f973918a066 /Source/cmGlobalGenerator.h | |
parent | 11d9b211266865f0ce4a1005bbb18748c0806bce (diff) | |
download | CMake-4b245580913e02ba577d6eb7825866300d364b53.zip CMake-4b245580913e02ba577d6eb7825866300d364b53.tar.gz CMake-4b245580913e02ba577d6eb7825866300d364b53.tar.bz2 |
Create a cmGeneratorTarget for each cmTarget during generation
Construct the instances after the final set of targets is known but
before computing inter-target dependencies. This order will allow
initialization of cmGeneratorTarget instances to adjust and finalize
declared inter-target dependencies.
Diffstat (limited to 'Source/cmGlobalGenerator.h')
-rw-r--r-- | Source/cmGlobalGenerator.h | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/Source/cmGlobalGenerator.h b/Source/cmGlobalGenerator.h index 1a0e41a..b94cc6c 100644 --- a/Source/cmGlobalGenerator.h +++ b/Source/cmGlobalGenerator.h @@ -19,6 +19,7 @@ #include "cmTargetDepend.h" // For cmTargetDependSet #include "cmSystemTools.h" // for cmSystemTools::OutputOption class cmake; +class cmGeneratorTarget; class cmMakefile; class cmLocalGenerator; class cmExternalMakefileProjectGenerator; @@ -251,6 +252,9 @@ public: // via a target_link_libraries or add_dependencies TargetDependSet const& GetTargetDirectDepends(cmTarget & target); + /** Get per-target generator information. */ + cmGeneratorTarget* GetGeneratorTarget(cmTarget*) const; + const std::map<cmStdString, std::vector<cmLocalGenerator*> >& GetProjectMap() const {return this->ProjectMap;} @@ -370,6 +374,12 @@ private: typedef std::map<cmTarget *, TargetDependSet> TargetDependMap; TargetDependMap TargetDependencies; + // Per-target generator information. + typedef std::map<cmTarget*, cmGeneratorTarget*> GeneratorTargetsType; + GeneratorTargetsType GeneratorTargets; + void CreateGeneratorTargets(); + void ClearGeneratorTargets(); + // Cache directory content and target files to be built. struct DirectoryContent: public std::set<cmStdString> { |