/
build.jl
43 lines (38 loc) · 2.98 KB
/
build.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
using BinaryProvider # requires BinaryProvider 0.3.0 or later
# Parse some basic command-line arguments
const verbose = "--verbose" in ARGS
const prefix = Prefix(get([a for a in ARGS if a != "--verbose"], 1, joinpath(@__DIR__, "usr")))
products = [
LibraryProduct(prefix, String["libnettle"], :libnettle),
ExecutableProduct(prefix, "nettle-hash", :nettle_hash),
]
# Download binaries from hosted location
bin_prefix = "https://github.com/staticfloat/NettleBuilder/releases/download/v3.4-0"
# Listing of files generated by BinaryBuilder:
download_info = Dict(
BinaryProvider.Linux(:aarch64, :glibc, :blank_abi) => ("$bin_prefix/Nettle.aarch64-linux-gnu.tar.gz", "89f768ba67ab3f977a4528c68bfb02bc922620da4f3907109f84ad520ed56ade"),
BinaryProvider.Linux(:armv7l, :glibc, :eabihf) => ("$bin_prefix/Nettle.arm-linux-gnueabihf.tar.gz", "6fc8551dca3887e33ceebd1989ff2479a8d41875c8a595a5aa8a82c35a92b27c"),
BinaryProvider.Linux(:i686, :glibc, :blank_abi) => ("$bin_prefix/Nettle.i686-linux-gnu.tar.gz", "c9e201a1c707b060432dbed3a93141dafd043f5fa4a22c3e9c2ad5b6906b3f6d"),
BinaryProvider.Windows(:i686, :blank_libc, :blank_abi) => ("$bin_prefix/Nettle.i686-w64-mingw32.tar.gz", "db155ee4e60763480efb718855c109f7d9efa9766fa8e75af6aec30bf302b59f"),
BinaryProvider.Linux(:powerpc64le, :glibc, :blank_abi) => ("$bin_prefix/Nettle.powerpc64le-linux-gnu.tar.gz", "5b8d7fff2e85b2afd3e4b467f2e1df7e6df6b30d7cdde8d3067fffc6fea47682"),
BinaryProvider.MacOS(:x86_64, :blank_libc, :blank_abi) => ("$bin_prefix/Nettle.x86_64-apple-darwin14.tar.gz", "d89e558ab2cbc0da5d051db973a019ef80ddcc73dc0ee2dc6c27bd607957cf83"),
BinaryProvider.Linux(:x86_64, :glibc, :blank_abi) => ("$bin_prefix/Nettle.x86_64-linux-gnu.tar.gz", "d1d028c3d656914ecc426ecdb1bd1df1c120677fe3ecfe74d13f292456d37aae"),
BinaryProvider.FreeBSD(:x86_64, :blank_libc, :blank_abi) => ("$bin_prefix/Nettle.x86_64-unknown-freebsd11.1.tar.gz", "e9ce7318378d4883073edc1764662435753b5d3911443d5ff3bb7d00c8f0811c"),
BinaryProvider.Windows(:x86_64, :blank_libc, :blank_abi) => ("$bin_prefix/Nettle.x86_64-w64-mingw32.tar.gz", "f0fc724c5b383d7b2411d604c868f43ca78063f4e0eb5377360d23565224ecee"),
)
# Install unsatisfied or updated dependencies:
unsatisfied = any(!satisfied(p; verbose=verbose) for p in products)
if haskey(download_info, platform_key())
url, tarball_hash = download_info[platform_key()]
if unsatisfied || !isinstalled(url, tarball_hash; prefix=prefix)
# Download and install binaries
install(url, tarball_hash; prefix=prefix, force=true, verbose=verbose)
end
elseif unsatisfied
# If we don't have a BinaryProvider-compatible .tar.gz to download, complain.
# Alternatively, you could attempt to install from a separate provider,
# build from source or something more even more ambitious here.
error("Your platform $(triplet(platform_key())) is not supported by this package!")
end
# Write out a deps.jl file that will contain mappings for our products
write_deps_file(joinpath(@__DIR__, "deps.jl"), products)