CMake生成器表达式评估顺序

时间:2018-08-14 11:04:29

标签: c++ cmake

我想从对象库中创建一个共享库,但是我不知道生成器表达式在生成过程中何时进行评估。在此示例中:

add_library(foo OBJECT foo.c)
add_library(boo SHARED $<TARGET_OBJECTS:foo>)
target_sources(foo PRIVATE boo.c)

boo共享库是否包含boo.c

2 个答案:

答案 0 :(得分:0)

经过测试后,boo.c位于boo库中。我节省了您的时间:)

答案 1 :(得分:0)

出于完整性考虑:

https://cmake.org/cmake/help/v3.12/manual/cmake-generator-expressions.7.html?highlight=generator

  

生成器表达式在构建系统生成期间进行评估,以生成特定于每个构建配置的信息。

     

...

     

这意味着它们启用条件链接,编译时使用的条件定义以及条件包含目录等。条件可以基于构建配置,目标属性,平台信息或任何其他可查询的信息。