|
|
@@ -150,7 +150,9 @@ bool cmDependsFortran::Finalize(std::ostream& makeDepends,
|
|
|
std::ostream& internalDepends)
|
|
|
{
|
|
|
// Prepare the module search process.
|
|
|
- this->LocateModules();
|
|
|
+ if (!this->LocateModules()) {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
|
|
|
// Get the directory in which stamp files will be stored.
|
|
|
const std::string& stamp_dir = this->TargetDirectory;
|
|
|
@@ -216,7 +218,7 @@ bool cmDependsFortran::Finalize(std::ostream& makeDepends,
|
|
|
return true;
|
|
|
}
|
|
|
|
|
|
-void cmDependsFortran::LocateModules()
|
|
|
+bool cmDependsFortran::LocateModules()
|
|
|
{
|
|
|
// Collect the set of modules provided and required by all sources.
|
|
|
using ObjectInfoMap = cmDependsFortranInternals::ObjectInfoMap;
|
|
|
@@ -234,7 +236,7 @@ void cmDependsFortran::LocateModules()
|
|
|
|
|
|
// Short-circuit for simple targets.
|
|
|
if (this->Internal->TargetRequires.empty()) {
|
|
|
- return;
|
|
|
+ return true;
|
|
|
}
|
|
|
|
|
|
// Match modules provided by this target to those it requires.
|
|
|
@@ -248,10 +250,14 @@ void cmDependsFortran::LocateModules()
|
|
|
std::string targetDir = cmSystemTools::GetFilenamePath(i);
|
|
|
std::string fname = targetDir + "/fortran.internal";
|
|
|
cmsys::ifstream fin(fname.c_str());
|
|
|
- if (fin) {
|
|
|
- this->MatchRemoteModules(fin, targetDir);
|
|
|
+ if (!fin) {
|
|
|
+ cmSystemTools::Error(cmStrCat("-E cmake_depends failed to open ", fname,
|
|
|
+ " for module information"));
|
|
|
+ return false;
|
|
|
}
|
|
|
+ this->MatchRemoteModules(fin, targetDir);
|
|
|
}
|
|
|
+ return true;
|
|
|
}
|
|
|
|
|
|
void cmDependsFortran::MatchLocalModules()
|