Cmake 启用预编译头文件

相关资料

使用说明

指令

1
2
3
target_precompile_headers(<target>
<INTERFACE|PUBLIC|PRIVATE> [header1...]
[<INTERFACE|PUBLIC|PRIVATE> [header2...] ...])

代码实例

1
2
3
4
5
6
7
8
9
10
11
cmake_minimum_required(VERSION 3.16)

add_executable(${PROJECT_NAME} main.cc)
target_precompile_headers(${PROJECT_NAME}-lib
PRIVATE
[[ "fmt/core.h" ]] # local source
<unordered_map>]] # system lib
)

# reuse existed precompile headers
target_precompile_headers(${PROJECT_NAME} REUSE_FROM ${PROJECT_NAME})

如果使用尖括号(如 <unordered_map>)或者显式双中括号(如 [[ "fmt/core.h"]]
指定头文件,那么 CMake 将按照原样进行处理,否则(如 "other_source.h",将
按照相当于当前源代码目录来解析。