Makefiles: Position target-wide link flags consistently with other generators

In particular, the `LINK_OPTIONS` target property was not placed
on link lines consistently with other generators.

Fixes: #27326
This commit is contained in:
Marc Chevrier
2025-10-25 16:25:37 +02:00
committed by Brad King
parent 50ea94ad97
commit 8fa4a4bf67
10 changed files with 62 additions and 4 deletions

View File

@@ -176,7 +176,6 @@ void cmMakefileLibraryTargetGenerator::WriteSharedLibraryRules(bool relink)
}
std::string extraFlags;
this->GetTargetLinkFlags(extraFlags, linkLanguage);
this->LocalGenerator->AppendTargetCreationLinkFlags(
extraFlags, this->GeneratorTarget, linkLanguage);
this->LocalGenerator->AddConfigVariableFlags(
@@ -195,6 +194,8 @@ void cmMakefileLibraryTargetGenerator::WriteSharedLibraryRules(bool relink)
this->UseLWYU = this->LocalGenerator->AppendLWYUFlags(
extraFlags, this->GeneratorTarget, linkLanguage);
this->GetTargetLinkFlags(extraFlags, linkLanguage);
this->WriteLibraryRules(linkRuleVar, extraFlags, relink);
}
@@ -214,7 +215,6 @@ void cmMakefileLibraryTargetGenerator::WriteModuleLibraryRules(bool relink)
cmStrCat("CMAKE_", linkLanguage, "_CREATE_SHARED_MODULE");
std::string extraFlags;
this->GetTargetLinkFlags(extraFlags, linkLanguage);
this->LocalGenerator->AppendTargetCreationLinkFlags(
extraFlags, this->GeneratorTarget, linkLanguage);
this->LocalGenerator->AddConfigVariableFlags(
@@ -233,6 +233,8 @@ void cmMakefileLibraryTargetGenerator::WriteModuleLibraryRules(bool relink)
this->UseLWYU = this->LocalGenerator->AppendLWYUFlags(
extraFlags, this->GeneratorTarget, linkLanguage);
this->GetTargetLinkFlags(extraFlags, linkLanguage);
this->WriteLibraryRules(linkRuleVar, extraFlags, relink);
}
@@ -244,12 +246,12 @@ void cmMakefileLibraryTargetGenerator::WriteFrameworkRules(bool relink)
cmStrCat("CMAKE_", linkLanguage, "_CREATE_MACOSX_FRAMEWORK");
std::string extraFlags;
this->GetTargetLinkFlags(extraFlags, linkLanguage);
this->LocalGenerator->AppendTargetCreationLinkFlags(
extraFlags, this->GeneratorTarget, linkLanguage);
this->LocalGenerator->AddConfigVariableFlags(
extraFlags, "CMAKE_MACOSX_FRAMEWORK_LINKER_FLAGS", this->GeneratorTarget,
cmBuildStep::Link, linkLanguage, this->GetConfigName());
this->GetTargetLinkFlags(extraFlags, linkLanguage);
this->WriteLibraryRules(linkRuleVar, extraFlags, relink);
}