基本觀念,command不分大小寫,但參數和變數是有分大小寫的。
輸出訊息
message(helloworld)
變數
使用set來設定變數值,使用${}符號來get 變數值
set(var hello) message(${var})
字串與串列
字串(string)是 CMake 當中的基本的資料型態,將字串用空白或分號分隔則表示串列
set(foo this is a list) set(foo this;is;a;list)在字串當中需要空白、換行、分號等字元時,可以使用 " " 將文字內容框住,如此就會被解釋成同一個字串
set(a alpha beta gamma) set(b "alpha beta gamma") set(c "alpha beta gamma" ) message("a = ${a}") message("b = ${b}") message("c = ${c}")
a 等於一個串列,內容為 alpha、beta、gamma 三個字串
b 等於一個字串,內容為 alpha beta gamma
c 等於一個字串,內容為以換行為分隔的 alpha beta gamma
跳脫字元Escapes
CMake 大致上相容 C 語言當中的 Escape Sequence,如 \t \n 等等。如欲表示 CMake 當中的特殊字元時也可用 \ 標記
set(bar "alpha beta gamma") message("\${bar}: ${bar}")
上面程式碼輸出
${bar}: alpha beta gamma
布林值:
在 CMake 當中有些字串被賦予了布林值的意義,大小寫差異會被忽略:
以下這些會被視為 FALSE:
- OFF
- FALSE
- N
- NO
- 0
- "" (空字串)
- 沒被指派值的變數
- NOTFOUND
- 任何結尾是 -NOTFOUND 的字串
以下這些會被視為 TRUE:
- ON
- TRUE
- Y
- YE
- YES
- 1
- 其他不歸類為 FALSE 的字串
數字計算:
CMake 當中並沒有提供直接的數學運算子,所有的符號組合最終都會形成字串或串列。數學計算必須透過 math 指令解釋:
math(EXPR var "1 + 2 * 3") message("var = ${var}")輸出結果為7
沒有留言:
張貼留言