[Cmake-commits] CMake branch, next, updated. v2.8.12-4767-gc3e407f
Brad King
brad.king at kitware.com
Sat Nov 2 07:12:48 EDT 2013
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "CMake".
The branch, next has been updated
via c3e407f86f45c7afb86caad6a43f3a2c7d4ee0ea (commit)
via e6000277d1b07a4cf65e1c9296c517b3e2182e62 (commit)
from 499125db4326ce635307bbde63d0c699b0360db2 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=c3e407f86f45c7afb86caad6a43f3a2c7d4ee0ea
commit c3e407f86f45c7afb86caad6a43f3a2c7d4ee0ea
Merge: 499125d e600027
Author: Brad King <brad.king at kitware.com>
AuthorDate: Sat Nov 2 07:12:46 2013 -0400
Commit: CMake Topic Stage <kwrobot at kitware.com>
CommitDate: Sat Nov 2 07:12:46 2013 -0400
Merge topic 'handle-only-plain-tll' into next
e600027 CMP0022: Teach plain tll to populate INTERFACE_LINK_LIBRARIES
diff --cc Source/cmTarget.cxx
index d305d95,4425011..85f1cc2
--- a/Source/cmTarget.cxx
+++ b/Source/cmTarget.cxx
@@@ -5180,28 -6395,8 +5180,8 @@@ void cmTarget::GetTransitivePropertyLin
}
//----------------------------------------------------------------------------
- bool cmTarget::OnlyUsedWithPlainTLL() const
- {
- if (this->TLLCommands.empty())
- {
- return false;
- }
- typedef std::vector<std::pair<TLLSignature, cmListFileBacktrace> >
- Container;
- for(Container::const_iterator it = this->TLLCommands.begin();
- it != this->TLLCommands.end(); ++it)
- {
- if (it->first == cmTarget::KeywordTLLSignature)
- {
- return false;
- }
- }
- return true;
- }
-
- //----------------------------------------------------------------------------
bool cmTarget::ComputeLinkInterface(const char* config, LinkInterface& iface,
- cmTarget *headTarget)
+ cmTarget const* headTarget) const
{
// Construct the property name suffix for this configuration.
std::string suffix = "_";
http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=e6000277d1b07a4cf65e1c9296c517b3e2182e62
commit e6000277d1b07a4cf65e1c9296c517b3e2182e62
Author: Brad King <brad.king at kitware.com>
AuthorDate: Sat Nov 2 06:49:43 2013 -0400
Commit: Brad King <brad.king at kitware.com>
CommitDate: Sat Nov 2 06:56:13 2013 -0400
CMP0022: Teach plain tll to populate INTERFACE_LINK_LIBRARIES
diff --git a/Source/cmExportFileGenerator.cxx b/Source/cmExportFileGenerator.cxx
index e37e15c..a30c5e4 100644
--- a/Source/cmExportFileGenerator.cxx
+++ b/Source/cmExportFileGenerator.cxx
@@ -186,12 +186,6 @@ bool cmExportFileGenerator::PopulateInterfaceLinkLibrariesProperty(
std::vector<std::string> &missingTargets)
{
const char *input = target->GetProperty("INTERFACE_LINK_LIBRARIES");
- if (!input && target->OnlyUsedWithPlainTLL())
- {
- // Only the plain target_link_libraries(foo bar) signature was
- // called so use the link implementation as the link interface.
- input = target->GetProperty("LINK_LIBRARIES");
- }
if (input)
{
std::string prepro = cmGeneratorExpression::Preprocess(input,
@@ -635,18 +629,12 @@ cmExportFileGenerator
return;
}
- const bool newCMP0022Behavior =
- target->GetPolicyStatusCMP0022() != cmPolicies::WARN
- && target->GetPolicyStatusCMP0022() != cmPolicies::OLD;
-
if (iface->ImplementationIsInterface)
{
- if(!newCMP0022Behavior || this->ExportOld)
- {
- this->SetImportLinkProperty(suffix, target,
+ // Policy CMP0022 must not be NEW.
+ this->SetImportLinkProperty(suffix, target,
"IMPORTED_LINK_INTERFACE_LIBRARIES",
iface->Libraries, properties, missingTargets);
- }
return;
}
@@ -667,6 +655,10 @@ cmExportFileGenerator
return;
}
+ const bool newCMP0022Behavior =
+ target->GetPolicyStatusCMP0022() != cmPolicies::WARN
+ && target->GetPolicyStatusCMP0022() != cmPolicies::OLD;
+
if(newCMP0022Behavior && !this->ExportOld)
{
cmMakefile *mf = target->GetMakefile();
diff --git a/Source/cmTarget.cxx b/Source/cmTarget.cxx
index 2bf8327..4425011 100644
--- a/Source/cmTarget.cxx
+++ b/Source/cmTarget.cxx
@@ -6395,26 +6395,6 @@ void cmTarget::GetTransitivePropertyLinkLibraries(
}
//----------------------------------------------------------------------------
-bool cmTarget::OnlyUsedWithPlainTLL() const
-{
- if (this->TLLCommands.empty())
- {
- return false;
- }
- typedef std::vector<std::pair<TLLSignature, cmListFileBacktrace> >
- Container;
- for(Container::const_iterator it = this->TLLCommands.begin();
- it != this->TLLCommands.end(); ++it)
- {
- if (it->first == cmTarget::KeywordTLLSignature)
- {
- return false;
- }
- }
- return true;
-}
-
-//----------------------------------------------------------------------------
bool cmTarget::ComputeLinkInterface(const char* config, LinkInterface& iface,
cmTarget *headTarget)
{
@@ -6608,7 +6588,12 @@ bool cmTarget::ComputeLinkInterface(const char* config, LinkInterface& iface,
}
}
}
- else
+ else if (this->GetPolicyStatusCMP0022() == cmPolicies::WARN
+ || this->GetPolicyStatusCMP0022() == cmPolicies::OLD)
+ // If CMP0022 is NEW then the plain tll signature sets the
+ // INTERFACE_LINK_LIBRARIES, so if we get here then the project
+ // cleared the property explicitly and we should not fall back
+ // to the link implementation.
{
// The link implementation is the default link interface.
LinkImplementation const* impl = this->GetLinkImplementation(config,
diff --git a/Source/cmTarget.h b/Source/cmTarget.h
index 161f40b..27b74ca 100644
--- a/Source/cmTarget.h
+++ b/Source/cmTarget.h
@@ -196,7 +196,6 @@ public:
};
bool PushTLLCommandTrace(TLLSignature signature);
void GetTllSignatureTraces(cmOStringStream &s, TLLSignature sig) const;
- bool OnlyUsedWithPlainTLL() const;
void MergeLinkLibraries( cmMakefile& mf, const char* selfname,
const LinkLibraryVectorType& libs );
diff --git a/Source/cmTargetLinkLibrariesCommand.cxx b/Source/cmTargetLinkLibrariesCommand.cxx
index 863b391..928c550 100644
--- a/Source/cmTargetLinkLibrariesCommand.cxx
+++ b/Source/cmTargetLinkLibrariesCommand.cxx
@@ -373,6 +373,10 @@ cmTargetLinkLibrariesCommand::HandleLibrary(const char* lib,
}
}
+ bool oldCMP0022 =
+ (this->Target->GetPolicyStatusCMP0022() == cmPolicies::OLD ||
+ this->Target->GetPolicyStatusCMP0022() == cmPolicies::WARN);
+
// Handle normal case first.
if(this->CurrentProcessingState != ProcessingKeywordLinkInterface
&& this->CurrentProcessingState != ProcessingPlainLinkInterface)
@@ -380,7 +384,9 @@ cmTargetLinkLibrariesCommand::HandleLibrary(const char* lib,
this->Makefile
->AddLinkLibraryForTarget(this->Target->GetName(), lib, llt);
if (this->CurrentProcessingState != ProcessingKeywordPublicInterface
- && this->CurrentProcessingState != ProcessingPlainPublicInterface)
+ && this->CurrentProcessingState != ProcessingPlainPublicInterface
+ && (this->CurrentProcessingState != ProcessingLinkLibraries
+ || oldCMP0022))
{
if (this->Target->GetType() == cmTarget::STATIC_LIBRARY)
{
@@ -398,11 +404,7 @@ cmTargetLinkLibrariesCommand::HandleLibrary(const char* lib,
this->Target->AppendProperty("INTERFACE_LINK_LIBRARIES",
this->Target->GetDebugGeneratorExpressions(lib, llt).c_str());
- const cmPolicies::PolicyStatus policy22Status
- = this->Target->GetPolicyStatusCMP0022();
-
- if (policy22Status != cmPolicies::OLD
- && policy22Status != cmPolicies::WARN)
+ if (!oldCMP0022)
{
return true;
}
-----------------------------------------------------------------------
Summary of changes:
Source/cmExportFileGenerator.cxx | 20 ++++++--------------
Source/cmTarget.cxx | 27 ++++++---------------------
Source/cmTarget.h | 1 -
Source/cmTargetLinkLibrariesCommand.cxx | 14 ++++++++------
4 files changed, 20 insertions(+), 42 deletions(-)
hooks/post-receive
--
CMake
More information about the Cmake-commits
mailing list