ENH: Add per-language clean rule generation to cmake_clean.cmake files to include cmake_clean_<lang>.cmake files generated by dependency scanning. Add Fortran module file and timestamp cleaning rules.
This commit is contained in:
parent
68dad94b00
commit
81f6e86f12
|
@ -219,6 +219,27 @@ bool cmDependsFortran::Finalize(std::ostream& makeDepends,
|
|||
{
|
||||
fiStream << " " << *i << "\n";
|
||||
}
|
||||
|
||||
// Create a script to clean the modules.
|
||||
if(!provides.empty())
|
||||
{
|
||||
std::string fcName = this->TargetDirectory;
|
||||
fcName += "/cmake_clean_Fortran.cmake";
|
||||
cmGeneratedFileStream fcStream(fcName.c_str());
|
||||
fcStream << "# Remove fortran modules provided by this target.\n";
|
||||
fcStream << "FILE(REMOVE\n";
|
||||
for(std::set<cmStdString>::const_iterator i = provides.begin();
|
||||
i != provides.end(); ++i)
|
||||
{
|
||||
std::string mod_upper = cmSystemTools::UpperCase(*i);
|
||||
std::string mod_lower = *i;
|
||||
fcStream << " \"" << mod_lower << ".mod\""
|
||||
<< " \"" << mod_lower << ".mod.stamp\""
|
||||
<< " \"" << mod_upper << ".mod\""
|
||||
<< " \"" << mod_upper << ".mod.stamp\"\n";
|
||||
}
|
||||
fcStream << " )\n";
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
|
@ -1048,6 +1048,26 @@ cmLocalUnixMakefileGenerator3
|
|||
}
|
||||
fout << ")\n";
|
||||
commands.push_back(remove);
|
||||
|
||||
// For the main clean rule add per-language cleaning.
|
||||
if(!filename)
|
||||
{
|
||||
// Get the set of source languages in the target.
|
||||
std::set<cmStdString> languages;
|
||||
target.GetLanguages(languages);
|
||||
fout << "\n"
|
||||
<< "# Per-language clean rules from dependency scanning.\n"
|
||||
<< "FOREACH(lang";
|
||||
for(std::set<cmStdString>::const_iterator l = languages.begin();
|
||||
l != languages.end(); ++l)
|
||||
{
|
||||
fout << " " << *l;
|
||||
}
|
||||
fout << ")\n"
|
||||
<< " INCLUDE(" << this->GetTargetDirectory(target)
|
||||
<< "/cmake_clean_${lang}.cmake OPTIONAL)\n"
|
||||
<< "ENDFOREACH(lang)\n";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue