#!/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 if [[ -n "${IS_CI-}" ]]; then IS_CI=ON else IS_CI=OFF 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 \ -DIS_CI=$IS_CI \ $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