03-cmake语法-变量,字符串
CMake的基本數(shù)據(jù)類型是字符串(不區(qū)分大小寫),一組字符串在一起稱為列表(list)。
條件判斷中的取值情況如下表:
| 真 | 1, ON, YES, TRUE, Y, 非0的數(shù)? |
| 假 | 0, OFF, NO, FALSE, N, IGNORE, 空字符串,以“-NOTFOUND”結(jié)尾的字符串 |
?
變量顯式定義
set(VAR a b c)# 輸出 VAR = a;b;cmessage("VAR = ${VAR}")?set(VAR a)就是一個(gè)字符串,set(VAR?a b c)就是一個(gè)字符串list。
set(CMAKE_INSTALL_PREFIX "/usr/local" CACHE PATH "Installation Directory")CACHE PATH表示的含義暫時(shí)還沒搞清楚。
??
常用部分內(nèi)部變量
使用是,使用?set 命令賦值。
比如:
set(CMAKE_BUILD_TYPE "Debug")
| CMAKE_C_COMPILER | 指定C編譯器 |
| CMAKE_CXX_COMPILER | ? |
| CMAKE_C_FLAGS | 編譯C文件時(shí)的選項(xiàng),如-g;也可以通過add_definitions添加編譯選項(xiàng) |
| EXECUTABLE_OUTPUT_PATH | 可執(zhí)行文件的存放路徑 |
| LIBRARY_OUTPUT_PATH | 庫文件路徑 |
| CMAKE_BUILD_TYPE | build?類型(Debug, Release, ...),CMAKE_BUILD_TYPE=Debug |
| BUILD_SHARED_LIBS | 生成分享庫 |
| BUILD_LIBS | 生成靜態(tài)庫 |
| CMAKE_BINARY_DIR | 一樣的,cmake 的時(shí)候,所在的路徑。(一般,我們新建build,然后cd進(jìn)去,再cmake ..,這個(gè)路徑就是build)(一般我們希望cmake生成的東西單獨(dú)在一個(gè)文件夾,就是指這里) |
| PROJECT_BINARY_DIR | |
| <projectname>_BINARY_DIR | |
| CMAKE_SOURCE_DIR | 一樣的,表示工程頂層目錄。(和以上的區(qū)別,就是這的路徑為build之外,一般指源代碼所在文件路徑)。 |
| PROJECT_SOURCE_DIR | |
| <projectname>_SOURCE_DIR | |
| CMAKE_CURRENT_SOURCE_DIR | ?CMakeLists.txt 所在路徑 |
| CMAKE_CURRRENT_BINARY_DIR | ?如果是 in-source 編譯(沒有新建build),它跟 CMAKE_CURRENT_SOURCE_DIR 一致,如果是 out-of-source 編譯(新建了build),他指的是 target 編譯目錄。 |
| CMAKE_CURRENT_LIST_FILE | ?輸出調(diào)用這個(gè)變量的 CMakeLists.txt 的完整路徑 |
| CMAKE_CURRENT_LIST_LINE | ?輸出這個(gè)變量所在的行 |
| CMAKE_MODULE_PATH | ?這個(gè)變量用來定義自己的 cmake 模塊所在的路徑。也就是xxx.cmake文件 |
| EXECUTABLE_OUTPUT_PATH? | ?用來重新定義最終結(jié)果的存放目錄,可執(zhí)行文件 |
| LIBRARY_OUTPUT_PATH | ?用來重新定義最終結(jié)果的存放目錄,庫文件 |
| PROJECT_NAME | 返回通過 PROJECT 指令定義的項(xiàng)目名稱 |
| CMAKE_BUILD_TYPE *** | 生成 Debug 版和 Release 版的程序 |
| CMAKE_CXX_FLAGS_DEBUG? | ***為Debug,使用這個(gè)參數(shù)生成 Makefile |
| CMAKE_C_FLAGS_DEBUG? | ***為Debug,使用這個(gè)參數(shù)生成 Makefile |
| CMAKE_CXX_FLAGS_RELEASE? | ***為Release,使用這個(gè)參數(shù)生成 Makefile |
| CMAKE_C_FLAGS_RELEASE? | ***為Release,使用這個(gè)參數(shù)生成 Makefile |
示例:
PROJECT(main) CMAKE_MINIMUM_REQUIRED(VERSION 2.6) SET(CMAKE_SOURCE_DIR .)SET(CMAKE_CXX_FLAGS_DEBUG "$ENV{CXXFLAGS} -O0 -Wall -g -ggdb") SET(CMAKE_CXX_FLAGS_RELEASE "$ENV{CXXFLAGS} -O3 -Wall")AUX_SOURCE_DIRECTORY(. DIR_SRCS) ADD_EXECUTABLE(main ${DIR_SRCS})
將工程設(shè)置為Debug模式:
SET(CMAKE_BUILD_TYPE "Debug")?
變量引用
使用 ${} 比如:
${CMAKE_BINARY_DIR}
?
參考
http://www.cnblogs.com/xianghang123/p/3556423.html
https://www.jianshu.com/p/44ba033c262a
?
轉(zhuǎn)載于:https://www.cnblogs.com/alexYuin/p/8874579.html
總結(jié)
以上是生活随笔為你收集整理的03-cmake语法-变量,字符串的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Redis的安装部署
- 下一篇: eclipse 将javaWeb项目转化