1
Fork 0
hermetic_cc_toolchain/contrib/build-and-archive

57 lines
2.2 KiB
Bash
Executable File

#!/bin/bash
set -xeuo pipefail
zig_version=$(awk -F'"' '/^ZIG_VERSION=/{print $2}' build)
#./build -j$(nproc) x86_64-linux-musl baseline
#./build -j$(nproc) x86_64-macos-none baseline
#./build -j$(nproc) aarch64-linux-musl baseline
#./build -j$(nproc) aarch64-macos-none apple_a14
#./build -j$(nproc) x86_64-windows-gnu baseline
rm -fr zig-linux-x86_64-${zig_version}
rm -fr zig-macos-x86_64-${zig_version}
rm -fr zig-linux-aarch64-${zig_version}
rm -fr zig-macos-aarch64-${zig_version}
rm -fr zig-windows-x86_64-${zig_version}
cp -r out/zig-x86_64-linux-musl-baseline zig-linux-x86_64-${zig_version}
cp -r out/zig-x86_64-macos-none-baseline zig-macos-x86_64-${zig_version}
cp -r out/zig-aarch64-linux-musl-baseline zig-linux-aarch64-${zig_version}
cp -r out/zig-aarch64-macos-none-apple_a14 zig-macos-aarch64-${zig_version}
cp -r out/zig-x86_64-windows-gnu-baseline zig-windows-x86_64-${zig_version}
for os_arch in linux-{x86_64,aarch64} macos-{x86_64,aarch64} windows-x86_64; do
if [[ $os_arch == windows-x86_64 ]]; then
zig=zig.exe
else
zig=zig
fi
mv zig-${os_arch}-${zig_version}/{bin/${zig},}
rmdir zig-${os_arch}-${zig_version}/bin
# copy some clarifying files for future readers
mkdir zig-${os_arch}-${zig_version}/patches
cp README-patched.md zig-${os_arch}-${zig_version}/patches/README.md
cp 13051.patch "$0" zig-${os_arch}-${zig_version}/patches/
done
# x86_64 should have libs in lib/, rather than in lib/zig/.
for os in linux macos windows; do
mv zig-${os}-x86_64-${zig_version}/{lib,lib2}
mv zig-${os}-x86_64-${zig_version}/{lib2/zig,lib}
rmdir zig-${os}-x86_64-${zig_version}/lib2
done
tar cJf zig-linux-x86_64-${zig_version}.tar.xz zig-linux-x86_64-${zig_version}/ &
tar cJf zig-macos-x86_64-${zig_version}.tar.xz zig-macos-x86_64-${zig_version}/ &
tar cJf zig-linux-aarch64-${zig_version}.tar.xz zig-linux-aarch64-${zig_version}/ &
tar cJf zig-macos-aarch64-${zig_version}.tar.xz zig-macos-aarch64-${zig_version}/ &
# 7z is the quickest, so blocking on it first. Then wait for tars to complete.
7z a zig-windows-x86_64-${zig_version}.zip zig-windows-x86_64-${zig_version}/
wait %1 %2 %3 %4
sha256sum *.tar.xz *.zip
ls -l *.tar.xz *.zip