cmake 條件判斷

2021-10-01 20:07:47 字數 2064 閱讀 7339

以下內容來自cmake官方文件: 傳送門

if()

elseif() # optional block, can be repeated

else() # optional block

endif()

else和endif後面的括號中的可寫可不寫,如果寫了,就必須和if中的一致。

如果不記得優先順序,就加括號,簡單粗暴~

表示式true

false

說明constant 為1, on, yes, true, y, 或非零數值

0, off, no, false, n, ignore, notfound,空字串,或者帶-notfound字尾

布林值大小寫不敏感;如果與這些常量都不匹配,則將其視為變數或字串

已經定義且不是false的變數

未定義或者是false的變數

變數就是字串

not

condition為false

condition為true

and

cond1和cond2同時為true

cond1和cond2至少有乙個為false

command command-name

command-name是乙個已經定義的cammand, macro或function

command-name未定義

policy policy-id

policy-id存在

policy-id不存在

policy可以理解為cmake的語法,當語句無法相容不同的cmake版本時,可以判斷policy-id來做相容性處理

target target-name

target-name是add_executable(), add_library(), add_custom_target()定義過的target

target-name未定義

test test-name

test-name為add_test()建立過的測試名稱

test-name未建立

exists path

存在路徑為path的檔案或目錄

不存在路徑為path的檔案或目錄

file1 is_newer_than file2

file1檔案時間戳比file2大,其中乙個檔案不存在,兩個檔案時間戳相同

其他情況

路徑需要時全路徑

is_directory path

path為目錄

path不為目錄

path必須是全路徑

is_symlink path

path為鏈結

path不為連線

path必須是全路徑

is_absolute path

path為絕對路徑

path不為絕對路徑

matches regex

variable與正規表示式regex匹配成功

variable與正規表示式匹配失敗

less

var1和var2均為數字且var1小於var2

var1不小於var2

其他數值比較操作符:greater , equal, less_equal, greater_equal

var1和var2為字串且按照字典順序var1小於var2

var1不小於var2

其他字串比較操作符:strgreater, strequal, strless_equal , strgreater_equal

左邊版本號小於右邊版本號

左邊版本號大於等於右邊版本號

其他的版本號比較操作符:version_greater, version_equal, version_less_equa, version_greater_equal

右邊list中包含左邊

不包含defined

已定義變數

未定義變數

cache {}

已定義cache variable

未定義env {}

存在環境變數

不存在環境變數

條件判斷 條件篩選?不如條件判斷!

怎樣加快招投標工作流程呢?在此給您支個招,讓excel幫你提高工作效率吧。以下是考評 商是否合格的列表,得分小於60或缺評,則判為 不合格 得分大於60,則判為 合格 為了方便大家學習,開拓思路,在此提供兩種解題方法。01 條件篩選法 開啟篩選功能 數字篩選 小於 在 自定義自動篩選方式 中,分別輸...

條件判斷if

if用於條件判斷,適用於以下情形 1 判斷驅動器 檔案或資料夾是否存在,用 if exist 語句 2 判斷某兩個字串是否相等,用 if 字串1 字串2 語句 3 判斷某兩個數值是否相等,用 if 數值1 equ 數值2 語句 4 判斷某個變數是否已經被賦值,用 if defined str 語句 ...

if 條件判斷

if 語句用於有條件的執行。語法如下 if assignment expression suite elif assignment expression 可選子句 suite 可以多個 elif else 可選子句 suite對於簡單語句,可以寫為一行,但不推薦。它通過對表示式逐個求值直至找到乙個真...