为 SwiftPM 或 Xcode 封装 libruby
。可以轻松地为您的 Ruby 安装重新配置。
请参阅 RubyGateway,获取一个高级的 Swift-Ruby 集成框架。
已测试环境
以及 Ruby 版本
CRuby
默认设置为使用 macOS 系统 Ruby,并使用 Xcode 提供 C 头文件。
如果您想使用不同的 Ruby,请使用 cfg-cruby
脚本来重写构建配置文件。
对于 macOS 系统 Ruby 之外的选项,cfg-cruby
会生成一个名为 CRuby.pc
的自定义 pkg-config 文件,供 swift build
使用,以及一个名为 CRuby.xcconfig
的 Xcconfig 文件,供 Xcode 使用。
将此仓库作为依赖项包含在您的项目中
.package(url: "https://github.com/johnfairh/CRuby/", majorVersion: 2)
要使用 macOS 系统默认值之外的 Ruby,您需要重新配置。例如,设置由 rbenv
管理的 Ruby 3.3.0
swift package edit CRuby
./Packages/CRuby/cfg-cruby --mode rbenv --name 3.3.0
export PKG_CONFIG_PATH=$(pwd)/Packages/CRuby:$PKG_CONFIG_PATH
swift build
您可以让 CRuby
包保持编辑模式,或者 fork 该仓库,使用该 fork 作为您的远程仓库,并将您的自定义内容推回到那里。
将此仓库包含在您的项目中。git 子模块是一个不错的选择。无论哪种方式,您都会有一个名为 CRuby
的目录。然后,转到您要进行 import CRuby
的 Target 的构建设置,并在Swift Compiler - Search Paths 下找到Import Paths。添加指向您的 CRuby
目录的路径 - 您可以使用 ${SRCROOT}
来代替包含项目文件的目录。
检查 Xcode 是否对 import CRuby
行感到满意。这使用的是 macOS 系统默认的 Ruby,可能是一个非常古老的 2.6 版本。
如果您想使用不同的 Ruby,请运行 cfg-cruby
。这会创建一个名为 CRuby.xcconfig
的文件,您需要将其包含在适当的 Target 中。请从 这里 开始,获取有关使用 xcconfig 文件的帮助。
就是这样:Xcode 现在应该根据您选择的版本解析 CRuby
。
使用 xcode-select
选择的 Xcode
cfg-cruby --mode xcode
此配置不需要 pkg-config 文件。
cfg-cruby --mode pkgconfig --name <pkg-name>
使用 pkg-config --list-all
来查看您安装了什么。
pkg-config 设置不能直接被 SwiftPM 使用。 cfg-cruby
使用它来创建与 SwiftPM 兼容的 CRuby.pc
。
cfg-cruby --mode rbenv --name <version>
或者
cfg-cruby --mode rvm --name <ruby name>
如果您自己构建了 Ruby,或者正在使用保留常规布局的不同版本管理器,那么
cfg-cruby --path <full path to Ruby directory>
所需的路径是指向一个名为 ruby-*something*
的目录,该目录包含包括 lib
、include
和 bin
的子目录。
欢迎 - github / johnfairh@gmail.com
根据 MIT 许可证分发。