lpac/.github/scripts/build-ci.sh
septs f043c01a00
chore: move scripts directory to .github directory (#262)
* chore: move scripts directory to dot-github directory

* chore: format cmake file
2025-08-14 00:10:51 +08:00

81 lines
2.2 KiB
Bash
Executable file

#!/bin/bash
# This script is only for GitHub Actions use
set -euo pipefail
SCRIPT_DIR="$(dirname -- "${BASH_SOURCE[0]}")"
source "$SCRIPT_DIR/functions.sh"
BUILD="$(mktemp -d)"
ARTIFACT="$WORKSPACE/build"
mkdir -p "$BUILD/output"
mkdir -p "$ARTIFACT"
trap 'rm -rf '"$BUILD" EXIT
cd "$BUILD"
case "${1:-}" in
make)
cmake "$WORKSPACE"
make -j
copy-license "$BUILD/output"
copy-usage "$BUILD/output"
create-bundle "$ARTIFACT/lpac-$KERNEL-$MACHINE.zip" "$BUILD/output"
;;
make-qmi)
cmake "$WORKSPACE" -DLPAC_WITH_APDU_QMI=ON -DLPAC_WITH_APDU_QMI_QRTR=ON -DLPAC_WITH_APDU_MBIM=ON
make -j
copy-license "$BUILD/output"
copy-usage "$BUILD/output"
create-bundle "$ARTIFACT/lpac-$KERNEL-$MACHINE-with-qmi.zip" "$BUILD/output"
;;
make-gbinder)
cmake "$WORKSPACE" -DLPAC_WITH_APDU_GBINDER=ON
make -j
copy-license "$BUILD/output"
copy-usage "$BUILD/output"
create-bundle "$ARTIFACT/lpac-$KERNEL-$MACHINE-with-gbinder.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-$MACHINE-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)
cmake "$WORKSPACE" -DCMAKE_TOOLCHAIN_FILE=./cmake/linux-mingw64-woa.cmake
make -j
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