cmake configure_file()实例
时间: 2023-07-15 09:12:19 浏览: 51
假设你有一个源文件 `config.h.in`,需要根据一些配置选项生成一个配置文件 `config.h`,可以使用 `configure_file()` 函数来实现。
下面是一个简单的示例:
```
# config.h.in
#define PROJECT_NAME "@PROJECT_NAME@"
#define PROJECT_VERSION "@PROJECT_VERSION@"
```
```
# CMakeLists.txt
cmake_minimum_required(VERSION 3.10)
project(MyProject VERSION 1.0)
configure_file(config.h.in config.h)
add_executable(myapp main.cpp)
target_include_directories(myapp PRIVATE ${CMAKE_CURRENT_BINARY_DIR})
```
在上面的示例中,`config.h.in` 文件中的 `@PROJECT_NAME@` 和 `@PROJECT_VERSION@` 是占位符,用于在 CMake 中进行替换。`configure_file()` 函数的第一个参数是输入文件,第二个参数是输出文件。当 CMake 构建项目时,它会自动将 `config.h.in` 文件中的占位符替换为实际的值,并将结果写入 `config.h` 文件中。
在 `CMakeLists.txt` 文件中,我们使用 `project()` 命令来定义项目名称和版本号。然后,我们使用 `configure_file()` 函数来生成 `config.h` 文件,并将其添加到可执行文件的编译过程中。
最后,我们使用 `target_include_directories()` 函数将生成的头文件目录添加到可执行文件的编译过程中,以便可以在代码中包含 `config.h` 文件。