cmake安装“ noconfig”脚本有哪些用途?就是“ XXXTarget-noconfig.cmake”

时间:2018-06-21 04:40:10

标签: c++ cmake

我正在尝试为find_package编写必要的脚本,以导入一些没有cmake构建或至少没有导出其目标但在其他安装路径中的库的目标:{{ 1}}。例如,对于某些导出目标的库Foo,将生成以下文件:

CMAKE_PREFIX_PATH

...以及项目提供的:

lib/cmake/Foo/FooTargets.cmake
lib/cmake/Foo/FooTargets-noconfig.cmake

...找到依赖项,然后包括生成的FooTargets.cmake。

似乎生成的FooTargets.cmake通常仅通过通配符包含noconfig版本:

lib/cmake/Foo/FooConfig.cmake   (and maybe FooConfigVersion.cmake)

但是这些配置指的是什么?什么是“ noconfig”?

我猜配置是指调试或发布,并且在CMakeLists.txt脚本中未区分这些配置时,它只是默认生成“ noconfig”吗?

1 个答案:

答案 0 :(得分:0)

CMAKE_BUILD_TYPE变量指定单配置生成器上的构建类型(配置)(例如,在生成make或ninja的构建脚本时)。该变量的值可以是空字符串(例如,在Qt Creator中加载CMake项目并选择Default配置时)。

如果CMAKE_BUILD_TYPE设置为Release,则install(EXPORT ...)生成

lib/cmake/Foo/FooTargets.cmake
lib/cmake/Foo/FooTargets-release.cmake

如果将CMAKE_BUILD_TYPE设置为空字符串,则install(EXPORT ...)会生成

lib/cmake/Foo/FooTargets.cmake
lib/cmake/Foo/FooTargets-noconfig.cmake
相关问题