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 "
|
"Therefore a specific build configuration must be chosen even "
|
||||||
"if the generated build system supports multiple configurations.",false,
|
"if the generated build system supports multiple configurations.",false,
|
||||||
"Variables that Control the Build");
|
"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
|
// Variables defined when the a language is enabled These variables will
|
||||||
// also be defined whenever CMake has loaded its support for compiling (LANG)
|
// 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 "
|
"If the list is empty then no transitive link dependencies will be "
|
||||||
"incorporated when this target is linked into another target even if "
|
"incorporated when this target is linked into another target even if "
|
||||||
"the default set is non-empty. "
|
"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.");
|
"This property is ignored for STATIC libraries.");
|
||||||
|
|
||||||
cm->DefineProperty
|
cm->DefineProperty
|
||||||
|
@ -1153,6 +1156,7 @@ void cmTarget::SetMakefile(cmMakefile* mf)
|
||||||
this->SetPropertyDefault("Fortran_MODULE_DIRECTORY", 0);
|
this->SetPropertyDefault("Fortran_MODULE_DIRECTORY", 0);
|
||||||
this->SetPropertyDefault("OSX_ARCHITECTURES", 0);
|
this->SetPropertyDefault("OSX_ARCHITECTURES", 0);
|
||||||
this->SetPropertyDefault("AUTOMOC", 0);
|
this->SetPropertyDefault("AUTOMOC", 0);
|
||||||
|
this->SetPropertyDefault("LINK_INTERFACE_LIBRARIES", 0);
|
||||||
|
|
||||||
// Collect the set of configuration types.
|
// Collect the set of configuration types.
|
||||||
std::vector<std::string> configNames;
|
std::vector<std::string> configNames;
|
||||||
|
|
Loading…
Reference in New Issue