diff --git a/generate.sh b/generate.sh index 94c34f3..28a9722 100755 --- a/generate.sh +++ b/generate.sh @@ -1,50 +1,71 @@ #!/usr/bin/env bash set -eux -if [[ -z "${BB_CI:-}" ]]; then - BB_CI=0 +if [[ -z "${CMAKE_PREFIX_PATH:-}" ]]; then + CMAKE_PREFIX_PATH=$HOME/dev/llvm/install/llvm_20.1.7_x86_64-linux-Release fi +LLVM_CONFIG=$CMAKE_PREFIX_PATH/bin/llvm-config + if [[ -z "${CMAKE_BUILD_TYPE:-}" ]]; then - CMAKE_BUILD_TYPE=Debug - LLVM_CMAKE_BUILD_TYPE=Release -else - LLVM_CMAKE_BUILD_TYPE=$CMAKE_BUILD_TYPE + CMAKE_BUILD_TYPE=$(llvm-config --build-mode) fi -BUILD_DIR=build +OPT_ARGS="" -BIRTH_NATIVE_OS_STRING=$OSTYPE - -case "$BIRTH_NATIVE_OS_STRING" in - darwin*) BIRTH_OS="macos";; - linux*) BIRTH_OS="linux";; - msys*) BIRTH_OS="windows";; +case "$CMAKE_BUILD_TYPE" in + Debug) OPT_ARGS="-O0 -g";; + Release) OPT_ARGS="-O3";; *) exit 1 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 - 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 .. +# if [[ -z "${BB_CI:-}" ]]; then +# BB_CI=0 +# fi +# +# if [[ -z "${CMAKE_BUILD_TYPE:-}" ]]; then +# CMAKE_BUILD_TYPE=Debug +# LLVM_CMAKE_BUILD_TYPE=Release +# else +# LLVM_CMAKE_BUILD_TYPE=$CMAKE_BUILD_TYPE +# fi +# +# BUILD_DIR=build +# +# BIRTH_NATIVE_OS_STRING=$OSTYPE +# +# case "$BIRTH_NATIVE_OS_STRING" in +# darwin*) BIRTH_OS="macos";; +# linux*) BIRTH_OS="linux";; +# msys*) BIRTH_OS="windows";; +# *) exit 1 +# esac +# +# 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 ..