CMake之常⽤内置变量和message ⽤法
关于
cmake 定义了相当丰富的变量,然⽽,我常⽤的也就那⼏个
脑⼦笨,记不住变量的值时,我会使⽤cmake的message函数输出变量值
为什么要写这个? 最近尝试使⽤Modern CMake, 出现了⼀些问题,但是不知道出现在配置⽂件的哪⾥,于是想到了使⽤message函数作为 “调试输出”
与其记住,倒不如来个更加⽅便的⽅法,得到准确的变量值
这⾥就不聊具体的变量⽤法,如果不熟悉,请参考的官⽅⽂档
⼀个例⼦
message的⼀个例⼦:
message("CMAKE_SOURCE_DIR=${CMAKE_SOURCE_DIR}")
使⽤命令cmake .. (习惯将cmake输出到build⽬录)就可观察到输出结果(cmake gui 将会输出到输出窗⼝)
CMAKE_SOURCE_DIR = xxxxx // XXX根据路径⽽定
我的机器输出值:
那么,我们就可使⽤message输出变量值
cmake常见内置变量
既然是变量,其值是可以修改的。常见内置变量:
序号名称
1PROJECT_BINARY_DIR
2PROJECT_SOURCE _DIR
3CMAKE_CURRENT_SOURCE_DIR
4CMAKE_CURRRENT_BINARY_DIR
5CMAKE_CURRENT_LIST_FILE
6CMAKE_CURRENT_LIST_LINE
7CMAKE_MODULE_PATH
8CMAKE_SOURCE_DIR
9EXECUTABLE_OUTPUT_PATH
10LIBRARY_OUTPUT_PATH
11PROJECT_NAME
12PROJECT_VERSION_MAJOR
13PROJECT_VERSION_MINOR
14PROJECT_VERSION_PATCH
15CMAKE_SYSTEM
16CMAKE_SYSTEM_NAME
17CMAKE_SYSTEM_VERSION
18BUILD_SHARED_LIBS
19CMAKE_C_FLAGS
20CMAKE_CXX_FLAGS
21CMAKE_SYSTEM_PROCESSOR
代码已经写好了:
cmake_minimum_required(VERSION 3.18)
project(show_vars VERSION 1.0.1)
# 为了分⾏确定输出内容
message("")
message("1.PROJECT_BINARY_DIR = ${PROJECT_BINARY_DIR}")
message("2.PROJECT_SOURCE _DIR = ${_DIR}")
message("3.CMAKE_CURRENT_SOURCE_DIR = ${CMAKE_CURRENT_SOURCE_DIR}")
message("4.CMAKE_CURRRENT_BINARY_DIR = ${CMAKE_CURRRENT_BINARY_DIR}")
message("5.CMAKE_CURRENT_LIST_FILE = ${CMAKE_CURRENT_LIST_FILE}")
message("6.CMAKE_CURRENT_LIST_LINE = ${CMAKE_CURRENT_LIST_LINE}")
message("7.CMAKE_MODULE_PATH = ${CMAKE_MODULE_PATH}")
message("8.CMAKE_SOURCE_DIR = ${CMAKE_SOURCE_DIR}")
message("9.EXECUTABLE_OUTPUT_PATH = ${EXECUTABLE_OUTPUT_PATH}") message("10.LIBRARY_OUTPUT_PATH = ${LIBRARY_OUTPUT_PATH}")
message("11.PROJECT_NAME = ${PROJECT_NAME}")
message("12.PROJECT_VERSION_MAJOR = ${PROJECT_VERSION_MAJOR}") message("13.PROJECT_VERSION_MINOR = ${PROJECT_VERSION_MINOR}") message("14.PROJECT_VERSION_PATCH = ${PROJECT_VERSION_PATCH}") message("15.CMAKE_SYSTEM = ${CMAKE_SYSTEM}")
message("16.CMAKE_SYSTEM_NAME = ${CMAKE_SYSTEM_NAME}")
message("17.CMAKE_SYSTEM_VERSION = ${CMAKE_SYSTEM_VERSION}")
message("18.BUILD_SHARED_LIBS = ${BUILD_SHARED_LIBS}")
message("19.CMAKE_C_FLAGS = ${CMAKE_C_FLAGS}")
message("20.CMAKE_CXX_FLAGS = ${CMAKE_CXX_FLAGS}")
message("21.CMAKE_SYSTEM_PROCESSOR  = ${CMAKE_SYSTEM_PROCESSOR}")
# 为了分⾏确定输出内容
message("")
⼀个输出例⼦
[cmake] 1.PROJECT_BINARY_DIR = C:/Users/xxxx/xxxx/CMAKE_VAR/build [cmake] 2.PROJECT_SOURCE _DIR =
[cmake] 3.CMAKE_CURRENT_SOURCE_DIR = C:/Users/xxxx/xxxx/CMAKE_VAR [cmake] 4.CMAKE_CURRRENT_BINARY_DIR =
[cmake] 5.CMAKE_CURRENT_LIST_FILE = C:/Users/xxx/xxxx/CMAKE_ [cmake] 6.CMAKE_CURRENT_LIST_LINE = 14
[cmake] 7.CMAKE_MODULE_PATH =
[cmake] 8.CMAKE_SOURCE_DIR = C:/Users/xxxx/xxxx/CMAKE_VAR
[cmake] 9.EXECUTABLE_OUTPUT_PATH =
为什么现在都用cmake[cmake] 10.LIBRARY_OUTPUT_PATH =
[cmake] 11.PROJECT_NAME = show_vars
[cmake] 12.PROJECT_VERSION_MAJOR = 1
[cmake] 13.PROJECT_VERSION_MINOR = 0
[cmake] 14.PROJECT_VERSION_PATCH = 1
[cmake] 15.CMAKE_SYSTEM = Windows-10.0.22000
[cmake] 16.CMAKE_SYSTEM_NAME = Windows
[cmake] 17.CMAKE_SYSTEM_VERSION = 10.0.22000
[cmake] 18.BUILD_SHARED_LIBS =
[cmake] 19.CMAKE_C_FLAGS = /DWIN32 /D_WINDOWS
[cmake] 20.CMAKE_CXX_FLAGS = /DWIN32 /D_WINDOWS /GR /EHsc
[cmake] 21.CMAKE_SYSTEM_PROCESSOR  = AMD64

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。