(七)CMake變數及其設定

2021-10-10 22:01:03 字數 2202 閱讀 9617

變數是cmake語言的最基本的儲存單元。變數的值始終為字串型別,儘管一些命令將會將其理解為其他型別的值。命令set()unset()用於顯式地設定或重置乙個變數,其他命令有可能改變變數的語義。變數名是區分大小寫、可以是幾乎所有的文字型別,但是我們還是建議大家命名只是用加(+)、減(-)和點劃線(-.)。變數可以通過setunset的選項設定不一樣的範圍:

如何列印乙個變數?使用message函式,分為三個訊息型別:fatal_error(致命錯誤) warning(警告) status(正常)

message(warning "opencv requires android sdk tools revision 14 or newer.")
通過命令set可乙個普通、快取和環境變數的值。語法格式:

set(

... [parent_scope]

)

...這一部分可以是零個以上的值,也就是意味著可以為空。多個引數將以分號分隔的列表形式連線,以形成要設定的實際變數值。如果值為空,那麼等價於unset

訪問乙個值,格式${} $

cmake_binary_dir

project_binary_dir

_binary_dir

這三個變數指代的內容是一致的,如果是 in source 編譯,指的就是工程頂層目錄,如果是 out-of-source 編譯,指的是工程編譯發生的目錄。project_binary_dir 跟其他指令稍有區別,現在,你可以理解為他們是一致的。

cmake_source_dir(主cmake所在路徑)

project_source_dir

_source_dir

這三個變數指代的內容是一致的,不論採用何種編譯方式,都是工程頂層目錄。

也就是在 in source 編譯時,他跟 cmake_binary_dir 等變數一致。

project_source_dir 跟其他指令稍有區別,現在,你可以理解為他們是一致的。

cmake_current_source_dir

指的是當前處理的 cmakelists.txt 所在的路徑,比如上面我們提到的 src 子目錄。

cmake_currrent_binary_dir

如果是 in-source 編譯,它跟 cmake_current_source_dir 一致,如果是 out-of-source 編譯,他指的是 target 編譯目錄。

使用我們上面提到的 add_subdirectory(src bin)可以更改這個變數的值。

使用 set(executable_output_path 《新路徑》)並不會對這個變數造成影響,它僅僅修改了最終目標檔案存放的路徑。

cmake_current_list_file

輸出呼叫這個變數的 cmakelists.txt 的完整路徑

cmake_current_list_line

輸出這個變數所在的行

cmake_module_path

這個變數用來定義自己的 cmake 模組所在的路徑。如果你的工程比較複雜,有可能會自己編寫一些 cmake 模組,這些 cmake 模組是隨你的工程發布的,為了讓 cmake 在處理cmakelists.txt 時找到這些模組,你需要通過 set 指令,將自己的 cmake 模組路徑設定一下。

比如set(cmake_module_path $/cmake)

這時候你就可以通過 include 指令來呼叫自己的模組了。

executable_output_path 和 library_output_path

分別用來重新定義最終結果的存放目錄,前面我們已經提到了這兩個變數。

project_name

返回通過 project 指令定義的專案名稱。

對於gcc編譯器選項而言,

set(cxx  "-cxx -wall -pthread"

)set(cmake_cxx_flags $

)

其實若只有乙個引數,可以這麼寫:

set(cmake_cxx_flags -pthread)
[1]

cmake 內建變數

cmake 內建變數 資訊變數 cmake system 系統名稱,例如 linux 2.6.22 freebsd 5.4 release windows 5.1 camke system name 系統名稱,如 linux freebsd windows cmake system version ...

CMake常用變數

cmake變數 cmake共用七種變數,如下所示 目錄 1 提供資訊的變數。2 控制變數。3 描述系統的變數。4 控制構建過程的變數。5 語言變數。6 ctest變數。7 cpack變數。first 提供資訊的變數 cmake binary dir cmake source dir cmake cu...

Linux環境變數及其設定

概念 環境變數 environment variables 一般是指在作業系統中用來指定作業系統執行環境的一些引數。簡單來說就是乙個變數,用於儲存系統的環境引數。作用 通過修改環境變數的值,靈活的配置系統執行環境引數 使系統環境配置更加靈活 path 指定命令的搜尋路徑 home 指定使用者的主要工...