summaryrefslogtreecommitdiff
path: root/Source
diff options
context:
space:
mode:
authorAlan W. Irwin <airwin@users.sourceforge.net>2019-08-24 12:44:36 -0700
committerBrad King <brad.king@kitware.com>2019-08-27 13:49:54 -0400
commit79b282425185b70426716f23feb06e7e9e6ed752 (patch)
tree5e63d8a649d770a80dbc103daeca59f83fbb3664 /Source
parent843ab7544e319597306a6d9cea4ab8be3296e6c4 (diff)
downloadcmake-79b282425185b70426716f23feb06e7e9e6ed752.tar.gz
Add per-lang variants of CMAKE_LINK_LIBRARY_{FILE_FLAG,SUFFIX}
Extend the change from commit 689be6235e (Generator: support per-language link library flag, 2019-08-08) to cover more link library command-line flag components. Allow compilers for different languages to use different values for these linking-related variables within the same build. Closes: #19631
Diffstat (limited to 'Source')
-rw-r--r--Source/cmComputeLinkInformation.cxx18
1 files changed, 14 insertions, 4 deletions
diff --git a/Source/cmComputeLinkInformation.cxx b/Source/cmComputeLinkInformation.cxx
index 880d5c0d95..dd8d2465fb 100644
--- a/Source/cmComputeLinkInformation.cxx
+++ b/Source/cmComputeLinkInformation.cxx
@@ -292,10 +292,20 @@ cmComputeLinkInformation::cmComputeLinkInformation(
this->LibLinkFlag =
this->Makefile->GetSafeDefinition("CMAKE_LINK_LIBRARY_FLAG");
}
- this->LibLinkFileFlag =
- this->Makefile->GetSafeDefinition("CMAKE_LINK_LIBRARY_FILE_FLAG");
- this->LibLinkSuffix =
- this->Makefile->GetSafeDefinition("CMAKE_LINK_LIBRARY_SUFFIX");
+ if (const char* flag = this->Makefile->GetDefinition(
+ "CMAKE_" + this->LinkLanguage + "_LINK_LIBRARY_FILE_FLAG")) {
+ this->LibLinkFileFlag = flag;
+ } else {
+ this->LibLinkFileFlag =
+ this->Makefile->GetSafeDefinition("CMAKE_LINK_LIBRARY_FILE_FLAG");
+ }
+ if (const char* suffix = this->Makefile->GetDefinition(
+ "CMAKE_" + this->LinkLanguage + "_LINK_LIBRARY_SUFFIX")) {
+ this->LibLinkSuffix = suffix;
+ } else {
+ this->LibLinkSuffix =
+ this->Makefile->GetSafeDefinition("CMAKE_LINK_LIBRARY_SUFFIX");
+ }
// Get options needed to specify RPATHs.
this->RuntimeUseChrpath = false;