添加子目录
ADD_SUBDIRECTORY(dir)
添加可执行文件
ADD_EXECUTABLE(target file1 file2 ...)
添加动态库
ADD_LIBRARY(libname SHARED ${LIB_SRC})
添加静态库
ADD_LIBRARY(libname STATIC ${LIB_SRC})
添加头文件目录
INCLUDE_DIRECTORIES()
添加链接目录
LINK_DIRECTORIES(dir1 dir2 dir3 ...)
TARGET_LINK_LIBRARIES(target library1
设置目标输出名称(需要写在ADD_xxx后面)
SET_TARGET_PROPERTIES(target PROPERTIES OUTPUT_NAME new_name)
设置构建时不清理已有目标
SET_TARGET_PROPERTIES(target PROPERTIES CLEAN_DIRECT_OUTPUT 1)
添加宏
ADD_DEFINITIONS(-Dxxx -Dxxx)
设置编译选项
add_compile_options
set(CMAKE_CXX_FLAGS "-std=c++11 ${CMAKE_CXX_FLAGS}")
使能汇编
ENABLE_LANGUAGE( ASM)
交叉编译
SET(CMAKE_SYSTEM_NAME Linux)
SET(CMAKE_C_COMPILER /opt/arm-linux-gcc)
SET(CMAKE_CXX_COMPILER /opt/arm-linux-g++)
设置链接脚本
set_target_properties(${TARGET_NAME} PROPERTIES LINK_DEPENDS ${LINKER_SCRIPT})
常用环境变量
工程顶层目录
CMAKE_BINARY_DIR
PROJECT_BINARY_DIR
CMAKE_SOURCE_DIR
PROJECT_SOURCE_DIR