diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 924fb2c..6ead611 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -24,13 +24,20 @@ jobs: os: - windows-latest - macOS-latest - - ubuntu-22.04 config: - Release + include: + - os: ubuntu-22.04 + config: Release + build_with_prebuilt_clang: 0 + - os: ubuntu-22.04 + config: Release + build_with_prebuilt_clang: 1 runs-on: ${{ matrix.os }} env: OS: ${{ matrix.os }} CONFIG: ${{ matrix.config }} + BUILD_WITH_PREBUILT_CLANG: ${{ matrix.build_with_prebuilt_clang }} GH_TOKEN: ${{ secrets.GH_TOKEN }} steps: diff --git a/build.sh b/build.sh index da7d554..e014493 100755 --- a/build.sh +++ b/build.sh @@ -37,13 +37,16 @@ case "$(uname)" in sudo rm -rf /usr/share/dotnet /usr/local/lib/android /opt/ghc df -h - mkdir -p "${HOME}/clang+llvm" - pushd "${HOME}/clang+llvm" - # Install pre-built clang. - curl -fsSL -o clang+llvm.zip "https://github.com/mc-imperial/build-clang/releases/download/bootstrap-llvmorg-14.0.6/build-clang-llvmorg-14.0.6-${BUILD_PLATFORM}_Release.zip" - unzip clang+llvm.zip - popd - export PATH="${HOME}/clang+llvm/bin:$PATH" + if [ "${BUILD_WITH_PREBUILT_CLANG}" == 1 ] + then + mkdir -p "${HOME}/clang+llvm" + pushd "${HOME}/clang+llvm" + # Install pre-built clang. + curl -fsSL -o clang+llvm.zip "https://github.com/mc-imperial/build-clang/releases/download/bootstrap-llvmorg-14.0.6/build-clang-llvmorg-14.0.6-${BUILD_PLATFORM}_Release.zip" + unzip clang+llvm.zip + popd + export PATH="${HOME}/clang+llvm/bin:$PATH" + fi export CC=clang export CXX=clang++ which "${CC}" @@ -96,7 +99,18 @@ BUILD_DIR="b_${CONFIG}" mkdir "${BUILD_DIR}" case "$(uname)" in -"Linux"|"Darwin") +"Linux") + if [ "${BUILD_WITH_PREBUILT_CLANG}" == 0 ] + then + INSTALL_DIR="${INSTALL_DIR}-stock-clang" + cmake -G Ninja -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX="${INSTALL_DIR}" -S llvm -B "${BUILD_DIR}" -DLLVM_ENABLE_PROJECTS="clang" + else + INSTALL_DIR="${INSTALL_DIR}-prebuilt-clang" + cmake -G Ninja -C clang/cmake/caches/Fuchsia.cmake -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ -DCMAKE_INSTALL_PREFIX="${INSTALL_DIR}" -S llvm -B "${BUILD_DIR}" + fi + ;; + +"Darwin") cmake -G Ninja -C clang/cmake/caches/Fuchsia.cmake -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ -DCMAKE_INSTALL_PREFIX="${INSTALL_DIR}" -S llvm -B "${BUILD_DIR}" ;;