diff options
author | Marc Chevrier <marc.chevrier@gmail.com> | 2019-12-11 11:09:26 (GMT) |
---|---|---|
committer | Marc Chevrier <marc.chevrier@gmail.com> | 2019-12-12 17:02:32 (GMT) |
commit | af9d4f24ae3df599048ce69831e2635fb3605f90 (patch) | |
tree | 523bad0d979a2743ce9063e67d94e15982c01f5a | |
parent | 115cda729a092c62f1aa5769ae43cf26da27a6ed (diff) | |
download | CMake-af9d4f24ae3df599048ce69831e2635fb3605f90.zip CMake-af9d4f24ae3df599048ce69831e2635fb3605f90.tar.gz CMake-af9d4f24ae3df599048ce69831e2635fb3605f90.tar.bz2 |
Link properties: must be transitive over private dependency on static library
Ensure transitivity over multiple static libraries.
Fixes: bbba701899 (Link properties: must be transitive over private dependency on static library, 2019-12-06)
-rw-r--r-- | Source/cmGeneratorTarget.cxx | 4 | ||||
-rw-r--r-- | Tests/RunCMake/target_link_options/CMP0099.cmake | 9 |
2 files changed, 8 insertions, 5 deletions
diff --git a/Source/cmGeneratorTarget.cxx b/Source/cmGeneratorTarget.cxx index a4a074f..94ce2e1 100644 --- a/Source/cmGeneratorTarget.cxx +++ b/Source/cmGeneratorTarget.cxx @@ -1215,8 +1215,8 @@ std::string cmGeneratorTarget::EvaluateInterfaceProperty( context->EvaluateForBuildsystem, context->Backtrace, context->Language); std::string libResult = cmGeneratorExpression::StripEmptyListElements( - lib.Target->EvaluateInterfaceProperty(prop, &libContext, - &dagChecker)); + lib.Target->EvaluateInterfaceProperty(prop, &libContext, &dagChecker, + usage_requirements_only)); if (!libResult.empty()) { if (result.empty()) { result = std::move(libResult); diff --git a/Tests/RunCMake/target_link_options/CMP0099.cmake b/Tests/RunCMake/target_link_options/CMP0099.cmake index 9dee964..edb457e 100644 --- a/Tests/RunCMake/target_link_options/CMP0099.cmake +++ b/Tests/RunCMake/target_link_options/CMP0099.cmake @@ -9,8 +9,11 @@ endif() add_library(LinkOptions_interface INTERFACE) target_link_options (LinkOptions_interface INTERFACE ${pre}BADFLAG_INTERFACE${obj}) -add_library(LinkOptions_static STATIC LinkOptionsLib.c) -target_link_libraries (LinkOptions_static PRIVATE LinkOptions_interface) +add_library(LinkOptions_static1 STATIC LinkOptionsLib.c) +target_link_libraries (LinkOptions_static1 PRIVATE LinkOptions_interface) + +add_library(LinkOptions_static2 STATIC LinkOptionsLib.c) +target_link_libraries (LinkOptions_static2 PRIVATE LinkOptions_static1) add_executable(LinkOptions_exe LinkOptionsExe.c) -target_link_libraries (LinkOptions_exe PRIVATE LinkOptions_static) +target_link_libraries (LinkOptions_exe PRIVATE LinkOptions_static2) |