lpac/scripts/build-ci.sh
Coelacanthus 0fa28bb172
chore: enable LTO by default and add w/o LTO CI for debug (#177)
* chore: enable LTO by default and add w/o LTO CI for debug

* Better performance, small size, in theory.
* Cover more test points.

Signed-off-by: Coelacanthus <uwu@coelacanthus.name>

* fix: github action failed

---------

Signed-off-by: Coelacanthus <uwu@coelacanthus.name>
Co-authored-by: septs <github@septs.pw>
2024-12-15 10:03:50 +08:00

68 lines
1.8 KiB
Bash
Executable file

#!/bin/bash
SCRIPT_DIR=$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" &>/dev/null && pwd)
source "$SCRIPT_DIR/functions.sh"
set -euo pipefail
BUILD="$(mktemp -d)"
ARTIFACT="$WORKSPACE/build"
cd "$BUILD" || exit 1
mkdir -p "$BUILD/output"
mkdir -p "$ARTIFACT"
case "${1:-}" in
make)
cmake "$WORKSPACE"
make -j
copy-license "$BUILD/output"
copy-usage "$BUILD/output"
create-bundle "$ARTIFACT/lpac-$KERNEL-$MATCHINE.zip" "$BUILD/output"
;;
make-without-lto)
cmake -DCMAKE_INTERPROCEDURAL_OPTIMIZATION=OFF "$WORKSPACE"
make -j
copy-license "$BUILD/output"
copy-usage "$BUILD/output"
create-bundle "$ARTIFACT/lpac-$KERNEL-$MATCHINE-without-lto.zip" "$BUILD/output"
;;
debian)
cmake "$WORKSPACE" -DCPACK_GENERATOR=DEB
make -j package
cp lpac_*.deb "$ARTIFACT"
;;
mingw)
cmake "$WORKSPACE" -DCMAKE_TOOLCHAIN_FILE=./cmake/linux-mingw64.cmake
make -j
copy-license "$BUILD/output"
copy-curl-win "$BUILD/output"
copy-usage "$BUILD/output"
create-bundle "$ARTIFACT/lpac-windows-x86_64-mingw.zip" "$BUILD/output"
;;
woa-mingw)
TOOLCHAIN="$(download "$MINGW32_TOOLCHAIN_BLOB")"
cmake "$WORKSPACE" -DCMAKE_TOOLCHAIN_FILE=./cmake/linux-mingw64-woa.cmake "-DTOOLCHAIN_BIN_PATH=$TOOLCHAIN/bin"
make -j
rm -rf "$TOOLCHAIN"
copy-license "$BUILD/output"
copy-curl-woa "$BUILD/output"
copy-usage "$BUILD/output"
create-bundle "$ARTIFACT/lpac-windows-arm64-mingw.zip" "$BUILD/output"
;;
woa-zig)
cmake "$WORKSPACE" -DCMAKE_TOOLCHAIN_FILE=./cmake/aarch64-windows-zig.cmake
make -j
copy-license "$BUILD/output"
copy-curl-woa "$BUILD/output"
copy-usage "$BUILD/output"
create-bundle "$ARTIFACT/lpac-windows-arm64-zig.zip" "$BUILD/output"
;;
*)
echo "Usage: $0 {make,debian,mingw,woa-mingw,woa-zig}"
exit 1
;;
esac
rm -rf "$BUILD"