mirror of
https://github.com/Kitware/CMake.git
synced 2025-10-16 22:37:30 +08:00
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)
This commit is contained in:
@@ -1215,8 +1215,8 @@ std::string cmGeneratorTarget::EvaluateInterfaceProperty(
|
|||||||
context->EvaluateForBuildsystem, context->Backtrace,
|
context->EvaluateForBuildsystem, context->Backtrace,
|
||||||
context->Language);
|
context->Language);
|
||||||
std::string libResult = cmGeneratorExpression::StripEmptyListElements(
|
std::string libResult = cmGeneratorExpression::StripEmptyListElements(
|
||||||
lib.Target->EvaluateInterfaceProperty(prop, &libContext,
|
lib.Target->EvaluateInterfaceProperty(prop, &libContext, &dagChecker,
|
||||||
&dagChecker));
|
usage_requirements_only));
|
||||||
if (!libResult.empty()) {
|
if (!libResult.empty()) {
|
||||||
if (result.empty()) {
|
if (result.empty()) {
|
||||||
result = std::move(libResult);
|
result = std::move(libResult);
|
||||||
|
@@ -9,8 +9,11 @@ endif()
|
|||||||
add_library(LinkOptions_interface INTERFACE)
|
add_library(LinkOptions_interface INTERFACE)
|
||||||
target_link_options (LinkOptions_interface INTERFACE ${pre}BADFLAG_INTERFACE${obj})
|
target_link_options (LinkOptions_interface INTERFACE ${pre}BADFLAG_INTERFACE${obj})
|
||||||
|
|
||||||
add_library(LinkOptions_static STATIC LinkOptionsLib.c)
|
add_library(LinkOptions_static1 STATIC LinkOptionsLib.c)
|
||||||
target_link_libraries (LinkOptions_static PRIVATE LinkOptions_interface)
|
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)
|
add_executable(LinkOptions_exe LinkOptionsExe.c)
|
||||||
target_link_libraries (LinkOptions_exe PRIVATE LinkOptions_static)
|
target_link_libraries (LinkOptions_exe PRIVATE LinkOptions_static2)
|
||||||
|
Reference in New Issue
Block a user