【发布时间】:2021-02-19 12:55:05
【问题描述】:
我尝试创建一个 CMake 脚本集合,这些脚本应该为我们的开发人员团队和我们正在处理的所有项目提供一些有用的宏和功能。这些脚本应推广到所有开发机器(Win10 和 Centos Linux),项目的顶级 CMakeLists.txt 可以包含此集合。
根据我从 CMake 文档中读到的内容,include() 应该用于导入这些脚本。但是,当然,CMake 不知道文件系统上的位置。文档指向CMAKE_MODULE_PATH,但我想不出一种方法来从全局范围的“外部”设置它,例如环境变量或 CMake 配置值。从项目的 CMake 文件中设置它会降低可移植性,尤其是在 Windows 上,用户可能会选择脚本的安装目录。
我也不想将脚本集合部署到 CMake 的安装目录中。虽然它可以工作,但将我自己的脚本与 CMake 发行版中的脚本混在一起感觉很脏。
我可以改用find_package(),还可以提供一个包配置文件并使用CMAKE_PREFIX_PATH 环境变量。但根据我对文档的理解,这意味着构建依赖项,例如图书馆。
我在这里和其他地方也发现了与我类似的问题,但它们通常是关于导入外部项目以构建自己的项目 (-> find_package())。当然,还有关于编译过程的 include 目录。如果我只是没有找到正确的问题和答案,请指出我那里。
那么,让 CMake 了解我的脚本集合的最佳/正确方法是什么?最好是在项目的 CMakeLists.txt 中只需要调用 include()。
【问题讨论】:
标签: cmake build-system