CMake 笔记

Posted by 王灿辉 on 2020-09-17

自动化构建工具

自动化构建工具能够提供构建和链接的基础设施。最终会安装和使用什么,很大程度上取决于你的操作系统和你的“品味”。

常见的自动化构建工具有:

  • Unix Makefile
  • Ninja
  • Visual Studio

CMake

  • CMake 是一个构建指令生成器,用于描述构建系统应当如何操作才能编译代码。
  • CMake 负责为构建系统生成相应的指令。
  • CMake 清单文件命名必须是 CMakeLists.txt,区分大小写。
  • CMake 指令不区分大小写。

前置声明

设置 CMake 所需的最低版本。如果使用低于改版本的 CMake,则会引发致命错误。

1
cmake_minimum_required(VERSION 3.5 FATAL_ERROR)

声明项目名称和所用的编程语言。

1
project(myproj01 LANGUAGES C)

添加构建目标

添加一个可执行目标。

1
add_executable(hello-world hello-world.c)

添加一个静态库目标。

1
add_library(hello-static STATIC hello.h hello.c)

添加一个动态库目标。

1
add_library(hello-shared SHARED hello.h hello.c)

链接库

为目标添加依赖的链接库。

1
target_link_libraries(hello-world hello-shared)

设置目标属性

重命名一个目标。库文件会自动添加前缀和后缀。

1
set_target_properties(libhello-static PROPERTIES OUTPUT_NAME hello)

设置库文件版本号。

1
set_target_properties(libhello-shared PROPERTIES VERSION 1.2 SOVERSION 1)

安装设置

安装目标文件。

1
2
3
4
5
6
install(
    TARGETS hello-world hello-shared hello-static
    RUNTIME DESTINATION bin
    LIBRARY DESTINATION lib
    ARCHIVE DESTINATION lib
)

安装普通文件。

1
2
3
4
install(
	FILES hello.h
	DESTINATION include/hello
)


赞赏支持
微信赞赏
微信赞赏
支付宝
支付宝