CMakePrintHelpers

用于打印属性和变量的便捷函数,例如在调试时非常有用。

命令

cmake_print_properties
cmake_print_properties(<TARGETS       [<target1> ...] |
                        SOURCES       [<source1> ...] |
                        DIRECTORIES   [<dir1> ...]    |
                        TESTS         [<test1> ...]   |
                        CACHE_ENTRIES [<entry1> ...]  >
                       PROPERTIES [<prop1> ...])

此函数打印给定目标、源文件、目录、测试或缓存条目的属性值。必须使用且仅能使用一个范围关键字。范围关键字及其参数必须位于参数列表中的 PROPERTIES 关键字之前。

cmake_print_variables
cmake_print_variables([var1 [var2 ... [varN]]])

此函数打印每个变量的名称,后跟其值。

示例

打印目标 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=""