From f8729ab3667c695a734df0164cca692393bb6810 Mon Sep 17 00:00:00 2001 From: Ben Boeckel Date: Fri, 17 Nov 2023 22:51:47 -0500 Subject: cmLocalUnixMakefileGenerator3: handle object-referencing Fortran modules Targets only using Fortran modules via `$` also need a collation step to be performed. Check for this case and trigger the depends rule to be used. --- Source/cmLocalUnixMakefileGenerator3.cxx | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/Source/cmLocalUnixMakefileGenerator3.cxx b/Source/cmLocalUnixMakefileGenerator3.cxx index e26a6ea..7bce1d2 100644 --- a/Source/cmLocalUnixMakefileGenerator3.cxx +++ b/Source/cmLocalUnixMakefileGenerator3.cxx @@ -1899,6 +1899,11 @@ void cmLocalUnixMakefileGenerator3::WriteDependLanguageInfo( : "OFF") << ")\n\n"; + bool requireFortran = false; + if (target->HaveFortranSources(this->GetConfigName())) { + requireFortran = true; + } + auto const& implicitLangs = this->GetImplicitDepends(target, cmDependencyScannerKind::CMake); @@ -1908,6 +1913,12 @@ void cmLocalUnixMakefileGenerator3::WriteDependLanguageInfo( cmakefileStream << "set(CMAKE_DEPENDS_LANGUAGES\n"; for (auto const& implicitLang : implicitLangs) { cmakefileStream << " \"" << implicitLang.first << "\"\n"; + if (requireFortran && implicitLang.first == "Fortran"_s) { + requireFortran = false; + } + } + if (requireFortran) { + cmakefileStream << " \"Fortran\"\n"; } cmakefileStream << " )\n"; -- cgit v0.12