Skip to content

Commit adda098

Browse files
authored
[Rootfs] Automatically get list of available Go and Rust toolchains (#224)
1 parent bcd6bbb commit adda098

File tree

1 file changed

+16
-2
lines changed

1 file changed

+16
-2
lines changed

src/Rootfs.jl

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -373,6 +373,14 @@ struct LLVMBuild <: CompilerBuild
373373
end
374374
LLVMBuild(v::VersionNumber) = LLVMBuild(v, (;))
375375

376+
struct GoBuild <: CompilerBuild
377+
version::VersionNumber
378+
end
379+
380+
struct RustBuild <: CompilerBuild
381+
version::VersionNumber
382+
end
383+
376384
getversion(c::CompilerBuild) = c.version
377385
getabi(c::CompilerBuild) = c.abi
378386

@@ -396,6 +404,12 @@ const available_llvm_builds = [
396404
LLVMBuild(v"12.0.0"),
397405
]
398406

407+
const available_go_builds =
408+
GoBuild.(unique(sort(VersionNumber.(join.(getindex.(split.(filter(x->startswith(x, "Go."), keys(load_artifacts_toml(joinpath(dirname(@__DIR__), "Artifacts.toml")))), '.'), Ref(2:4)), '.')))))
409+
410+
const available_rust_builds =
411+
RustBuild.(unique(sort(VersionNumber.(join.(getindex.(split.(filter(x->startswith(x, "RustBase."), keys(load_artifacts_toml(joinpath(dirname(@__DIR__), "Artifacts.toml")))), '.'), Ref(2:4)), '.')))))
412+
399413
"""
400414
gcc_version(p::AbstractPlatform, GCC_builds::Vector{GCCBuild},
401415
compilers::Vector{Symbol}=[:c];
@@ -525,8 +539,8 @@ function choose_shards(p::AbstractPlatform;
525539
ps_build::VersionNumber=v"2021.08.10",
526540
GCC_builds::Vector{GCCBuild}=available_gcc_builds,
527541
LLVM_builds::Vector{LLVMBuild}=available_llvm_builds,
528-
Rust_build::VersionNumber=v"1.57.0",
529-
Go_build::VersionNumber=v"1.17.7",
542+
Rust_build::VersionNumber=maximum(getversion.(available_rust_builds)),
543+
Go_build::VersionNumber=maximum(getversion.(available_go_builds)),
530544
archive_type::Symbol = (use_squashfs[] ? :squashfs : :unpacked),
531545
bootstrap_list::Vector{Symbol} = bootstrap_list,
532546
# Because GCC has lots of compatibility issues, we always default to

0 commit comments

Comments
 (0)