FindPackageMessage¶
此模块提供了一个用于打印查找结果消息的命令,旨在用于在实现 find_package(<PackageName>) 调用的 查找模块 中。
在 CMake 查找模块中加载此模块,使用
FindFoo.cmake¶include(FindPackageMessage)
命令¶
此模块提供以下命令
- find_package_message¶
为每个唯一的查找结果打印一条消息,以告知用户找到了哪个包以及在哪里找到的。
find_package_message(<PackageName> <message> <details>)
<PackageName>包的名称(例如,在
Find<PackageName>.cmake模块文件名中使用)。<message>要显示的消息字符串。
<details>用于跟踪消息显示的唯一标识符。仅为每个不同的
<details>值打印一次<message>。如果后续配置阶段的<details>字符串发生更改,消息将再次显示。
如果使用
QUIET选项调用了find_package(),则不会打印<message>。
示例¶
在自定义查找模块中打印结果消息
FindFoo.cmake¶find_library(Foo_LIBRARY foo)
find_path(Foo_INCLUDE_DIR foo.h)
include(FindPackageMessage)
if(Foo_LIBRARY AND Foo_INCLUDE_DIR)
find_package_message(
Foo
"Found Foo: ${Foo_LIBRARY}"
"[${Foo_LIBRARY}][${Foo_INCLUDE_DIR}]"
)
else()
message(STATUS "Could NOT find Foo")
endif()
编写标准查找模块时,请使用 FindPackageHandleStandardArgs 模块及其 find_package_handle_standard_args() 命令,该命令会根据是否找到包自动打印查找结果消息。
FindFoo.cmake¶# ...
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(
Foo
REQUIRED_VARS Foo_LIBRARY Foo_INCLUDE_DIR
)