Merge topic 'vs-fortran-ipo' into release-3.31

a36df0220f VS: Honor INTERPROCEDURAL_OPTIMIZATION for Fortran targets

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !9899
This commit is contained in:
Brad King 2024-10-15 14:30:52 +00:00 committed by Kitware Robot
commit 093a9dac38

View File

@ -305,6 +305,8 @@ cmVS7FlagTable cmLocalVisualStudio7GeneratorFortranFlagTable[] = {
{ "Optimization", "O1", "min space", "optimizeMinSpace", 0 },
{ "Optimization", "O3", "full optimize", "optimizeFull", 0 },
{ "GlobalOptimizations", "Og", "global optimize", "true", 0 },
{ "InterproceduralOptimizations", "Qipo",
"Interprocedural optimization across multiple files", "ipoMultiFile", 0 },
{ "InlineFunctionExpansion", "Ob0", "", "expandDisable", 0 },
{ "InlineFunctionExpansion", "Ob1", "", "expandOnlyInline", 0 },
{ "FavorSizeOrSpeed", "Os", "", "favorSize", 0 },
@ -690,7 +692,13 @@ void cmLocalVisualStudio7Generator::WriteConfiguration(
this->AddCompileOptions(flags, target, langForClCompile, configName);
// Check IPO related warning/error.
target->IsIPOEnabled(linkLanguage, configName);
if (target->IsIPOEnabled(linkLanguage, configName)) {
if (this->FortranProject) {
this->AppendCompileOptions(flags,
this->Makefile->GetSafeDefinition(
"CMAKE_Fortran_COMPILE_OPTIONS_IPO"));
}
}
}
if (this->FortranProject) {