Cmake(跨平臺安裝,編譯工具)

CMake是一個跨平臺的安裝(編譯)工具,可以用簡單的語句來描述所有平臺的安裝(編譯過程)。它能夠輸出 各種格式的 makefile或者project文件, 能測試編譯器所支持的C++特性,類似UNIX下的auotconf.

cmake是遞歸工作方式,父目錄定義的變量子目錄是繼承的.
下面是常用的CMake函數(詳細可見:http://www.cmake.org/HTML/Documentation.html)

SET() 變量設置
SUBDIRS() 包含子目錄
ADD_LIBRARY() 庫編譯
ADD_EXECUTABLE() 執行文件編譯
AUX_SOURCE_DIRECTORY() 獲取某個目錄下的所有源文件
PROJECT() 設置項目根目錄
PROJECT (PojectName) is a special variable used in the MSVC to create
the project for the compiler, it also defines two useful variables for
CMAKE: ProjectName_SOURCE_DIR and ProjectName_BINARY_DIR.

ADD_DEFINITIONS: Adds -D define flags to the command line of C and C++ compilers.

ADD_DEFINITIONS(-DFOO -DBAR ...)
INCLUDE_DIRECTORIES() 頭文件目錄
LINK_DIRECTORIES() 庫文件目錄
LINK_LIBRARIES() 通用鏈接庫(目錄下所有執行文件都鏈接其指定的庫)
TARGET_LINK_LIBRARIES() 指定鏈接庫

例子1

 PROJECT (HELLO)
ADD_EXECUTABLE(Hello Hello.c File2.c File3.c File4.c)

SET(HELLO_SRCS Hello.c File2.c File3.c)
IF (WIN32) SET(HELLO_SRCS ${HELLO_SRCS} WinSupport.c)
ELSE (WIN32)
SET(HELLO_SRCS ${HELLO_SRCS} UnixSupport.c)
ENDIF (WIN32)
ADD_EXECUTABLE (Hello ${HELLO_SRCS})
# look for the Tcl library
FIND_LIBRARY(TCL_LIBRARY NAMES tcl tcl84 tcl83 tcl82 tcl80 PATHS /usr/lib /usr/local/lib)
IF (TCL_LIBRARY)
TARGET_ADD_LIBRARY (Hello TCL_LIBRARY)
ENDIF (TCL_LIBRARY)
使用cmake的一般步驟
1 創建一個新的源碼子目錄
2 在其上一層目錄下中cmakelist.txt中的subdir加入新的子目錄
3 在子目錄中創建新的cmakelist.txt文件,ok
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章