這段時間因為項目進展不順,翻譯手冊的事情暫時被擱置;今天總算能抽出一點點時間略微彌補一下。CMake的命令在上一節已經介紹完了,因為總結這些用法需要大塊的時間去構思例子,暫且省去這段loos ends,待以后有假期時補上;先進入另一主題:CMake變量。
CMake變量按功能分有主要有四種不同的類型:1.) 提供信息的變量[共53個];2.) 改變行為的變量[共23個];3.) 描述系統的變量[共24個];4.)控制構建過程的變量[共22個]。此外還有一些變量因編譯使用的語言不同而不同,將它們歸為第五類[共29個]。 由於變量比較多,這里只給出變量的大概描述;具體作用可使用cmake --help-variable variable_name命令查看。
一、提供信息的變量
VAR#1-1 : CMAKE_AR
靜態庫的歸檔工具名字。
VAR#1-2 : CMAKE_BINARY_DIR
構建樹的頂層路徑。
VAR#1-3 : CMAKE_BUILD_TOOL
實際構建過程中使用的工具。
VAR#1-4 : CMAKE_CACHEFILE_DIR
文件CMakeCache.txt所在的路徑。
VAR#1-5 : CMAKE_CACHE_MAJOR_VERSION
用於創建CMakeCache.txt文件的CMake的主版本號。
VAR#1-6 : VCMAKE_CACHE_MINOR_VERSION
用於創建CMakeCache.txt文件的CMake的子版本號。
VAR#1-7 : CMAKE_CACHE_PATCH_VERSION
用於創建CMakeCache.txt文件的CMake的補丁號。
VAR#1-8 : CMAKE_CFG_INTDIR
構建時,與構建配置相對應的輸出子路徑(只讀)。
VAR#1-9 : CMAKE_COMMAND
指向CMake可執行文件的完整路徑。
VAR#1-10 : CMAKE_CROSSCOMPILING
指出CMake是否正在交叉編譯。
VAR#1-11 : CMAKE_CTEST_COMMAND
與cmake一起安裝的ctest命令的完整路徑。
VAR#1-12 : CMAKE_CURRENT_BINARY_DIR
當前正在被處理的二進制目錄的路徑。
VAR#1-13 : CMAKE_CURRENT_LIST_DIR
當前正在處理的listfile的完整目錄。
VAR#1-14 : CMAKE_CURRENT_LIST_FILE
當前正在處理的listfile的完整路徑。
VAR#1-15 : CMAKE_CURRENT_LIST_LINE
當前正在處理的listfile的行號。
VAR#1-16 : CMAKE_CURRENT_SOURCE_DIR
指向正在被處理的源碼目錄的路徑。
VAR#1-17 : CMAKE_DL_LIBS
包含dlopen和dlclose函數的庫的名稱。
VAR#1-18 : CMAKE_EDIT_COMMAND
指向cmake-gui或ccmake的完整路徑。
VAR#1-19 : CMAKE_EXECUTABLE_SUFFIX(_<LANG>)
本平台上可執行文件的后綴。
VAR#1-20 : CMAKE_EXTRA_GENERATOR
構建本工程所需要的額外生成器。
VAR#1-21 : CMAKE_EXTRA_SHARED_LIBRARY_SUFFIXES
附加的共享庫后綴(除CMAKE_SHARED_LIBRARY_SUFFIX以外,其他可以識別的共享庫的后綴名。)
VAR#1-22 : CMAKE_GENERATOR
用於構建該工程的生成器。
VAR#1-23 : CMAKE_HOME_DIRECTORY
指向源碼樹頂層的路徑。
VAR#1-24 : CMAKE_IMPORT_LIBRARY_PREFIX(_<LANG>)
需要鏈接的導入庫的前綴。
VAR#1-25 : CMAKE_IMPORT_LIBRARY_SUFFIX(_<LANG>)
需要鏈接的導入庫的后綴。
VAR#1-26 : CMAKE_LINK_LIBRARY_SUFFIX
需要鏈接的庫的后綴。
VAR#1-27 : CMAKE_MAJOR_VERSION
cmake的主版本號(例如2.X.X中的2)。
VAR#1-28 : CMAKE_MAKE_PROGRAM
參見CMAKE_BUILD_TOOL。
VAR#1-29 : CMAKE_MINOR_VERSION
cmake的次版本號(例如X.4.X中的4)。
VAR#1-30 : CMAKE_PARENT_LIST_FILE
當前正在被處理listfile的父listfile的全路徑。
VAR#1-31 : CMAKE_PATCH_VERSION
cmake的補丁號(例如X.X.3中的3)。
VAR#1-32 : CMAKE_PROJECT_NAME
當前工程的工程名。
VAR#1-33 : CMAKE_RANLIB
靜態庫的隨機化工具的名字(比如linux下的ranlib)。
VAR#1-34 : CMAKE_ROOT
CMake的安裝路徑。
VAR#1-35 : CMAKE_SHARED_LIBRARY_PREFIX(_<LANG>)
被鏈接的共享庫的前綴。
VAR#1-36 : CMAKE_SHARED_LIBRARY_SUFFIX(_<LANG>)
被鏈接的共享庫的后綴。
VAR#1-37 : CMAKE_SHARED_MODULE_PREFIX(_<LANG>)
被鏈接的可加載模塊的前綴。
VAR#1-38 : CMAKE_SHARED_MODULE_SUFFIX(_<LANG>)
被鏈接的共享庫的后綴。
VAR#1-39 : CMAKE_SIZEOF_VOID_P
void指針的長度。
VAR#1-40 : CMAKE_SKIP_RPATH
如果變量為真,不為編譯出的可執行文件添加運行時的路徑信息。默認添加。
VAR#1-41 : CMAKE_SOURCE_DIR
源碼樹的頂層路徑。
VAR#1-42 : CMAKE_STANDARD_LIBRARIES
鏈接到所有可執行文件和共享庫上的庫。這是一個list。
VAR#1-43 : CMAKE_STATIC_LIBRARY_PREFIX(_<LANG>)
被鏈接的靜態庫的前綴。
VAR#1-44 : CMAKE_STATIC_LIBRARY_SUFFIX(_<LANG>)
被鏈接的靜態庫的后綴。
VAR#1-45 : CMAKE_TWEAK_VERSION
cmake的tweak版本號(例如X.X.X.1中的1)。
VAR#1-46 : CMAKE_USING_VC_FREE_TOOLS
如果用到了免費的visual studio工具,設置為真。
VAR#1-47 : CMAKE_VERBOSE_MAKEFILE
設置該變量為真將創建完整版本的makefile。
VAR#1-48 : CMAKE_VERSION
cmake的完整版本號;格式為major.minor.patch[.tweak[-id]]。
VAR#1-49 : PROJECT_BINARY_DIR
指向工程構建目錄的全路徑。
VAR#1-50 : PROJECT_NAME
向project命令傳遞的工程名參數。
VAR#1-51 : PROJECT_SOURCE_DIR
當前工程的源碼路徑。
VAR#1-52 : [Project name]_BINARY_DIR
給定工程的二進制文件頂層路徑。
VAR#1-53 : [Project name]_SOURCE_DIR
給定工程的源碼頂層路徑。