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
)