【发布时间】:2018-12-01 09:18:20
【问题描述】:
当一个库用 CMake 定义了一个构建并且遇到了为自己构建一个安装包的麻烦时,将会有一个XXXConfig.cmake。
如果一个库无法将其目标导出到 CMake,CMake 会尝试通过提供尝试定位此类库的 FindXXX.cmake 脚本来弥合差距。
在文档中,首先尝试使用FindXXX.cmake(模块模式),并且只有在失败时才会尝试使用XXXConfig.cmake(配置模式)。但这对我来说似乎真的倒退了。
问题是,例如,我从源代码构建了 CURL,而 ConfigXXX 生成的目标名称与 FindXXX 不同,因此,当尝试使用它时,它失败了,因为 FindXXX 负责 find_package 请求并加载了不同的目标名称超出了我的预期。
我至少可以告诉 CMake 以相反的方式做事吗?先配置模式。
我知道我可以完全禁用模块模式,但我宁愿将其作为备用选项。
【问题讨论】: