ENH: Pass target directory to cmDependsFortran scanning instances.
This commit is contained in:
parent
9ccba7c391
commit
891256546b
@ -90,8 +90,9 @@ cmDependsFortran::cmDependsFortran():
|
|||||||
}
|
}
|
||||||
|
|
||||||
//----------------------------------------------------------------------------
|
//----------------------------------------------------------------------------
|
||||||
cmDependsFortran::cmDependsFortran(std::vector<std::string> const& includes):
|
cmDependsFortran::cmDependsFortran(std::vector<std::string> const& includes,
|
||||||
IncludePath(&includes)
|
std::string const& targetDirectory):
|
||||||
|
IncludePath(&includes), TargetDirectory(targetDirectory)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -267,8 +268,12 @@ bool cmDependsFortran::WriteDependencies(const char *src, const char *obj,
|
|||||||
|
|
||||||
// Make sure the module timestamp rule is evaluated by the time
|
// Make sure the module timestamp rule is evaluated by the time
|
||||||
// the target finishes building.
|
// the target finishes building.
|
||||||
makeDepends << cmSystemTools::GetFilenamePath(obj) << "/build: "
|
std::string driver = this->TargetDirectory;
|
||||||
<< obj << ".provides.build\n";
|
driver += "/build";
|
||||||
|
driver = this->LocalGenerator->Convert(driver.c_str(),
|
||||||
|
cmLocalGenerator::HOME_OUTPUT,
|
||||||
|
cmLocalGenerator::MAKEFILE);
|
||||||
|
makeDepends << driver << ": " << obj << ".provides.build\n";
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -31,9 +31,10 @@ public:
|
|||||||
|
|
||||||
/** Scanning need to know the build directory name, the relative
|
/** Scanning need to know the build directory name, the relative
|
||||||
path from the build directory to the target file, the source
|
path from the build directory to the target file, the source
|
||||||
file from which to start scanning, and the include file search
|
file from which to start scanning, the include file search
|
||||||
path. */
|
path, and the target directory. */
|
||||||
cmDependsFortran(std::vector<std::string> const& includes);
|
cmDependsFortran(std::vector<std::string> const& includes,
|
||||||
|
std::string const& targetDirectory);
|
||||||
|
|
||||||
/** Virtual destructor to cleanup subclasses properly. */
|
/** Virtual destructor to cleanup subclasses properly. */
|
||||||
virtual ~cmDependsFortran();
|
virtual ~cmDependsFortran();
|
||||||
@ -61,6 +62,9 @@ protected:
|
|||||||
// The include file search path.
|
// The include file search path.
|
||||||
std::vector<std::string> const* IncludePath;
|
std::vector<std::string> const* IncludePath;
|
||||||
|
|
||||||
|
// The full path to the target's build directory.
|
||||||
|
std::string TargetDirectory;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
cmDependsFortran(cmDependsFortran const&); // Purposely not implemented.
|
cmDependsFortran(cmDependsFortran const&); // Purposely not implemented.
|
||||||
void operator=(cmDependsFortran const&); // Purposely not implemented.
|
void operator=(cmDependsFortran const&); // Purposely not implemented.
|
||||||
|
@ -1367,7 +1367,7 @@ bool cmLocalUnixMakefileGenerator3::ScanDependencies(const char* tgtInfo)
|
|||||||
#ifdef CMAKE_BUILD_WITH_CMAKE
|
#ifdef CMAKE_BUILD_WITH_CMAKE
|
||||||
else if(lang == "Fortran")
|
else if(lang == "Fortran")
|
||||||
{
|
{
|
||||||
scanner = new cmDependsFortran(includes);
|
scanner = new cmDependsFortran(includes, dir);
|
||||||
}
|
}
|
||||||
else if(lang == "Java")
|
else if(lang == "Java")
|
||||||
{
|
{
|
||||||
|
Loading…
x
Reference in New Issue
Block a user