cmake常用变量

目录结构
.
├── build
├── CMakeLists.txt
├── main.cpp
└── sub_project
├── CMakeLists.txt
└── sub.cpp

cmake_minimum_required(VERSION 3.0.0)
project(main VERSION 0.1.0)      # 会创建一个PROJECT_NAME变量,并赋值为main


message("CMAKE_ROOT=${CMAKE_ROOT}")    # /usr/local/share/cmake-3.15
message("CMAKE_COMMAND=${CMAKE_COMMAND}")  # /usr/local/bin/cmake

# 如果在build文件夹中编译,则为 workspaceFolder/build,否则等价于CMAKE_SOURCE_DIR, 对所有project一致
message("CMAKE_BINARY_DIR=${CMAKE_BINARY_DIR}")    # /workspace_wjr/develop/tutorials/cmake_tutorials/04_cmake_variables/build

# 顶层CmakeLists.txt的路径,对所有project一致
message("CMAKE_SOURCE_DIR=${CMAKE_SOURCE_DIR}")   # CMAKE_SOURCE_DIR=/workspace_wjr/develop/tutorials/cmake_tutorials/04_cmake_variables

# 当前处理的CMakeLists.txt的路径,主项目和子项目不同
message("CMAKE_CURRENT_SOURCE_DIR=${CMAKE_CURRENT_SOURCE_DIR}")  
# CMAKE_CURRENT_SOURCE_DIR=/workspace_wjr/develop/tutorials/cmake_tutorials/04_cmake_variables
# CMAKE_CURRENT_SOURCE_DIR=/workspace_wjr/develop/tutorials/cmake_tutorials/04_cmake_variables/sub_project

 # 如果在build文件夹中编译,则为 workspaceFolder/build,否则等价于CMAKE_CURRENT_SOURCE_DIR
message("CMAKE_CURRENT_BINARY_DIR=${CMAKE_CURRENT_BINARY_DIR}")
# CMAKE_CURRENT_BINARY_DIR=/workspace_wjr/develop/tutorials/cmake_tutorials/04_cmake_variables/build
# CMAKE_CURRENT_BINARY_DIR=/workspace_wjr/develop/tutorials/cmake_tutorials/04_cmake_variables/build/sub_project

# 第一次调用project的项目名称,一般为顶层项目名称
message("CMAKE_PROJECT_NAME=${CMAKE_PROJECT_NAME}")   # main

message("PROJECT_SOURCE_DIR=${PROJECT_SOURCE_DIR}")
# PROJECT_SOURCE_DIR=/workspace_wjr/develop/tutorials/cmake_tutorials/04_cmake_variables
# PROJECT_SOURCE_DIR=/workspace_wjr/develop/tutorials/cmake_tutorials/04_cmake_variables/sub_project

message("PROJECT_BINARY_DIR=${PROJECT_BINARY_DIR}")
# PROJECT_BINARY_DIR=/workspace_wjr/develop/tutorials/cmake_tutorials/04_cmake_variables/build
# PROJECT_BINARY_DIR=/workspace_wjr/develop/tutorials/cmake_tutorials/04_cmake_variables/build/sub_project

message("CMAKE_CURRENT_LIST_FILE=${CMAKE_CURRENT_LIST_FILE}")
# CMAKE_CURRENT_LIST_FILE=/workspace_wjr/develop/tutorials/cmake_tutorials/04_cmake_variables/CMakeLists.txt
# CMAKE_CURRENT_LIST_FILE=/workspace_wjr/develop/tutorials/cmake_tutorials/04_cmake_variables/sub_project/CMakeLists.txt

message("CMAKE_CURRENT_LIST_DIR=${CMAKE_CURRENT_LIST_DIR}")
# CMAKE_CURRENT_LIST_DIR=/workspace_wjr/develop/tutorials/cmake_tutorials/04_cmake_variables
# CMAKE_CURRENT_LIST_DIR=/workspace_wjr/develop/tutorials/cmake_tutorials/04_cmake_variables/sub_project

message("CMAKE_CURRENT_LIST_LINE=${CMAKE_CURRENT_LIST_LINE}")    # CMAKE_CURRENT_LIST_LINE=21
message("CMAKE_FILES_DIRECTORY=${CMAKE_FILES_DIRECTORY}")    # CMAKE_FILES_DIRECTORY=/CMakeFiles


message("CMAKE_MODULE_PATH=${CMAKE_MODULE_PATH}")   # FIND_PACKAGE()或者INCLUDE()执行时,优先从CMAKE_MODULE_PATH中搜索.cmake文件
# SET(CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/MyCMakeScripts) FIND_PACKAGE(HelloWorld)




add_subdirectory(sub_project)


add_executable(main main.cpp)

CMake有七种常见的变量类型,包括: 1. 提供信息的变量:这些变量提供了有关系统和构建过程的信息,例如CMAKE_VERSION用于指示CMake的版本号。 2. 控制变量:这些变量用于控制构建过程的行为,例如CMAKE_BUILD_TYPE用于指定构建类型(例如Debug或Release)。 3. 描述系统的变量:这些变量描述了系统的各种属性,例如CMAKE_SYSTEM_NAME用于指定目标系统的名称(例如Windows或Linux)。 4. 控制构建过程的变量:这些变量用于控制构建过程的各个方面,例如CMAKE_MODULE_PATH用于指定CMake模块的搜索路径。 5. 语言变量:这些变量用于描述编程语言的相关属性,例如CMAKE_C_FLAGS用于指定C语言编译器的编译选项。 6. CTest变量:这些变量用于配置CTest测试框架的行为,例如CTEST_CONFIGURATION_TYPE用于指定测试配置类型。 7. CPack变量:这些变量用于配置CPack打包工具的行为,例如CPACK_GENERATOR用于指定打包生成器。 引用提供了这七种变量的详细列表,而引用则提供了引用这些变量的方式。对于变量引用,可以使用${}进行引用,除了在IF等语句,可以直接使用变量名而不需要${}。引用提供了一些关于CMake常见变量的参考资料。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [C++CMake常用变量CMAKE_CXX_FLAGS、CMAKE_BUILD_TYPE、×_BINARY_DIR】](https://blog.csdn.net/u013250861/article/details/127935342)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值