diff options
author | Stephen Kelly <steveire@gmail.com> | 2013-11-20 11:44:04 (GMT) |
---|---|---|
committer | Stephen Kelly <steveire@gmail.com> | 2013-11-25 15:17:50 (GMT) |
commit | 0bfcb450e6cab8d9c2c079e10bf0acea62ffadbe (patch) | |
tree | eb8e1b76aae32f91fc6f5f47e81bd709b87215ed /Source/cmMakefile.cxx | |
parent | 9f095b74162b972d07c695ad23964056f310ade2 (diff) | |
download | CMake-0bfcb450e6cab8d9c2c079e10bf0acea62ffadbe.zip CMake-0bfcb450e6cab8d9c2c079e10bf0acea62ffadbe.tar.gz CMake-0bfcb450e6cab8d9c2c079e10bf0acea62ffadbe.tar.bz2 |
INTERFACE_LIBRARY: Avoid codepaths which set unneeded properties.
As an INTERFACE_LIBRARY has no direct link dependencies, we can
short-circuit in cmGeneratorExpressionEvaluator and
in cmGlobalGenerator::CheckLocalGenerators.
As they do not generate any output directly, any generate- or install-
related code acn also be short-circuited. Many of the local generators
already do this.
Because only INTERFACE related properties make sense on INTERFACE_LIBRARY
targets, avoid setting other properties, for example via defaults.
Diffstat (limited to 'Source/cmMakefile.cxx')
-rw-r--r-- | Source/cmMakefile.cxx | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/Source/cmMakefile.cxx b/Source/cmMakefile.cxx index 989aa5f..30a1557 100644 --- a/Source/cmMakefile.cxx +++ b/Source/cmMakefile.cxx @@ -868,6 +868,10 @@ void cmMakefile::ConfigureFinalPass() for (cmTargets::iterator l = this->Targets.begin(); l != this->Targets.end(); l++) { + if (l->second.GetType() == cmTarget::INTERFACE_LIBRARY) + { + continue; + } l->second.FinishConfigure(); } } @@ -2256,6 +2260,10 @@ void cmMakefile::ExpandVariablesCMP0019() l != this->Targets.end(); ++l) { cmTarget &t = l->second; + if (t.GetType() == cmTarget::INTERFACE_LIBRARY) + { + continue; + } includeDirs = t.GetProperty("INCLUDE_DIRECTORIES"); if(mightExpandVariablesCMP0019(includeDirs)) { |