是否有传统的方式来发布特定于供应商的C包以及Swift代码库?

时间:2018-05-09 17:07:48

标签: swift swift-package-manager

我想使用我的Swift客户端代码中用C编写的现有复杂构建的库。

让我们以OpenSSL为例。大多数现有解决方案使用以Swift PM [IBM]理解的方式绑定到系统范围的库[PerfectlySoft]或转换的源树。

我不想使用系统提供的软件包,因为兼容性不确定:我想在构建服务器和部署目标上使用完全相同的版本。它还使安装过程复杂化。我也不想使用转换后的源代码树,因为这种方法很脆弱,如果我没弄错的话,没有现成的工具可以自动执行。

我尝试的是检查我的repo原始版本的OpenSSL,并为其提供自定义模块图和伞形标题。我面临的主要问题是Swift PM无法将其视为开箱即用的模块:

$ swift test
.../Tests.swift:5:8: error: no such module 'OpenSSL'

但是,使用正确的-I-L自定义标志的Xcode会构建它。

我很高兴将OpenSSL版本保存在我的仓库中,甚至是预配置的,我甚至可以在make之前使用swift test之类的额外构建步骤。尽管它降低了开发人员的人体工程学,但它并不比安装系统范围的lib差得多。我不喜欢的是使用Xcode作为唯一的构建工具。

理想情况下,我想让Swift PM将适当的-I-L-l传递给编译器。任何例子或提示都将不胜感激。

0 个答案:

没有答案