构建状态:
该存储库包含用于使用BinaryBuilder.jl构建朱莉娅包装的二进制文件的食谱。
为了贡献新食谱,您可以
BinaryBuilder.run_wizard()
,在成功构建所有请求的平台后,它将自动向该存储库打开拉动请求Yggdrasil使用BinaryBuilder.jl的master
版本构建Tarballs,这需要Julia 1.3.0或更高版本。请注意,与v0.1.4相比,此binaryBuilder.jl版本有一些差异,并且生成的构建器略有不同。欢迎您使用为binaryBuilder编写的构建商。
BuildKite CI用于测试建筑商可以成功生产TARBALL。
如果您希望在打开拉动请求之前先测试手动buildscript,建议您在Julia 1.3上安装BinaryBuilder.jl
或以下任何版本并运行julia --color=yes build_tarballs.jl --verbose --debug
当地人。在MacOS上,您需要安装docker
才能正常工作。
要触发上游软件包的新版本的构建,只需打开拉动请求即可根据需要更新构建器。这通常归结为仅更新版本编号和源(例如,用于存档的url和哈希,或git存储库的修订版),但在某些情况下可能需要进行更多更改。
二元建筑商的最后版本利用了Julia 1.3中的Artifacts
系统运输。这意味着将二进制构造器不再生成build.jl
将放置在Julia软件包的deps/
文件夹中的JL文件,而是生成放置在Juliabinary -Wrappers组织中的整个Julia软件包(俗称为“ JLL”软件包)。对Yggdrasil的合并拉请求会导致这些包装器软件包的新版本正在生成,上传和注册,从而使您的客户端朱莉娅代码可以using LibFoo_jll
简单地调用,以使您的二进制文件无需Pkg.build()
步骤。 (当然,朱莉娅1.3+是这种情况)。
我们鼓励Julia开发人员将jll套件用于其库。阅读二进制建筑商的文档,以学习如何使用它们。
以下是朱莉娅软件包的拉动请求的一些示例,用于使用JLL软件包为用户提供预构建的二进制文件:
您可以在朱莉娅(Julia)的博客“ PKG + BinaryBuilder-下一代”上的这篇文章中阅读有关Artifacts
系统以及对可重复性的重要性的更多信息。
我们希望我们相信您为什么要切换到仲量联合套件很重要。但是,如果您确实需要支持Julia V1.2或以前的版本,则应继续使用BinaryProvider.jl。如前一节所述,构建后不再生成一个build.jl
文件,因为它不用于JLL软件包,而是您需要自己生成它:在Yggdrasil的顶级目录中,有一个脚本要做此: generate_buildjl.jl
。它需要三个位置论点:
build_tarballs.jl
脚本的路径owner/name
。如果省略,此默认为JuliaBinaryWrappers/BuilderName_jll.jl
例如,要获取最新版本的Zlib build.jl
文件,您可以运行以下命令:
julia --color=yes generate_buildjl.jl Z/Zlib/build_tarballs.jl
相反,如果您想获取名为zlib-v1.2.11+6的标签的build_tarballs.jl
文件,则必须运行命令
julia --color=yes generate_buildjl.jl Z/Zlib/build_tarballs.jl JuliaBinaryWrappers/Zlib_jll.jl Zlib-v1.2.11+6
注意:您必须手动将prefix
作为第一个参数添加到生成的build.jl
文件中的所有Product
构造函数中。这是必要的,因为BinaryBuilder v0.2+
和BinaryProvider
之间的语法已经差异。
请记住,您还需要所有直接和间接依赖性的build.jl
文件。
以下是使用此系统安装其库的包装的一些示例:
BinaryProvider.jl
build.jl
脚本用于先前的发行版。