* 型別
分類
bool string path filepath - 配置變數型別
list
轉換
推導
* 具名
宣告週期:set 宣告,$,unset取消
# 定義乙個變數 判斷是否定義用defined
set(《變數名》 《變數值》)
# 引用乙個變數
$# 取消乙個變數
unset(《變數名》)
內部變數:
系統環境變數 $env
工程源目錄和bin目錄
工程自身變數
符號檔案、靜態庫、動態庫和執行輸出目錄變數
區別系統
配置編譯器
編譯引數
鏈結引數
配置其他
常量 真:1 on yes true y
假:0 off no false n ignore notfound
set(cmake_exe_linker_flags "$ /subsystem:console")
分支控制
# 單分支
if()
set()
endif()
# 雙分支
if()
set()
else()
set()
endif()
# 多分支
if()
set()
elseif()
set()
else()
set()
endif()
迴圈控制
# 列表遍歷
# 第一種表達
foreach(in lists )
message("")
endforeach()
# 第二種表達
foreach(${})
message("")
endforeach()
# 遍歷多項
foreach(item item1 item2 item3})
message("$")
endforeach()
# 迴圈n次
foreach(loop_var range num)
endforeach()
foreach(loop_var range 0 num 1)
endforeach()
基本形式
function(《函式名》 《變數名》 ...)
endfunction()
函式型別
呼叫方式
string(toupper ...)
string(regex match ...)
標準函式
message 列印訊息
add_subdirectory 包含子cmakelists.txt目錄
include 包含其他*.cmake檔案
include_directories 標頭檔案包含目錄
link_directories 庫鏈結目錄
target_link_libraries 新增鏈結庫
add_definitions 新增編譯引數或巨集
add_dependencies 為target指定依賴的target
add_executable 新增可執行程式target
add_library 新增靜態庫或者動態庫target
add_compile_definitions
add_compile_options
add_link_options
target_compile_definitions 為目標新增編譯引數或巨集
target_compile_options
target_link_options
target_include_directories 為目標新增包含目錄
target_link_directories
target_link_libraries
externalproject_add 新增乙個外部target,多用於安裝,更新等
get_cmake_property 獲取cmake工程的所有變數,包括自定義和自帶變數
source_group 為ide工程設定分組,vs相當於篩選器
find_path 從預設目錄和指定目錄查詢標頭檔案,並返回結果
find_library 從預設目錄和指定目錄查詢庫檔案,並返回結果
find_package(name) 從cmake_module_path目錄中查詢find.cmake 模組,並放入工程中使用
file 讀寫檔案建立刪除檔案,重新命名檔案等等
target
cmake認為乙個執行體、乙個庫或者自定義的target為乙個target,通過add_executable,add_library,add_custom_target、externalproject_add來增加target,簡單來說通過這三個函式新增的,就是乙個target,可通過if(target target-name)來判斷
command
簡單來講就是巨集和函式,通過if(command command-name)來判斷
Cmake之基本語法
cmake注意就是乙個cmakelists.txt.參考下面 下面開始乙個乙個語法的研讀 cmake minimum required version 3.5 檢查cmake的版本,至少為3.5 cmake policy set cmp0025 new 暫時步研究,看不懂 project absl ...
Cmake基本語法和使用
1.初識cmakelist.txt檔案 說明 cmake語法中,命令名字不區分大小寫,但引數和變數有區分。cmake minimum required version 2.6 宣告需求的cmake最低版本 project projname 專案名稱 非強制性,但最好加上 set src list m...
Cmake語法詳解
一 什麼是cmake 在android studio 2.2及以上,構建原生庫的預設工具是cmake。cmake是乙個跨平台的構建工具,可以用簡單的語句來描述所有平台的安裝編譯過程。能夠輸出各種各樣的makefile或者project檔案。cmake並不直接構建最終的軟體,而是產生其他工具的腳步 如...