CMakePrintHelpers

此模块提供方便的命令,主要用于调试,以打印属性和变量的值。

在 CMake 中加载此模块:

include(CMakePrintHelpers)

命令

本模块提供以下命令

cmake_print_properties

打印指定目标、源文件、目录、测试或缓存条目的属性值

cmake_print_properties(
  <TARGETS       [<targets>...] |
   SOURCES       [<sources>...] |
   DIRECTORIES   [<dirs>...]    |
   TESTS         [<tests>...]   |
   CACHE_ENTRIES [<entries>...] >
  PROPERTIES [<properties>...]
)

必须精确指定一个作用域关键字。作用域关键字及其参数必须出现在参数列表中的 PROPERTIES 关键字之前。

cmake_print_variables

打印每个变量名称及其值

cmake_print_variables([<vars>...])

示例

打印目标 foobarLOCATIONINTERFACE_INCLUDE_DIRECTORIES 属性

include(CMakePrintHelpers)

cmake_print_properties(
  TARGETS foo bar
  PROPERTIES LOCATION INTERFACE_INCLUDE_DIRECTORIES
)

结果是

--
 Properties for TARGET foo:
   foo.LOCATION = "/usr/lib/libfoo.so"
   foo.INTERFACE_INCLUDE_DIRECTORIES = "/usr/include;/usr/include/foo"
 Properties for TARGET bar:
   bar.LOCATION = "/usr/lib/libbar.so"
   bar.INTERFACE_INCLUDE_DIRECTORIES = "/usr/include;/usr/include/bar"

打印给定变量

include(CMakePrintHelpers)

cmake_print_variables(CMAKE_C_COMPILER CMAKE_MAJOR_VERSION NOT_EXISTS)

结果是

-- CMAKE_C_COMPILER="/usr/bin/cc" ; CMAKE_MAJOR_VERSION="3" ; NOT_EXISTS=""