-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathpopulate_prefix.jl
58 lines (51 loc) · 1.63 KB
/
populate_prefix.jl
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
using Pkg;
using Base.BinaryPlatforms;
Pkg.activate(; temp=true);
Pkg.add("JLLPrefixes");
Pkg.add("ArgParse");
using JLLPrefixes
using ArgParse
function parse_commandline()
s = ArgParseSettings()
@add_arg_table s begin
"--prefix"
help = "starting value of array"
arg_type = String
default = "/tmp/pmjll"
"--arch"
help = "architecture (x86_64, aarch64)"
arg_type = String
default = "aarch64"
"--os"
help = "operating system (linux, macos)"
arg_type = String
default = "macos"
"--pmver"
help = "polymake version"
arg_type = String
default = ""
end
return parse_args(s)
end
parsed_args = parse_commandline()
prefix = parsed_args["prefix"]
arch = parsed_args["arch"]
os = parsed_args["os"]
pmver = parsed_args["pmver"]
platform = Platform(arch, os)
deps = [PackageSpec(; name="Ninja_jll"), PackageSpec(; name="MozillaCACerts_jll")]
if pmver != ""
pmver = VersionNumber(pmver)
if pmver.major < 100
pmver = VersionNumber(100*pmver.major, 100*pmver.minor)
end
push!(deps, PackageSpec(; name="polymake_jll", version=Pkg.Types.VersionSpec(pmver)))
else
push!(deps, PackageSpec(; name="polymake_jll"))
end
artifact_paths = collect_artifact_paths(deps; platform=platform)
deploy_artifact_paths(joinpath(prefix,"$os-$arch"), artifact_paths; strategy=:copy)
println("done: ", joinpath(prefix,"$os-$arch"))
println("For sources see:")
println(" ",join(map(x->"https://github.com/JuliaBinaryWrappers/$(x.name).jl", collect(keys(artifact_paths))),"\n "))
println();