summaryrefslogtreecommitdiffstats
path: root/Source/cmMakefileTargetGenerator.cxx
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/cmMakefileTargetGenerator.cxx
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/cmMakefileTargetGenerator.cxx')
-rw-r--r--Source/cmMakefileTargetGenerator.cxx12
1 files changed, 11 insertions, 1 deletions
diff --git a/Source/cmMakefileTargetGenerator.cxx b/Source/cmMakefileTargetGenerator.cxx
index 2eedfbb..2417b4a 100644
--- a/Source/cmMakefileTargetGenerator.cxx
+++ b/Source/cmMakefileTargetGenerator.cxx
@@ -341,8 +341,18 @@ void cmMakefileTargetGenerator::WriteObjectRuleFiles(cmSourceFile& source)
this->WriteObjectBuildFile(obj, lang, source, depends);
// The object file should be checked for dependency integrity.
+ std::string objFullPath = this->Makefile->GetCurrentOutputDirectory();
+ objFullPath += "/";
+ objFullPath += obj;
+ objFullPath =
+ this->Convert(objFullPath.c_str(), cmLocalGenerator::FULL);
+ std::string srcFullPath =
+ this->Convert(source.GetFullPath().c_str(), cmLocalGenerator::FULL);
this->LocalGenerator->
- CheckDependFiles[this->Target->GetName()][lang].insert(&source);
+ AddImplicitDepends(*this->Target, lang,
+ objFullPath.c_str(),
+ srcFullPath.c_str());
+
// add this to the list of objects for this local generator
if(cmSystemTools::FileIsFullPath(objNoTargetDir.c_str()))
{