如何在自定义Homebrew Formula中安装CMake配置文件至/usr/local/lib/cmake
解决Homebrew Formula中安装CMake配置文件到lib/cmake目录的问题
嘿,我完全懂你遇到的这个小麻烦——Homebrew确实没有现成的lib/cmake.install快捷函数,但咱们完全可以用基础的文件操作方法搞定,而且步骤超简单!
核心思路
Homebrew Formula里的prefix变量对应着默认安装根目录(一般就是/usr/local),所以你要的/usr/local/lib/cmake路径,在Formula里直接用prefix/"lib/cmake"就能访问到。咱们直接用install方法或者目录操作函数就能把配置文件放过去。
具体实现方案
方案1:单个文件安装
如果你的YORPLibConfig.cmake和相关文件(比如YORPLibConfigVersion.cmake)是单独生成在编译目录里的,直接指定目标路径安装就行:
# 先创建目标子目录(避免目录不存在报错,可选但更稳妥) (prefix/"lib/cmake/YORPLib").mkpath # 安装主配置文件 install "build/YORPLibConfig.cmake", to: prefix/"lib/cmake/YORPLib" # 如有版本配置文件也一起安装 install "build/YORPLibConfigVersion.cmake", to: prefix/"lib/cmake/YORPLib"
方案2:批量安装整个目录
如果你的CMake配置文件都集中在一个子目录(比如编译后生成的build/cmake/YORPLib),直接复制整个目录更高效:
# 创建目标目录 (prefix/"lib/cmake/YORPLib").mkpath # 递归复制目录下所有内容 cp_r "build/cmake/YORPLib/.", prefix/"lib/cmake/YORPLib"
方案3:用lib.install的路径映射
你也可以借助lib.install,通过路径映射的方式直接把配置文件目录放到lib/cmake下:
lib.install "build/lib/cmake/YORPLib" => "cmake/YORPLib"
这样Homebrew会自动把build/lib/cmake/YORPLib里的所有内容,安装到lib/cmake/YORPLib目录下。
额外注意事项
记得在你的库的CMakeLists.txt里生成配置文件时,尽量使用CMAKE_INSTALL_PREFIX变量来设置路径,避免硬编码绝对路径,这样生成的YORPLibConfig.cmake才能在Homebrew的安装环境下正常工作。
内容的提问来源于stack exchange,提问作者FrenchOwl
相关产品推荐
相关产品推荐

