cmake 安装"noconfig"脚本有什么用?即。 "XXXTarget-noconfig.cmake"
What are the cmake install "noconfig" scripts for? Ie. "XXXTarget-noconfig.cmake"
我正在尝试为find_package
编写必要的脚本,以便为某些没有 cmake 构建或至少没有导出其目标的库导入目标,但以其他方式在安装路径中:CMAKE_PREFIX_PATH
.例如,对于某些导出目标的库 Foo,有生成的文件:
lib/cmake/Foo/FooTargets.cmake
lib/cmake/Foo/FooTargets-noconfig.cmake
。以及项目提供的:
lib/cmake/Foo/FooConfig.cmake (and maybe FooConfigVersion.cmake)
。它查找依赖项,然后包含生成的 FooTargets.cmake。
似乎生成的FooTargets.cmake通常只包含noconfig版本,通过通配符:
# Load information for each installed configuration.
get_filename_component(_DIR "${CMAKE_CURRENT_LIST_FILE}" PATH)
file(GLOB CONFIG_FILES "${_DIR}/FooTargets-*.cmake")
foreach(f ${CONFIG_FILES})
include(${f})
endforeach()
但是这些配置指的是什么?什么是"noconfig"?
我猜配置是指调试或发布,当这些在 CMakeLists.txt 脚本中没有区分时,它只是生成"noconfig"作为默认值?
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
相关文章:
- 如何创建一个CMake变量,除非显式重写,否则使用默认值
- 使用C++库在Android项目中修改gradle中的cmake参数,用于插入指令的测试
- CMake-按正确顺序将项目与C运行时对象文件链接
- 使用CMake创建QML插件
- cmake如何在fedora工作站中找到boost静态库包
- 使用CMake检测支持的C++标准
- CMake项目Boost库错误:Boost/config/compiler/gcc.hpp:165:10:致命错误:cs
- 如何使用CMake编译.proto文件来生成.grpcp.pb.cc和.grpc.pb.h文件
- cmake在我的项目中所需的所有静态库都不成功
- 在CMakeLists.txt的安装功能中使用.cmake文件有什么用
- 无法链接 CMake 中的本地库
- libssh 的函数在构建 libssh 时无法在 Qt 和 cmake 错误中找到
- 如何在Ubuntu中使用cmake设置qt4
- 使用cmake从源代码构建MySQL连接器/C++失败(与以前的声明冲突)
- 为什么 cmake 许可证<>样式不包括?
- cmake更新缓存的变量
- 将--whole archive链接器选项与CMake和具有其他库依赖项的库一起使用
- 使外部项目可用于find_package CMake
- 生成MRPT库时cmake配置失败
- cmake 安装"noconfig"脚本有什么用?即。 "XXXTarget-noconfig.cmake"