code style

2016年10月21日 星期五

CMake筆記(2) - 基本語法

CMake基本語法
基本觀念,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

沒有留言:

張貼留言