CMake基本語法

2021-09-24 11:09:19 字數 3002 閱讀 5184

* 型別

分類

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並不直接構建最終的軟體,而是產生其他工具的腳步 如...