Initialize LINK_INTERFACE_LIBRARIES target property with a variable
Define variable CMAKE_LINK_INTERFACE_LIBRARIES to initialize the value of this property when a target is created. This allows authors to write set(CMAKE_LINK_INTERFACE_LIBRARIES "") to disable transitive linking to implementation dependencies of shared libraries on platforms where it is possible.
This commit is contained in:
parent
ef8cc9997c
commit
d9cbba7c2c
|
@ -1219,7 +1219,14 @@ void cmDocumentVariables::DefineVariables(cmake* cm)
|
|||
"Therefore a specific build configuration must be chosen even "
|
||||
"if the generated build system supports multiple configurations.",false,
|
||||
"Variables that Control the Build");
|
||||
|
||||
cm->DefineProperty
|
||||
("CMAKE_LINK_INTERFACE_LIBRARIES", cmProperty::VARIABLE,
|
||||
"Default value for LINK_INTERFACE_LIBRARIES of targets.",
|
||||
"This variable is used to initialize the "
|
||||
"LINK_INTERFACE_LIBRARIES property on all the targets. "
|
||||
"See that target property for additional information.",
|
||||
false,
|
||||
"Variables that Control the Build");
|
||||
|
||||
// Variables defined when the a language is enabled These variables will
|
||||
// also be defined whenever CMake has loaded its support for compiling (LANG)
|
||||
|
|
|
@ -619,6 +619,9 @@ void cmTarget::DefineProperties(cmake *cm)
|
|||
"If the list is empty then no transitive link dependencies will be "
|
||||
"incorporated when this target is linked into another target even if "
|
||||
"the default set is non-empty. "
|
||||
"This property is initialized by the value of the variable "
|
||||
"CMAKE_LINK_INTERFACE_LIBRARIES if it is set when a target is "
|
||||
"created. "
|
||||
"This property is ignored for STATIC libraries.");
|
||||
|
||||
cm->DefineProperty
|
||||
|
@ -1153,6 +1156,7 @@ void cmTarget::SetMakefile(cmMakefile* mf)
|
|||
this->SetPropertyDefault("Fortran_MODULE_DIRECTORY", 0);
|
||||
this->SetPropertyDefault("OSX_ARCHITECTURES", 0);
|
||||
this->SetPropertyDefault("AUTOMOC", 0);
|
||||
this->SetPropertyDefault("LINK_INTERFACE_LIBRARIES", 0);
|
||||
|
||||
// Collect the set of configuration types.
|
||||
std::vector<std::string> configNames;
|
||||
|
|
Loading…
Reference in New Issue