当find_package失败时,CMake获取已尝试软件包的列表

时间:2019-02-14 14:05:10

标签: cmake

我有一个cmake项目,当find_package失败时我想获取信息。

我的设置是这样的:我有一个项目,该项目可以编译一些库并导出目标。软件包将导出到CMake软件包注册表。然后,我有另一个依赖它的项目。

问题是,库项目也具有依赖项。为了使导入程序包知道,我们在配置文件中使用find_dependency

find_package(libs REQUIRED)由于缺少依赖项而失败时,我想提取它尝试过的包的路径。我将使用该信息来更新前缀路径列表,以便下次找到丢失的依赖关系,但是我只想在导入失败的原因是缺少依赖关系时这样做。

有什么方法可以在失败的查找包中获取这些信息吗?

1 个答案:

答案 0 :(得分:0)

来自find_package的CMake文档:

  

CMake在搜索具有适当版本的软件包的安装时已考虑的所有配置文件都存储在cmake变量<PackageName>_CONSIDERED_CONFIGS中,相关版本在<PackageName>_CONSIDERED_VERSIONS中。

因此,使用<PackageName>_CONSIDERED_CONFIGS<PackageName>_CONSIDERED_VERSIONS可以告诉CMake找到了哪些软件包。