diff --git a/.gitea/workflows/ci.yml b/.gitea/workflows/ci.yml index 06f6f69..cd482d2 100644 --- a/.gitea/workflows/ci.yml +++ b/.gitea/workflows/ci.yml @@ -20,11 +20,18 @@ jobs: fail-fast: false matrix: os: [ ubuntu-latest ] - BIRTH_ZIG_BUILD_TYPE: [ Debug, ReleaseSafe, ReleaseFast, ReleaseSmall ] + BIRTH_CMAKE_BUILD_TYPE: [ Debug, RelWithDebInfo, Release, MinSizeRel ] runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@v4 - name: Build and test (Packaged LLVM) + shell: bash + env: + BB_CI: 1 + CMAKE_BUILD_TYPE: ${{matrix.BIRTH_CMAKE_BUILD_TYPE}} + CLANG_PATH: clang-19 + CLANGXX_PATH: clang++-19 run: | - ~/zig-linux-x86_64-0.14.0/zig build test -Doptimize=${{matrix.BIRTH_ZIG_BUILD_TYPE}} -Dsystem_llvm=false - ldd zig-out/bin/bloat-buster + ./generate.sh + ./build.sh + ./build/bb test diff --git a/CMakeLists.txt b/CMakeLists.txt index aed1abf..34c88aa 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -47,9 +47,6 @@ target_link_libraries(bb PUBLIC # ${LLD_WASM} ) -target_compile_options(bb PRIVATE -Wall -Wextra -pedantic -Wpedantic -Werror -Wno-c99-extensions -Wno-unused-function -funsigned-char -fwrapv -fno-strict-aliasing) -if (NOT APPLE) - target_compile_options(bb PRIVATE -Wno-missing-designated-field-initializers) -endif() +target_compile_options(bb PRIVATE -Wall -Wextra -pedantic -Wpedantic -Werror -Wno-c99-extensions -Wno-unused-function -Wno-missing-designated-field-initializers -funsigned-char -fwrapv -fno-strict-aliasing) # target_compile_options(bb PRIVATE -fsanitize=address) # target_link_options(bb PRIVATE -fsanitize=address) diff --git a/generate.sh b/generate.sh index b4a7265..2ab0b3f 100755 --- a/generate.sh +++ b/generate.sh @@ -1,7 +1,13 @@ #!/usr/bin/env bash set -eu -CMAKE_BUILD_TYPE=Debug -LLVM_CMAKE_BUILD_TYPE=Release + +if [[ -z "${BB_CI:-}" ]]; 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 @@ -26,9 +32,20 @@ case "$BIRTH_OS" in *) LINKER_TYPE=DEFAULT;; esac - rm -rf $BUILD_DIR mkdir $BUILD_DIR cd $BUILD_DIR -cmake .. -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ -DCMAKE_LINKER_TYPE=$LINKER_TYPE -DCMAKE_EXPORT_COMPILE_COMMANDS=ON -DCMAKE_PREFIX_PATH=$HOME/dev/llvm/install/llvm_20.1.3_$BIRTH_ARCH-$BIRTH_OS-$LLVM_CMAKE_BUILD_TYPE -DCMAKE_COLOR_DIAGNOSTICS=ON +LLVM_PREFIX_PATH=$HOME/dev/llvm/install/llvm_20.1.3_$BIRTH_ARCH-$BIRTH_OS-$LLVM_CMAKE_BUILD_TYPE + +if [[ -z "${CLANG_PATH:-}" ]]; then + CLANG_PATH=clang + CLANGXX_PATH=clang++ +fi + + +if [[ -n "${BB_CI+x}" ]]; then + echo $LLVM_PREFIX_PATH +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_PREFIX_PATH=$LLVM_PREFIX_PATH -DCMAKE_COLOR_DIAGNOSTICS=ON cd ..