Merge topic 'link-options-propagation'

af9d4f24ae Link properties: must be transitive over private dependency on static library

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4130
This commit is contained in:
Brad King
2019-12-12 17:05:51 +00:00
committed by Kitware Robot
2 changed files with 8 additions and 5 deletions

View File

@@ -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);

View File

@@ -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)