是否可以link against a library定义usage requirements,但不能使用它们?
答案 0 :(得分:0)
CMake定义了一种速记方式,以满足下游中导出的目标上游定义的所有使用要求:
target_link_library(Downstream Upstream)
与此同时,可以单独提取目标属性,并根据需要单独使用它们。
Stricto-sensu," link-against"是一个使用要求,所以我假设你想要控制哪个要求满足,哪个不要满足。
如果要链接库上游,则需要链接目标INTERFACE_LINK_LIBRARY
属性中定义的库。您可以使用以下代码提取EXPORTED目标的链接要求,即使它是EXPORTED
:
add_library(Downstream mylibrary.cpp) #Creates the Downstream library
# Extract Upstream's link interface
get_property(extracted_libraries TARGET Upstream PROPERTY INTERFACE_LINK_LIBRARIES)
# And link Downstream against it
target_link_library(Downstream extracted_libraries)