CMake筆記(2)預定義變數
阿新 • • 發佈:2019-02-20
CMake預定義變數
- CMAKE_MAJOR_VERSION cmake主版本號,如2.8.6中的2。
- CMAKE_MINOR_VERSION cmake次版本號,如2.8.6中的8。
- CMAKE_PATCH_VERSION cmake補丁等級,如2.8.6中的6。
- CMAKE_SYSTEM 系統名稱,例如Linux-2.6.22。
- CAMKE_SYSTEM_NAME 不包含版本的系統名,如Linux。
- CMAKE_SYSTEM_VERSION 系統版本,如2.6.22。
- CMAKE_SYSTEM_PROCESSOR 處理器名稱,如i686。
- UNIX 在所有的類UNIX平臺為TRUE,包括OS X和cygwin。
- WIN32 在所有的win32平臺為TRUE,包括cygwin。
- CMAKE_SOURCE_DIR、PROJECT_SOURCE_DIR、<projectname>_SOURCE_DIR,這三個變數指代的內容是一致的,是工程頂層目錄。
- CMAKE_BINARY_DIR、PROJECT_BINARY_DIR、<projectname>_BINARY_DIR,這三個變數指代的內容是一致的,如果是in source編譯,指得就是工程頂層目錄,如果 是out-of-source編譯,指的是工程編譯發生的目錄。
-
CMAKE_CURRENT_SOURCE_DIR,指的是當前處理的CMakeLists.txt所在的路徑。
-
CMAKE_CURRRENT_BINARY_DIR,如果是in-source編譯,它跟CMAKE_CURRENT_SOURCE_DIR一致,如果是out-ofsource 編譯,他指的是target編譯目錄。
-
CMAKE_CURRENT_LIST_FILE,輸出呼叫這個變數的CMakeLists.txt的完整路徑。
- CMAKE_CURRENT_LIST_LINE,輸出這個變數所在的行,可以定位當前CMakeList.txt檔案語句執行的位置。
- CMAKE_MODULE_PATH ,定義自己的cmake模組所在的路徑。
- EXECUTABLE_OUTPUT_PATH ,重新定義目標二進位制可執行檔案的存放位置
- LIBRARY_OUTPUT_PATH ,重新定義目標連結庫檔案的存放位置
- PROJECT_NAME ,返回通過PROJECT指令定義的專案名稱
- CMAKE_ALLOW_LOOSE_LOOP_CONSTRUCTS ,用來控制IF ELSE語句的書寫方式
- CMAKE_BUILD_TYPE,控制 Debug 和 Release 模式的構建,例如:
在CMakeList.txt檔案中
SET(CMAKE_BUILD_TYPE Debug)
使用命令列引數
cmake DCMAKE_BUILD_TYPE=Release
- BUILD_SHARED_LIBS, 控制預設的庫編譯方式,如果未進行設定,使用ADD_LIBRARY時又沒有指定庫型別,預設編譯生成的庫都是靜態庫
- CMAKE_C_FLAGS, 設定C編譯選項
- CMAKE_CXX_FLAGS, 設定C++編譯選項
- CROSS_TOOLCHAIN_PREFIX ,指定編譯器路徑
- CMAKE_C_COMPILER,指定c編譯器
- CMAKE_CXX_COMPILER,指定c++編譯器
- CMAKE_INSTALL_PREFIX,指定安裝路徑
- CMAKE_INCLUDE_PATH,配合 FIND_FILE() 以及 FIND_PATH() 使用。如果標頭檔案沒有存放在常規路徑(/usr/include, /usr/local/include等),則可以通過這些變數就行彌補。如果不使用 FIND_FILE 和 FIND_PATH的話,CMAKE_INCLUDE_PATH,沒有任何作用。
-
CMAKE_LIBRARY_PATH,配合 FIND_LIBRARY() 使用,否則沒有任何作用。
-
CMAKE_MODULE_PATH,cmake 為上百個軟體包提供了查詢器(finder):FindXXXX.cmake當使用非cmake自帶的finder時,需要指定finder的路徑,這就是CMAKE_MODULE_PATH,配合 FIND_PACKAGE()使用。