CMake实战

摘要

CMake实战


常用功能

常用命令

#//TODO:作用,含义,注意事项(如绝对路径相对路径等)
add_library(hello SHARED ${PROJECT_SOURCE_DIR}/libhello/hello.c)
命令 说明
add_definitions(-DFOO -DBAR …) 添加预定义宏FOO(和BAR?)相当于VS里的预处理器,
aux_source_directory(. DIR_SRCS) 查找当前目录下的所有源文件,并将名称保存到 DIR_SRCS 变量

CMake常用变量

变量名 变量说明
PROJECT_NAME 返回通过PROJECT指令定义的项目名称
PROJECT_SOURCE_DIR CMake源码地址,即cmake命令后指定的地址
PROJECT_BINARY_DIR 运行cmake命令的目录,通常是PROJECT_SOURCE_DIR下的build目录
CMAKE_MODULE_PATH 定义自己的cmake模块所在的路径
CMAKE_CURRENT_SOURCE_DIR 当前处理的CMakeLists.txt所在的路径
CMAKE_CURRENT_LIST_DIR 当前文件夹路径
CMAKE_CURRENT_LIST_FILE 输出调用这个变量的CMakeLists.txt的完整路径
CMAKE_CURRENT_LIST_LINE 输出这个变量所在的行
EXECUTABLE_OUTPUT_PATH 生成可执行文件路径
LIBRARY_OUTPUT_PATH 生成库的文件夹路径
CMAKE_BUILD_TYPE 指定基于make的产生器的构建类型(Release,Debug)
CMAKE_C_FLAGS *.C文件编译选项,如 -std=c99 -O3 -march=native
CMAKE_CXX_FLAGS *.CPP文件编译选项,如 -std=c++11 -O3 -march=native
CMAKE_CURRENT_BINARY_DIR target编译目录
CMAKE_INCLUDE_PATH 环境变量,非cmake变量
CMAKE_LIBRARY_PATH 环境变量
CMAKE_STATIC_LIBRARY_PREFIX 静态库前缀, Linux下默认为lib
CMAKE_STATIC_LIBRARY_SUFFIX 静态库后缀,Linux下默认为.a
CMAKE_SHARED_LIBRARY_PREFIX 动态库前缀,Linux下默认为lib
CMAKE_SHARED_LIBRARY_SUFFIX 动态库后缀,Linux下默认为 .so
BUILD_SHARED_LIBS 如果为ON,则add_library默认创建共享库
CMAKE_INSTALL_PREFIX 配置安装路径,默认为/usr/local
CMAKE_ABSOLUTE_DESTINATION_FILES 安装文件列表时使用ABSOLUTE DESTINATION 路径
CMAKE_AUTOMOC_RELAXED_MODE 在严格和宽松的automoc模式间切换
CMAKE_BACKWARDS_COMPATIBILITY 构建工程所需要的CMake版本
CMAKE_COLOR_MAKEFILE 开启时,使用Makefile产生器会产生彩色输出
CMAKE_ALLOW_LOOSE_LOOP_CONSTRUCTS 用来控制IF ELSE语句的书写方式

相关/参考链接

CMake 入门实战: https://www.hahack.com/codes/cmake/
PICMake: https://github.com/zdzhaoyong/PICMake

发布了88 篇原创文章 · 获赞 61 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/a435262767/article/details/91377153