【发布时间】:2019-07-24 14:03:16
【问题描述】:
出于某种原因,如果 CMake 的 FindThreads 失败,我想扩展一个查找模块(在我的情况下为 FindThreads)来做一些特定的事情。对于我们软件系统其他部分的普通开发人员来说,这应该是透明的,这样他/她可以像往常一样调用find_package(Threads),所以我不想给自己的查找模块一个专有名称。
我的想法是将我自己的FindThreads.cmake 添加到包含在CMAKE_MODULE_PATH 的文件夹中。因为CMAKE_MODULE_PATH有优先级find_package(Threads)会执行我自己的FindThreads.cmake。
但是,在我自己的FindThreads.cmake 中,我需要执行find_package(Threads ...) 以便它执行CMake 的原始FindThreads.cmake。 怎么做?
如果我自己的FindThreads.cmake 失败了,应该尝试添加一个特定的线程库。
不幸的是,find_package 没有选项 NO_CMAKE_MODULE_PATH 可以退回到 CMake 自己的查找模块,并且似乎无法将搜索路径(例如 ${CMAKE_ROOT}/Modules)传递给 find_package 以覆盖 @ 987654337@.
版本
- Linux 上的 CMake 3.5 (Ubuntu 16.04)
- Windows 上的 CMake 3.14
【问题讨论】:
标签: cmake