summaryrefslogtreecommitdiffstats
path: root/Source/cmLocalUnixMakefileGenerator3.h
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2007-08-07 17:57:13 (GMT)
committerBrad King <brad.king@kitware.com>2007-08-07 17:57:13 (GMT)
commitd9267920664fda123cc91894d78b06b43bdff44f (patch)
tree140e705964a74064e3e5a8e89e07cb25913a1a03 /Source/cmLocalUnixMakefileGenerator3.h
parent91384d7df408d988ba53f03636ed53d28b744e32 (diff)
downloadCMake-d9267920664fda123cc91894d78b06b43bdff44f.zip
CMake-d9267920664fda123cc91894d78b06b43bdff44f.tar.gz
CMake-d9267920664fda123cc91894d78b06b43bdff44f.tar.bz2
ENH: Replaced dependency integrity map with an explicit map from object file to source file for each language in each target. This simplifies creation of implicit dependency scanning rules and allows more than one object file in a target to start dependency scanning with the same source file.
Diffstat (limited to 'Source/cmLocalUnixMakefileGenerator3.h')
-rw-r--r--Source/cmLocalUnixMakefileGenerator3.h25
1 files changed, 14 insertions, 11 deletions
diff --git a/Source/cmLocalUnixMakefileGenerator3.h b/Source/cmLocalUnixMakefileGenerator3.h
index bc3f7d6..dfb3641 100644
--- a/Source/cmLocalUnixMakefileGenerator3.h
+++ b/Source/cmLocalUnixMakefileGenerator3.h
@@ -211,15 +211,18 @@ public:
std::string GetRelativeTargetDirectory(cmTarget& target);
- // List the files for which to check dependency integrity. Each
- // language has its own list because integrity may be checked
- // differently.
- struct IntegrityCheckSet: public std::set<cmSourceFile *> {};
- struct IntegrityCheckSetMap: public std::map<cmStdString, IntegrityCheckSet>
- {};
- std::map<cmStdString, IntegrityCheckSetMap> &GetIntegrityCheckSet()
- { return this->CheckDependFiles;}
-
+ // File pairs for implicit dependency scanning. The key of the map
+ // is the depender and the value is the explicit dependee.
+ struct ImplicitDependFileMap: public std::map<cmStdString, cmStdString> {};
+ struct ImplicitDependLanguageMap:
+ public std::map<cmStdString, ImplicitDependFileMap> {};
+ struct ImplicitDependTargetMap:
+ public std::map<cmStdString, ImplicitDependLanguageMap> {};
+ ImplicitDependLanguageMap const& GetImplicitDepends(cmTarget const& tgt);
+
+ void AddImplicitDepends(cmTarget const& tgt, const char* lang,
+ const char* obj, const char* src);
+
void AppendGlobalTargetDepends(std::vector<std::string>& depends,
cmTarget& target);
@@ -323,8 +326,8 @@ private:
friend class cmMakefileLibraryTargetGenerator;
friend class cmMakefileUtilityTargetGenerator;
friend class cmGlobalUnixMakefileGenerator3;
-
- std::map<cmStdString, IntegrityCheckSetMap> CheckDependFiles;
+
+ ImplicitDependTargetMap ImplicitDepends;
//==========================================================================
// Configuration settings.