Platforms License

CRuby

为 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 使用。

Swift Package Manager

将此仓库作为依赖项包含在您的项目中

.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 作为您的远程仓库,并将您的自定义内容推回到那里。

Xcode

将此仓库包含在您的项目中。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

支持的 Ruby 配置

macOS 系统

使用 xcode-select 选择的 Xcode

cfg-cruby --mode xcode

此配置不需要 pkg-config 文件。

macOS Homebrew 或 Linux -dev 包

cfg-cruby --mode pkgconfig --name <pkg-name>

使用 pkg-config --list-all 来查看您安装了什么。

pkg-config 设置不能直接被 SwiftPM 使用。 cfg-cruby 使用它来创建与 SwiftPM 兼容的 CRuby.pc

RBEnv 或 RVM

cfg-cruby --mode rbenv --name <version>

或者

cfg-cruby --mode rvm --name <ruby name>

其他

如果您自己构建了 Ruby,或者正在使用保留常规布局的不同版本管理器,那么

cfg-cruby --path <full path to Ruby directory>

所需的路径是指向一个名为 ruby-*something* 的目录,该目录包含包括 libincludebin 的子目录。

贡献

欢迎 - github / johnfairh@gmail.com

许可

根据 MIT 许可证分发。