summaryrefslogtreecommitdiffstats
path: root/Source/cmDependsFortran.cxx
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2014-07-22 16:50:37 (GMT)
committerBrad King <brad.king@kitware.com>2014-07-22 19:24:57 (GMT)
commit85cea8a7af77cd482f4d3c7ec15f68bc5adeb0ba (patch)
tree4495141e654dda4b21f542ddb3a3703f86710102 /Source/cmDependsFortran.cxx
parente7ee892b391992e0e8198917b8ef5cce76da2fd1 (diff)
downloadCMake-85cea8a7af77cd482f4d3c7ec15f68bc5adeb0ba.zip
CMake-85cea8a7af77cd482f4d3c7ec15f68bc5adeb0ba.tar.gz
CMake-85cea8a7af77cd482f4d3c7ec15f68bc5adeb0ba.tar.bz2
cmDepends: Refactor object file path conversion
Delay conversion of the path to object files (on the left-hand side of dependencies) until just before they are written. Also do not convert the format of paths written to the 'depend.internal' file. This is consistent with the way the right-hand side of dependencies are already handled.
Diffstat (limited to 'Source/cmDependsFortran.cxx')
-rw-r--r--Source/cmDependsFortran.cxx23
1 files changed, 14 insertions, 9 deletions
diff --git a/Source/cmDependsFortran.cxx b/Source/cmDependsFortran.cxx
index b1d55f3..8fc8347 100644
--- a/Source/cmDependsFortran.cxx
+++ b/Source/cmDependsFortran.cxx
@@ -443,12 +443,17 @@ cmDependsFortran
const char* src = info.Source.c_str();
// Write the include dependencies to the output stream.
- internalDepends << obj << std::endl;
+ std::string obj_i =
+ this->LocalGenerator->Convert(obj, cmLocalGenerator::HOME_OUTPUT);
+ std::string obj_m =
+ this->LocalGenerator->ConvertToOutputFormat(obj_i,
+ cmLocalGenerator::MAKERULE);
+ internalDepends << obj_i << std::endl;
internalDepends << " " << src << std::endl;
for(std::set<std::string>::const_iterator i = info.Includes.begin();
i != info.Includes.end(); ++i)
{
- makeDepends << obj << ": " <<
+ makeDepends << obj_m << ": " <<
this->LocalGenerator->Convert(*i,
cmLocalGenerator::HOME_OUTPUT,
cmLocalGenerator::MAKERULE)
@@ -485,7 +490,7 @@ cmDependsFortran
cmLocalGenerator::MAKERULE);
// since we require some things add them to our list of requirements
- makeDepends << obj << ".requires: " << proxy << std::endl;
+ makeDepends << obj_m << ".requires: " << proxy << std::endl;
}
// The object file should depend on timestamped files for the
@@ -500,7 +505,7 @@ cmDependsFortran
this->LocalGenerator->Convert(required->second,
cmLocalGenerator::HOME_OUTPUT,
cmLocalGenerator::MAKERULE);
- makeDepends << obj << ": " << stampFile << "\n";
+ makeDepends << obj_m << ": " << stampFile << "\n";
}
else
{
@@ -513,7 +518,7 @@ cmDependsFortran
this->LocalGenerator->Convert(module,
cmLocalGenerator::HOME_OUTPUT,
cmLocalGenerator::MAKERULE);
- makeDepends << obj << ": " << module << "\n";
+ makeDepends << obj_m << ": " << module << "\n";
}
}
}
@@ -529,7 +534,7 @@ cmDependsFortran
proxy = this->LocalGenerator->Convert(proxy,
cmLocalGenerator::HOME_OUTPUT,
cmLocalGenerator::MAKERULE);
- makeDepends << proxy << ": " << obj << ".provides" << std::endl;
+ makeDepends << proxy << ": " << obj_m << ".provides" << std::endl;
}
// If any modules are provided then they must be converted to stamp files.
@@ -537,7 +542,7 @@ cmDependsFortran
{
// Create a target to copy the module after the object file
// changes.
- makeDepends << obj << ".provides.build:\n";
+ makeDepends << obj_m << ".provides.build:\n";
for(std::set<std::string>::const_iterator i = info.Provides.begin();
i != info.Provides.end(); ++i)
{
@@ -575,7 +580,7 @@ cmDependsFortran
}
// After copying the modules update the timestamp file so that
// copying will not be done again until the source rebuilds.
- makeDepends << "\t$(CMAKE_COMMAND) -E touch " << obj
+ makeDepends << "\t$(CMAKE_COMMAND) -E touch " << obj_m
<< ".provides.build\n";
// Make sure the module timestamp rule is evaluated by the time
@@ -585,7 +590,7 @@ cmDependsFortran
driver = this->LocalGenerator->Convert(driver,
cmLocalGenerator::HOME_OUTPUT,
cmLocalGenerator::MAKERULE);
- makeDepends << driver << ": " << obj << ".provides.build\n";
+ makeDepends << driver << ": " << obj_m << ".provides.build\n";
}
return true;