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