cmake config文件例子
时间: 2023-10-21 13:19:34 浏览: 38
下面是一个简单的 CMake 配置文件示例:
```cmake
# 设置要求的 CMake 最低版本
cmake_minimum_required(VERSION 3.10)
# 设置项目名称
project(MyProject)
# 添加可执行文件
add_executable(MyExecutable main.cpp)
# 添加链接库
target_link_libraries(MyExecutable MyLibrary)
```
这个示例的作用是定义了一个名为 `MyProject` 的项目,其中包含一个名为 `MyExecutable` 的可执行文件,它依赖于一个名为 `MyLibrary` 的库。这个示例还指定了要求的 CMake 最低版本为 3.10。
相关问题
cmake config命令的所有用法
CMake 的 `config` 命令可以用于生成 CMake 配置文件,该配置文件可以用于帮助其他项目查找并链接到当前项目。
以下是 `config` 命令的常用用法:
1. `config` 命令的基本用法:
```
configure_file(input_file output_file [COPYONLY])
```
该命令将读取 `input_file` 文件的内容,并将其中的变量替换为 CMake 的变量,然后将结果写入 `output_file` 文件。如果指定了 `COPYONLY` 参数,则只会将文件复制到输出目录,而不进行变量替换。
2. `config` 命令中的变量替换:
在 `config` 命令中,可以使用 `${VAR}` 的形式来引用 CMake 中的变量,例如:
```
configure_file(input_file output_file @ONLY)
```
在上面的例子中,`@ONLY` 参数表示只替换 `${VAR}` 形式的变量,而不替换其它形式的变量。
3. `config` 命令中的路径替换:
在 `config` 命令中,可以使用 `${VAR}` 的形式来引用 CMake 中的变量,并使用 `PATH` 选项将其转换为绝对路径形式,例如:
```
configure_file(input_file output_file @ONLY PATH_VARS VAR)
```
在上面的例子中,`PATH_VARS` 参数表示将 `${VAR}` 形式的变量转换为绝对路径形式。
4. `config` 命令中的自定义标记:
在 `config` 命令中,可以使用自定义的标记来指定需要进行替换的内容,例如:
```
configure_file(input_file output_file @ONLY ESCAPE_QUOTES)
```
在上面的例子中,`ESCAPE_QUOTES` 表示需要对引号进行转义。
5. `config` 命令中的条件语句:
在 `config` 命令中,可以使用条件语句来根据不同的条件生成不同的配置文件,例如:
```
if (UNIX)
configure_file(input_file_unix output_file @ONLY)
else()
configure_file(input_file_win output_file @ONLY)
endif()
```
在上面的例子中,如果当前平台是 UNIX,则使用 `input_file_unix` 文件生成 `output_file` 文件,否则使用 `input_file_win` 文件生成 `output_file` 文件。
6. `config` 命令中的选项:
`config` 命令还支持许多其他选项,例如 `NEWLINE_STYLE` 可以指定换行符的风格,`COPYONLY` 可以只复制文件而不替换其中的变量等等。具体的选项可以参考 CMake 的官方文档。
以上是 `config` 命令的常用用法,具体选项和用法可以参考 CMake 的官方文档。
cmake中configure_package_config_file()的使用例子
下面是一个简单的`CMakeLists.txt`中`configure_package_config_file()`函数的使用例子:
```cmake
# 设置安装目录
set(INSTALL_LIB_DIR lib CACHE PATH "Installation directory for libraries")
set(INSTALL_INCLUDE_DIR include CACHE PATH "Installation directory for headers")
# 配置文件模板
configure_package_config_file(
"${CMAKE_CURRENT_SOURCE_DIR}/MyProjectConfig.cmake.in"
"${CMAKE_CURRENT_BINARY_DIR}/MyProjectConfig.cmake"
INSTALL_DESTINATION ${INSTALL_LIB_DIR}/cmake/MyProject
)
# 安装目标
install(
FILES "${CMAKE_CURRENT_BINARY_DIR}/MyProjectConfig.cmake"
DESTINATION ${INSTALL_LIB_DIR}/cmake/MyProject
)
# 安装头文件和库文件
install(
DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/include/
DESTINATION ${INSTALL_INCLUDE_DIR}
)
install(
TARGETS myproject
EXPORT MyProjectTargets
DESTINATION ${INSTALL_LIB_DIR}
)
```
这个例子中,我们首先定义了安装目录的路径,然后使用`configure_package_config_file()`函数生成了一个`MyProjectConfig.cmake`文件,并将这个文件安装到指定的目录下。这个函数需要传入两个参数,第一个参数是配置文件模板的路径,第二个参数是生成的配置文件的路径,其中模板文件中可以使用`@PACKAGE_NAME@`、`@PACKAGE_VERSION@`等变量,这些变量会被自动替换为实际的值。我们还通过`INSTALL_DESTINATION`参数指定了生成的配置文件的安装目录。
最后,我们使用`install()`函数将目标文件安装到指定的目录下。这个例子中,我们将生成的`MyProjectConfig.cmake`文件安装到`${INSTALL_LIB_DIR}/cmake/MyProject`目录下,将头文件安装到`${INSTALL_INCLUDE_DIR}`目录下,将库文件安装到`${INSTALL_LIB_DIR}`目录下。