CMake获取全局GLOBAL属性命令get_cmake_property简介

可以通过get_cmake_property命令来获取CMake的全局范围属性。

命令格式

get_cmake_property(<var> <property>)

其中<var>是属性获取的结果,<property>是属性名称,如果属性未找到,那么变量<var>被设置成NOTFOUND

简单示例

下面演示全局属性的获取方法,以CMAKE_ROLE属性为例,它表示当前CMake脚本的运行模式,例如是通过处理CMakeLists.txt文件运行(PROJECT模式),或者通过命令行使用-P参数指定脚本(SCRIPT模式)等。更多的CMake内置全局属性可以参考这里

CMakeLists.txt文件内容:

cmake_minimum_required(VERSION 3.22.1)
project(test)

get_cmake_property(role CMAKE_ROLE)
message("# Run CMake in mode: ${role}")

get_cmake_property(not_found_property CMAKE_NOT_EXIST_PROPERTY)
message("# Get one non exist property: ${not_found_property}")

当运行cmake .得到的输出如下:

# Run CMake in mode: PROJECT
# Get one non exist property: NOTFOUND

新建文件PrintCMakeMode.cmake,内容如下:

get_cmake_property(role CMAKE_ROLE)
message("# Run CMake in mode: ${role}")

运行cmake -P PrintCMakeMode.cmak时,得到的输出如下:

# Run CMake in mode: SCRIPT
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容