diff options
author | Stephen Kelly <steveire@gmail.com> | 2011-10-01 10:23:56 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2011-10-24 20:09:29 (GMT) |
commit | d9cbba7c2cd364a19b42cd856f5d048deb92b415 (patch) | |
tree | 5ac374919128c3696db39ab5202a85680f662a63 | |
parent | ef8cc9997cab748098bab52caf1ca038f90ec826 (diff) | |
download | CMake-d9cbba7c2cd364a19b42cd856f5d048deb92b415.zip CMake-d9cbba7c2cd364a19b42cd856f5d048deb92b415.tar.gz CMake-d9cbba7c2cd364a19b42cd856f5d048deb92b415.tar.bz2 |
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.
-rw-r--r-- | Source/cmDocumentVariables.cxx | 9 | ||||
-rw-r--r-- | Source/cmTarget.cxx | 4 |
2 files changed, 12 insertions, 1 deletions
diff --git a/Source/cmDocumentVariables.cxx b/Source/cmDocumentVariables.cxx index f2b01f1..f4d4e7c 100644 --- a/Source/cmDocumentVariables.cxx +++ b/Source/cmDocumentVariables.cxx @@ -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) diff --git a/Source/cmTarget.cxx b/Source/cmTarget.cxx index fb92016..14b73d1 100644 --- a/Source/cmTarget.cxx +++ b/Source/cmTarget.cxx @@ -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; |