FindPackageMessage¶
此模块提供了一个用于打印查找结果消息的命令,旨在用于查找模块中。
在 CMake 查找模块中加载它:
include(FindPackageMessage)
命令¶
此模块提供以下命令
- find_package_message¶
为每个唯一的查找结果打印一条消息,以告知用户找到了哪个包以及在哪里找到的
find_package_message(<PackageName> <message> <details>)
<PackageName>
包的名称(例如,在
Find<PackageName>.cmake
模块文件名中使用)。<message>
要显示的消息字符串。
<details>
用于跟踪消息显示的唯一标识符。
<message>
仅针对每个不同的<details>
值打印一次。如果<details>
字符串在后续配置阶段发生更改,则消息将再次显示。
如果调用
find_package()
时带有QUIET
选项,则不打印<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
)