summaryrefslogtreecommitdiffstats
path: root/Source
diff options
context:
space:
mode:
authorStephen Kelly <steveire@gmail.com>2011-10-01 10:23:56 (GMT)
committerBrad King <brad.king@kitware.com>2011-10-24 20:09:29 (GMT)
commitd9cbba7c2cd364a19b42cd856f5d048deb92b415 (patch)
tree5ac374919128c3696db39ab5202a85680f662a63 /Source
parentef8cc9997cab748098bab52caf1ca038f90ec826 (diff)
downloadCMake-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.
Diffstat (limited to 'Source')
-rw-r--r--Source/cmDocumentVariables.cxx9
-rw-r--r--Source/cmTarget.cxx4
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;