在哪里可以找到Boost的CMake属性的列表?

时间:2020-08-18 22:14:17

标签: boost cmake

这行代码曾经起作用:

get_property(_loc TARGET Boost::Boost PROPERTY LOCATION)

但是我更新了Boost,现在我收到以下消息:

get_property could not find TARGET Boost::Boost.  Perhaps it has not yet been created.

所以我想目标Boost::Boost不再存在,或者它没有定义LOCATION属性。我想检查find_package(Boost REQUIRED CONFIG COMPONENTS unit_test_framework )在调用时定义了哪些属性,但是找不到该信息。 Boost文档中的某处是否有CMake属性/目标名称的列表?

Cmake版本: 3.18.1

增强版本: 1.71.0

系统: Ubuntu 20.04 LTS

1 个答案:

答案 0 :(得分:2)

CMake中Boost导入的目标是区分大小写的。请注意,在CMake 3.14 documentation中,仅标头依赖项的Boost目标是Boost::boost

此外,在3.15及更高版本的CMake(和更高版本的Boost)中,Boost::boost导入的目标已被Boost::headers取代。看来您应该改用这个Boost::headers导入的目标。

您可以查询CMake文档中列出的Boost导入目标的 any 属性,例如Boost::unit_test_framework。链接的CMake文档使用Boost::<C>引用了这些单独的Boost组件,其中<C>是组件之一。