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 500a2674a590d171994bcc4a4ec5ff93e8e95197 (commit) via 75f52e2c5f99dc20b054385c7bf99ce0b823dd9f (commit) from c920002c6991ea1264011d4acf84e84130e36a68 (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=500a2674a590d171994bcc4a4ec5ff93e8e95197 commit 500a2674a590d171994bcc4a4ec5ff93e8e95197 Merge: c920002 75f52e2 Author: Stephen Kelly <steve...@gmail.com> AuthorDate: Tue Jul 1 17:58:43 2014 -0400 Commit: CMake Topic Stage <kwro...@kitware.com> CommitDate: Tue Jul 1 17:58:43 2014 -0400 Merge topic 'fix-circular-transitive-properties-segfault' into next 75f52e2c Remove backtrace from linking APIs. http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=75f52e2c5f99dc20b054385c7bf99ce0b823dd9f commit 75f52e2c5f99dc20b054385c7bf99ce0b823dd9f Author: Stephen Kelly <steve...@gmail.com> AuthorDate: Tue Jul 1 23:53:02 2014 +0200 Commit: Stephen Kelly <steve...@gmail.com> CommitDate: Tue Jul 1 23:57:59 2014 +0200 Remove backtrace from linking APIs. diff --git a/Source/cmGeneratorExpressionEvaluator.cxx b/Source/cmGeneratorExpressionEvaluator.cxx index c230ac6..b648eb2 100644 --- a/Source/cmGeneratorExpressionEvaluator.cxx +++ b/Source/cmGeneratorExpressionEvaluator.cxx @@ -1098,8 +1098,7 @@ static const struct TargetPropertyNode : public cmGeneratorExpressionNode std::vector<cmTarget const*> tgts; target->GetTransitivePropertyTargets(context->Config, - headTarget, tgts, - &context->Backtrace); + headTarget, tgts); if (!tgts.empty()) { linkedTargetsContent = diff --git a/Source/cmTarget.cxx b/Source/cmTarget.cxx index 8e334ff..d27293a 100644 --- a/Source/cmTarget.cxx +++ b/Source/cmTarget.cxx @@ -3730,10 +3730,9 @@ void cmTarget::ExpandLinkItems(std::string const& prop, std::string const& config, cmTarget const* headTarget, bool usage_requirements_only, - std::vector<cmLinkItem>& items, - cmListFileBacktrace *backtrace) const + std::vector<cmLinkItem>& items) const { - cmGeneratorExpression ge(backtrace); + cmGeneratorExpression ge; cmGeneratorExpressionDAGChecker dagChecker(this->GetName(), prop, 0, 0); if(usage_requirements_only) { @@ -6079,7 +6078,7 @@ cmTarget::LinkInterface const* cmTarget::GetLinkInterface( // Imported targets have their own link interface. if(this->IsImported()) { - return this->GetImportLinkInterface(config, head, false, 0); + return this->GetImportLinkInterface(config, head, false); } // Link interfaces are not supported for executables that do not @@ -6101,7 +6100,7 @@ cmTarget::LinkInterface const* cmTarget::GetLinkInterface( cmTargetInternals::OptionalLinkInterface iface; iface.ExplicitLibraries = this->ComputeLinkInterfaceLibraries(config, iface, head, false, - iface.Exists, 0); + iface.Exists); if (iface.Exists) { this->Internal->ComputeLinkInterface(this, config, iface, @@ -6125,14 +6124,12 @@ cmTarget::LinkInterface const* cmTarget::GetLinkInterface( cmTarget::LinkInterface const* cmTarget::GetLinkInterfaceLibraries(const std::string& config, cmTarget const* head, - bool usage_requirements_only, - cmListFileBacktrace *backtrace) const + bool usage_requirements_only) const { // Imported targets have their own link interface. if(this->IsImported()) { - return this->GetImportLinkInterface(config, head, - usage_requirements_only, backtrace); + return this->GetImportLinkInterface(config, head, usage_requirements_only); } // Link interfaces are not supported for executables that do not @@ -6158,7 +6155,7 @@ cmTarget::GetLinkInterfaceLibraries(const std::string& config, iface.ExplicitLibraries = this->ComputeLinkInterfaceLibraries(config, iface, head, usage_requirements_only, - iface.Exists, backtrace); + iface.Exists); // Store the information for this configuration. cmTargetInternals::LinkInterfaceMapType::value_type entry(key, iface); @@ -6172,8 +6169,7 @@ cmTarget::GetLinkInterfaceLibraries(const std::string& config, cmTarget::LinkInterface const* cmTarget::GetImportLinkInterface(const std::string& config, cmTarget const* headTarget, - bool usage_requirements_only, - cmListFileBacktrace *backtrace) const + bool usage_requirements_only) const { cmTarget::ImportInfo const* info = this->GetImportInfo(config); if(!info) @@ -6195,7 +6191,7 @@ cmTarget::GetImportLinkInterface(const std::string& config, cmSystemTools::ExpandListArgument(info->Languages, iface.Languages); this->ExpandLinkItems(info->LibrariesProp, info->Libraries, config, headTarget, usage_requirements_only, - iface.Libraries, backtrace); + iface.Libraries); { std::vector<std::string> deps; cmSystemTools::ExpandListArgument(info->SharedDeps, deps); @@ -6220,7 +6216,7 @@ void processILibs(const std::string& config, { tgts.push_back(item.Target); if(cmTarget::LinkInterface const* iface = - item.Target->GetLinkInterfaceLibraries(config, headTarget, false, 0)) + item.Target->GetLinkInterfaceLibraries(config, headTarget, false)) { for(std::vector<cmLinkItem>::const_iterator it = iface->Libraries.begin(); @@ -6258,8 +6254,7 @@ cmTarget::GetLinkImplementationClosure(const std::string& config) const //---------------------------------------------------------------------------- void cmTarget::GetTransitivePropertyTargets(const std::string& config, cmTarget const* headTarget, - std::vector<cmTarget const*> &tgts, - cmListFileBacktrace *backtrace) const + std::vector<cmTarget const*> &tgts) const { // The $<LINK_ONLY> expression may be in a link interface to specify private // link dependencies that are otherwise excluded from usage requirements. @@ -6272,7 +6267,7 @@ void cmTarget::GetTransitivePropertyTargets(const std::string& config, this->GetPolicyStatusCMP0022() != cmPolicies::OLD; if(cmTarget::LinkInterface const* iface = this->GetLinkInterfaceLibraries(config, headTarget, - usage_requirements_only, backtrace)) + usage_requirements_only)) { for(std::vector<cmLinkItem>::const_iterator it = iface->Libraries.begin(); it != iface->Libraries.end(); ++it) @@ -6287,11 +6282,10 @@ void cmTarget::GetTransitivePropertyTargets(const std::string& config, //---------------------------------------------------------------------------- const char* cmTarget::ComputeLinkInterfaceLibraries(const std::string& config, - LinkInterface& iface, - cmTarget const* headTarget, - bool usage_requirements_only, - bool &exists, - cmListFileBacktrace *backtrace) const + LinkInterface& iface, + cmTarget const* headTarget, + bool usage_requirements_only, + bool &exists) const { // Construct the property name suffix for this configuration. std::string suffix = "_"; @@ -6377,7 +6371,7 @@ const char* cmTarget::ComputeLinkInterfaceLibraries(const std::string& config, // The interface libraries have been explicitly set. this->ExpandLinkItems(linkIfaceProp, explicitLibraries, config, headTarget, usage_requirements_only, - iface.Libraries, backtrace); + iface.Libraries); } else if (this->PolicyStatusCMP0022 == cmPolicies::WARN || this->PolicyStatusCMP0022 == cmPolicies::OLD) @@ -6401,7 +6395,7 @@ const char* cmTarget::ComputeLinkInterfaceLibraries(const std::string& config, { this->ExpandLinkItems(newProp, newExplicitLibraries, config, headTarget, usage_requirements_only, - ifaceLibs, backtrace); + ifaceLibs); } if (ifaceLibs != impl->Libraries) { diff --git a/Source/cmTarget.h b/Source/cmTarget.h index 8b18cb7..9d1f966 100644 --- a/Source/cmTarget.h +++ b/Source/cmTarget.h @@ -281,12 +281,10 @@ public: cmTarget const* headTarget) const; LinkInterface const* GetLinkInterfaceLibraries(const std::string& config, cmTarget const* headTarget, - bool usage_requirements_only, - cmListFileBacktrace *backtrace) const; + bool usage_requirements_only) const; void GetTransitivePropertyTargets(const std::string& config, cmTarget const* headTarget, - std::vector<cmTarget const*> &libs, - cmListFileBacktrace *backtrace = 0) const; + std::vector<cmTarget const*> &libs) const; std::vector<cmTarget const*> const& GetLinkImplementationClosure(const std::string& config) const; @@ -760,15 +758,13 @@ private: LinkInterface const* GetImportLinkInterface(const std::string& config, cmTarget const* head, - bool usage_requirements_only, - cmListFileBacktrace *backtrace) const; + bool usage_requirements_only) const; const char* ComputeLinkInterfaceLibraries(const std::string& config, - LinkInterface& iface, - cmTarget const* head, - bool usage_requirements_only, - bool &exists, - cmListFileBacktrace* backtrace) const; + LinkInterface& iface, + cmTarget const* head, + bool usage_requirements_only, + bool &exists) const; LinkImplementation const* GetLinkImplementationLibrariesInternal(const std::string& config, @@ -784,8 +780,7 @@ private: void ExpandLinkItems(std::string const& prop, std::string const& value, std::string const& config, cmTarget const* headTarget, bool usage_requirements_only, - std::vector<cmLinkItem>& items, - cmListFileBacktrace *backtrace) const; + std::vector<cmLinkItem>& items) const; void LookupLinkItems(std::vector<std::string> const& names, std::vector<cmLinkItem>& items) const; diff --git a/Tests/RunCMake/TargetPropertyGeneratorExpressions/LinkImplementationCycle4-stderr.txt b/Tests/RunCMake/TargetPropertyGeneratorExpressions/LinkImplementationCycle4-stderr.txt index 3d1da50..5cfeb0a 100644 --- a/Tests/RunCMake/TargetPropertyGeneratorExpressions/LinkImplementationCycle4-stderr.txt +++ b/Tests/RunCMake/TargetPropertyGeneratorExpressions/LinkImplementationCycle4-stderr.txt @@ -1,4 +1,4 @@ -CMake Error at LinkImplementationCycle4.cmake:14 \(target_link_libraries\): +CMake Error: Error evaluating generator expression: \$<TARGET_PROPERTY:INTERFACE_INCLUDE_DIRECTORIES> @@ -6,5 +6,3 @@ CMake Error at LinkImplementationCycle4.cmake:14 \(target_link_libraries\): \$<TARGET_PROPERTY:...> expression in link libraries evaluation depends on target property which is transitive over the link libraries, creating a recursion. -Call Stack \(most recent call first\): - CMakeLists.txt:8 \(include\) diff --git a/Tests/RunCMake/TargetPropertyGeneratorExpressions/LinkImplementationCycle5-stderr.txt b/Tests/RunCMake/TargetPropertyGeneratorExpressions/LinkImplementationCycle5-stderr.txt index 28bbc12..5cfeb0a 100644 --- a/Tests/RunCMake/TargetPropertyGeneratorExpressions/LinkImplementationCycle5-stderr.txt +++ b/Tests/RunCMake/TargetPropertyGeneratorExpressions/LinkImplementationCycle5-stderr.txt @@ -1,4 +1,4 @@ -CMake Error at LinkImplementationCycle5.cmake:10 \(target_link_libraries\): +CMake Error: Error evaluating generator expression: \$<TARGET_PROPERTY:INTERFACE_INCLUDE_DIRECTORIES> @@ -6,5 +6,3 @@ CMake Error at LinkImplementationCycle5.cmake:10 \(target_link_libraries\): \$<TARGET_PROPERTY:...> expression in link libraries evaluation depends on target property which is transitive over the link libraries, creating a recursion. -Call Stack \(most recent call first\): - CMakeLists.txt:8 \(include\) diff --git a/Tests/RunCMake/TargetPropertyGeneratorExpressions/LinkImplementationCycle6-stderr.txt b/Tests/RunCMake/TargetPropertyGeneratorExpressions/LinkImplementationCycle6-stderr.txt index 1ea624d..5cfeb0a 100644 --- a/Tests/RunCMake/TargetPropertyGeneratorExpressions/LinkImplementationCycle6-stderr.txt +++ b/Tests/RunCMake/TargetPropertyGeneratorExpressions/LinkImplementationCycle6-stderr.txt @@ -1,4 +1,4 @@ -CMake Error at LinkImplementationCycle6.cmake:14 \(target_link_libraries\): +CMake Error: Error evaluating generator expression: \$<TARGET_PROPERTY:INTERFACE_INCLUDE_DIRECTORIES> @@ -6,5 +6,3 @@ CMake Error at LinkImplementationCycle6.cmake:14 \(target_link_libraries\): \$<TARGET_PROPERTY:...> expression in link libraries evaluation depends on target property which is transitive over the link libraries, creating a recursion. -Call Stack \(most recent call first\): - CMakeLists.txt:8 \(include\) ----------------------------------------------------------------------- Summary of changes: Source/cmGeneratorExpressionEvaluator.cxx | 3 +- Source/cmTarget.cxx | 42 +++++++++----------- Source/cmTarget.h | 21 ++++------ .../LinkImplementationCycle4-stderr.txt | 4 +- .../LinkImplementationCycle5-stderr.txt | 4 +- .../LinkImplementationCycle6-stderr.txt | 4 +- 6 files changed, 30 insertions(+), 48 deletions(-) hooks/post-receive -- CMake _______________________________________________ Cmake-commits mailing list Cmake-commits@cmake.org http://public.kitware.com/mailman/listinfo/cmake-commits