CMake入门教程【基础篇】CMake变量

发布时间:2024年01月02日


在这里插入图片描述

1.概述

CMake变量是CMake构建系统中的基础组件之一,提供了一种灵活的方式来管理和配置项目的构建过程。变量在CMake中被广泛用于存储配置选项、文件路径、编译设置等信息。本文将详细介绍CMake变量的使用方法、实践技巧和注意事项。

1.1定义变量

使用set命令来定义变量:

set(VAR_NAME "Value")

1.2引用变量

通过${}语法来引用变量:

message("Variable value: ${VAR_NAME}")

1.3 列表变量

CMake变量可以存储列表,非常适用于管理多个源文件或库:

set(SOURCES file1.cpp file2.cpp file3.cpp)

2.代码示例

以下是一个实际的CMake脚本示例,展示了变量的定义和使用:

cmake_minimum_required(VERSION 3.10)
project(ExampleProject)

set(SOURCE_FILES main.cpp helper.cpp)
add_executable(MyApp ${SOURCE_FILES})

3. 使用技巧

  • 变量名命名:为变量选择清晰、描述性的名字。
  • 使用缓存变量:对于需要用户输入的配置选项,使用set(VAR_NAME "value" CACHE TYPE "Description")
  • 组织列表变量:使用list(APPEND VAR_NAME item)来动态构建列表。

4. 注意事项

  • 变量的作用域:了解局部和全局变量的作用域差异。
  • 避免变量名冲突:注意不要覆盖CMake自带的变量。
  • 字符串和路径:在处理路径时,注意系统路径分隔符的差异。

5.CMake常用的系统变量

类别变量名描述
项目和源代码信息CMAKE_SOURCE_DIR项目的顶级源代码目录。
CMAKE_CURRENT_SOURCE_DIR当前处理的CMakeLists.txt的源代码目录。
CMAKE_BINARY_DIR项目的顶级构建目录(binary tree)。
CMAKE_CURRENT_BINARY_DIR当前处理的CMakeLists.txt的构建目录。
编译器和工具设置CMAKE_C_COMPILERC编译器的完整路径。
CMAKE_CXX_COMPILERC++编译器的完整路径。
CMAKE_COMPILER_IS_GNUCXX如果是GNU编译器,则为TRUE。
构建类型和编译选项CMAKE_BUILD_TYPE构建类型,例如DebugRelease
CMAKE_C_FLAGS用于C编译的标志。
CMAKE_CXX_FLAGS用于C++编译的标志。
平台和操作系统信息CMAKE_SYSTEM_NAME运行CMake的系统名称,如LinuxWindows等。
CMAKE_SYSTEM_PROCESSOR目标处理器的名称,如x86_64ARM等。
WIN32如果目标平台是Windows,则为TRUE。
UNIX如果目标平台是Unix或类Unix系统,则为TRUE。
APPLE如果目标平台是Apple系统,则为TRUE。
安装和路径CMAKE_INSTALL_PREFIX安装路径前缀,用于指定安装目录。
CMAKE_MODULE_PATH指定额外的CMake模块搜索路径。
第三方库和工具CMAKE_FIND_ROOT_PATH用于指定第三方库搜索的根路径。
CMAKE_PREFIX_PATH指定寻找第三方库文件的额外路径。
特定语言支持CMAKE_<LANG>_STANDARD设置特定语言(如CCXX)的标准版本。
CMAKE_<LANG>_EXTENSIONS启用或禁用特定语言的扩展。
测试和文档BUILD_TESTING控制是否构建测试目标。
CMAKE_DOXYGEN_EXECUTABLE指定Doxygen工具的路径,用于生成文档。
跨平台构建CMAKE_CROSSCOMPILING如果正在进行交叉编译,则为TRUE。
CMAKE_SYSTEM_VERSION目标系统的版本,用于交叉编译。
CMAKE_SOURCE_DIR
CMAKE_CURRENT_SOURCE_DIR
CMAKE_BINARY_DIR
CMAKE_CURRENT_BINARY_DIR
CMAKE_C_COMPILER
CMAKE_CXX_COMPILER
CMAKE_COMPILER_IS_GNUCXX
CMAKE_BUILD_TYPE
CMAKE_C_FLAGS
CMAKE_CXX_FLAGS
CMAKE_SYSTEM_NAME
CMAKE_SYSTEM_PROCESSOR
WIN32, UNIX, APPLE
CMAKE_INSTALL_PREFIX
CMAKE_MODULE_PATH
CMAKE_CROSSCOMPILING
CMAKE_SYSTEM_VERSION
开始项目配置
设置项目和源代码信息变量
顶级源代码目录
当前CMakeLists.txt的源代码目录
顶级构建目录
当前CMakeLists.txt的构建目录
设置编译器和工具变量
C编译器路径
C++编译器路径
是否GNU编译器
设置构建类型和编译选项
构建类型.如Debug或Release
C编译标志
C++编译标志
设置平台和操作系统信息
系统名称.如Linux.Windows
目标处理器名称
特定平台标志
设置安装和路径变量
安装路径前缀
CMake模块路径
设置跨平台构建变量
是否交叉编译
目标系统版本
完成项目构建
文章来源:https://blog.csdn.net/hiwoshixiaoyu/article/details/135279040
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。