128 lines
2.8 KiB
Bash
Executable File
128 lines
2.8 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
set -eux
|
|
original_dir=$PWD
|
|
build_dir=$original_dir/build
|
|
C_COMPILER_PATH=clang
|
|
CXX_COMPILER_PATH=clang++
|
|
ASM_COMPILER_PATH=clang
|
|
|
|
if [[ -z "${BIRTH_OS-}" ]]; then
|
|
case "$OSTYPE" in
|
|
msys*)
|
|
BIRTH_OS=windows
|
|
;;
|
|
linux*)
|
|
BIRTH_OS=linux
|
|
;;
|
|
darwin*)
|
|
BIRTH_OS=macos
|
|
;;
|
|
*)
|
|
exit 1
|
|
;;
|
|
esac
|
|
fi
|
|
|
|
case "$BIRTH_OS" in
|
|
linux)
|
|
ls -las /
|
|
ls -las /usr
|
|
ls -las /usr/lib
|
|
;;
|
|
*)
|
|
;;
|
|
esac
|
|
|
|
if [[ -z "${BIRTH_ARCH-}" ]]; then
|
|
case "$(uname -m)" in
|
|
x86_64)
|
|
BIRTH_ARCH=x86_64
|
|
;;
|
|
arm64)
|
|
BIRTH_ARCH=aarch64
|
|
;;
|
|
*)
|
|
exit 1
|
|
;;
|
|
esac
|
|
fi
|
|
|
|
if [[ -z "${CMAKE_BUILD_TYPE-}" ]]; then
|
|
CMAKE_BUILD_TYPE=Debug
|
|
fi
|
|
|
|
if [[ -z "${CMAKE_PREFIX_PATH-}" ]]; then
|
|
CMAKE_PREFIX_PATH="$HOME/Downloads/llvm-$BIRTH_ARCH-$BIRTH_OS-$CMAKE_BUILD_TYPE"
|
|
fi
|
|
|
|
if [[ -z "${BUSTER_GITHUB_MAIN_RUN-}" ]]; then
|
|
BUSTER_GITHUB_MAIN_RUN=false
|
|
fi
|
|
|
|
case $BIRTH_OS in
|
|
windows)
|
|
C_COMPILER_OPT_ARG="-DCMAKE_C_COMPILER_TARGET=x86_64-pc-windows-msvc"
|
|
CXX_COMPILER_OPT_ARG="-DCMAKE_CXX_COMPILER_TARGET=x86_64-pc-windows-msvc"
|
|
ASM_COMPILER_OPT_ARG="-DCMAKE_ASM_COMPILER_TARGET=x86_64-pc-windows-msvc"
|
|
;;
|
|
*)
|
|
C_COMPILER_OPT_ARG=""
|
|
CXX_COMPILER_OPT_ARG=""
|
|
ASM_COMPILER_OPT_ARG=""
|
|
;;
|
|
esac
|
|
case $BIRTH_OS in
|
|
linux)
|
|
USE_MOLD_OPT_ARG=-DCMAKE_EXE_LINKER_FLAGS="-fuse-ld=mold"
|
|
;;
|
|
*)
|
|
USE_MOLD_OPT_ARG=""
|
|
;;
|
|
esac
|
|
|
|
mkdir -p $build_dir
|
|
cmake . \
|
|
-B$build_dir \
|
|
-G Ninja \
|
|
-DCMAKE_BUILD_TYPE="$CMAKE_BUILD_TYPE" \
|
|
-DCMAKE_PREFIX_PATH=$CMAKE_PREFIX_PATH \
|
|
-DCMAKE_C_COMPILER=$C_COMPILER_PATH \
|
|
-DCMAKE_CXX_COMPILER=$CXX_COMPILER_PATH \
|
|
-DCMAKE_ASM_COMPILER=$ASM_COMPILER_PATH \
|
|
$USE_MOLD_OPT_ARG \
|
|
$C_COMPILER_OPT_ARG \
|
|
$CXX_COMPILER_OPT_ARG \
|
|
$ASM_COMPILER_OPT_ARG
|
|
|
|
cd $build_dir
|
|
ninja -v
|
|
cd $original_dir
|
|
|
|
if [ "$#" -ne 0 ]; then
|
|
$build_dir/runner $@
|
|
fi
|
|
|
|
if [ "$BUSTER_GITHUB_MAIN_RUN" == "true" ]; then
|
|
case "$BIRTH_OS" in
|
|
windows)
|
|
OPT_EXTENSION=".exe";;
|
|
*)
|
|
OPT_EXTENSION="";;
|
|
esac
|
|
|
|
BB_EXE_PATH="$build_dir/bb$OPT_EXTENSION"
|
|
BB_INSTALL_NAME=bloat-buster-$BIRTH_ARCH-$BIRTH_OS-$CMAKE_BUILD_TYPE
|
|
BB_INSTALL_PATH="$PWD/$BB_INSTALL_NAME"
|
|
mkdir -p $BB_INSTALL_PATH
|
|
cp $BB_EXE_PATH $BB_INSTALL_PATH
|
|
7z a -t7z -m0=lzma2 -mx=9 -mfb=64 -md=64m -ms=on $BB_INSTALL_NAME.7z $BB_INSTALL_PATH
|
|
b2sum $BB_INSTALL_NAME.7z > "$BB_INSTALL_NAME.7z.b2sum"
|
|
|
|
case "$BIRTH_OS" in
|
|
windows) BB_INSTALL_PATH="$(cygpath -w ${BB_INSTALL_PATH})" ;;
|
|
*) ;;
|
|
esac
|
|
|
|
echo "BLOAT_BUSTER_RELEASE_PATH_BASE=$BB_INSTALL_PATH" >> $GITHUB_ENV
|
|
fi
|