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