CMake同樣可以使用變量,比如當依賴文件過多或需要生成的項目繁雜,就可以使用變量統一管理,也便於以後的條件編譯。
一、定義變量
CMake 定義變量分顯式和隱式兩種。
顯式定義即使用 set 等語句,可以自定義變量名稱。
隱式定義是在使用其他語句時自動創建的變量,如 project 是定義項目名稱的,但在定義名稱的同時,<projectname>_BINARY_DIR 和 <projectname>_SOURCE_DIR 兩個變量就被隱式定義了。
例如:
只執行下面語句
project(test_4)
test_4_BINARY_DIR 和 test_4_SOURCE_DIR 兩個變量就被隱式定義了。
set語句語法
set(<variable> <value>...)
如:
set(USER_KEY "Hello World")
可以爲一個變量賦多值:
set(USER_KEY
"Hello World"
"Hello CMake"
)
二、引用變量
使用 ${variable} 進行變量的引用。在 if 等語句中,直接使用變量名而不通過 ${variable} 取值。
例如 CMake學習(一)中CMakeLists.txt內容:
# CMakeLists.txt
# CMake最低版本要求
cmake_minimum_required(VERSION 3.5)
# 項目名稱
project(test_1)
# 生成可執行文件,test_1是可執行文件的名字,hello.c是源文件名稱,如有其他源文件,可在後面添加
add_executable(test_1 hello.c)
可以修改爲:
# CMakeLists.txt
# CMake最低版本要求
cmake_minimum_required(VERSION 3.5)
# 項目名稱
project(test_1)
set(SOURCE hello.c)
# 生成可執行文件,test_1是可執行文件的名字,hello.c是源文件名稱,如有其他源文件,可在後面添加
add_executable(test_1 ${SOURCE})
參考:
https://www.cnblogs.com/linuxAndMcu/p/10670591.html
https://cmake.org/cmake/help/v3.14/command/set.html
https://blog.csdn.net/LaineGates/article/details/89847726