cmake语法

添加子目录

add_subdirectory(dir)

添加指定目录下可识别的源码文件到变量

aux_source_directory(path _SRC)

过滤部分文件

list(REMOVE_ITEM _SRC file1 file2 ...)

复制文件

configure_file(src_file dst COPYONLY)

添加可执行文件

add_executable(target file1 file2 ...)
如果只是定义目标,暂时不包含源文件可以这样定义:add_executable(target "")

添加动态库

add_library(libname SHARED ${LIB_SRC})

添加静态库

add_library(libname STATIC ${LIB_SRC})

添加头文件目录

INCLUDE_DIRECTORIES()

添加链接目录

link_directories(dir1 dir2 dir3 ...)

设置链接库

target_link_libraries(target library1 <debug | optimized> library2 ...)

设置目标输出名称(需要写在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}")

为指定目标设置编译选项

SET_TARGET_PROPERTIES(target PROPERTIES COMPILE_FLAGS "-Dxxx -fxxx")

使能汇编

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})

常用环境变量

工程顶层目录

PROJECT_SOURCE_DIR

编译目录

CMAKE_BINARY_DIR

当前CMakeLists.txt所在目录

CMAKE_CURRENT_LIST_DIR

原文地址:https://www.cnblogs.com/zl-yang/p/9118236.html