This commit is contained in:
David Gonzalez Martin 2025-06-25 11:26:32 -06:00
parent 279036435a
commit ac75f014dc

View File

@ -1,50 +1,71 @@
#!/usr/bin/env bash #!/usr/bin/env bash
set -eux set -eux
if [[ -z "${BB_CI:-}" ]]; then if [[ -z "${CMAKE_PREFIX_PATH:-}" ]]; then
BB_CI=0 CMAKE_PREFIX_PATH=$HOME/dev/llvm/install/llvm_20.1.7_x86_64-linux-Release
fi fi
LLVM_CONFIG=$CMAKE_PREFIX_PATH/bin/llvm-config
if [[ -z "${CMAKE_BUILD_TYPE:-}" ]]; then if [[ -z "${CMAKE_BUILD_TYPE:-}" ]]; then
CMAKE_BUILD_TYPE=Debug CMAKE_BUILD_TYPE=$(llvm-config --build-mode)
LLVM_CMAKE_BUILD_TYPE=Release
else
LLVM_CMAKE_BUILD_TYPE=$CMAKE_BUILD_TYPE
fi fi
BUILD_DIR=build OPT_ARGS=""
BIRTH_NATIVE_OS_STRING=$OSTYPE case "$CMAKE_BUILD_TYPE" in
Debug) OPT_ARGS="-O0 -g";;
case "$BIRTH_NATIVE_OS_STRING" in Release) OPT_ARGS="-O3";;
darwin*) BIRTH_OS="macos";;
linux*) BIRTH_OS="linux";;
msys*) BIRTH_OS="windows";;
*) exit 1 *) exit 1
esac esac
BIRTH_NATIVE_ARCH_STRING="$(uname -m)" mkdir -p bb-cache
clang++ -c src/llvm.cpp -o bb-cache/llvm_bindings.o -I$CMAKE_PREFIX_PATH/include -I./src $(llvm-config --cxxflags) -Werror -Wno-c99-extensions -Wno-unused-function -Wno-missing-designated-field-initializers -fno-signed-char -fwrapv -fno-strict-aliasing -Wno-c++20-extensions
case "$BIRTH_NATIVE_ARCH_STRING" in # if [[ -z "${BB_CI:-}" ]]; then
x86_64) BIRTH_ARCH="x86_64";; # BB_CI=0
arm64) BIRTH_ARCH="aarch64";; # fi
*) exit 1 #
esac # if [[ -z "${CMAKE_BUILD_TYPE:-}" ]]; then
# CMAKE_BUILD_TYPE=Debug
case "$BIRTH_OS" in # LLVM_CMAKE_BUILD_TYPE=Release
linux) LINKER_TYPE=MOLD;; # else
*) LINKER_TYPE=DEFAULT;; # LLVM_CMAKE_BUILD_TYPE=$CMAKE_BUILD_TYPE
esac # fi
#
rm -rf $BUILD_DIR # BUILD_DIR=build
mkdir $BUILD_DIR #
cd $BUILD_DIR # BIRTH_NATIVE_OS_STRING=$OSTYPE
LLVM_PREFIX_PATH=$HOME/dev/llvm/install/llvm_20.1.7_$BIRTH_ARCH-$BIRTH_OS-$LLVM_CMAKE_BUILD_TYPE #
# case "$BIRTH_NATIVE_OS_STRING" in
if [[ -z "${CLANG_PATH:-}" ]]; then # darwin*) BIRTH_OS="macos";;
CLANG_PATH=clang # linux*) BIRTH_OS="linux";;
CLANGXX_PATH=clang++ # msys*) BIRTH_OS="windows";;
fi # *) exit 1
# esac
cmake .. -G Ninja -DCMAKE_C_COMPILER=$CLANG_PATH -DCMAKE_CXX_COMPILER=$CLANGXX_PATH -DCMAKE_LINKER_TYPE=$LINKER_TYPE -DCMAKE_EXPORT_COMPILE_COMMANDS=ON -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE%%-*} -DCMAKE_PREFIX_PATH=$LLVM_PREFIX_PATH -DCMAKE_COLOR_DIAGNOSTICS=ON -DBB_CI=$BB_CI #
cd .. # BIRTH_NATIVE_ARCH_STRING="$(uname -m)"
#
# case "$BIRTH_NATIVE_ARCH_STRING" in
# x86_64) BIRTH_ARCH="x86_64";;
# arm64) BIRTH_ARCH="aarch64";;
# *) exit 1
# esac
#
# case "$BIRTH_OS" in
# linux) LINKER_TYPE=MOLD;;
# *) LINKER_TYPE=DEFAULT;;
# esac
#
# rm -rf $BUILD_DIR
# mkdir $BUILD_DIR
# cd $BUILD_DIR
# LLVM_PREFIX_PATH=$HOME/dev/llvm/install/llvm_20.1.7_$BIRTH_ARCH-$BIRTH_OS-$LLVM_CMAKE_BUILD_TYPE
#
# if [[ -z "${CLANG_PATH:-}" ]]; then
# CLANG_PATH=clang
# CLANGXX_PATH=clang++
# fi
#
# cmake .. -G Ninja -DCMAKE_C_COMPILER=$CLANG_PATH -DCMAKE_CXX_COMPILER=$CLANGXX_PATH -DCMAKE_LINKER_TYPE=$LINKER_TYPE -DCMAKE_EXPORT_COMPILE_COMMANDS=ON -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE%%-*} -DCMAKE_PREFIX_PATH=$LLVM_PREFIX_PATH -DCMAKE_COLOR_DIAGNOSTICS=ON -DBB_CI=$BB_CI
# cd ..