跳转至

example

build_llvm.sh

C++
#!/usr/bin/env bash

set -euo pipefail
set -x

cd "$(dirname "$(readlink -f "$0")")"

export CCACHE_DIR="${CCACHE_DIR:-$HOME/.cache/ccache-llvm}"
ccache --set-config max_size=15G

NPROC=12
BUILD_DIR="${BUILD_DIR:-build}"
INSTALL_DIR="${INSTALL_DIR:-$PWD/install}"

mkdir -p "$BUILD_DIR"
cd "$BUILD_DIR"

cmake -S ../llvm -G Ninja \
    -DCMAKE_C_COMPILER_LAUNCHER=ccache \
    -DCMAKE_CXX_COMPILER_LAUNCHER=ccache \
    -DCMAKE_BUILD_TYPE=Release \
    -DCMAKE_INSTALL_PREFIX="$INSTALL_DIR" \
    -DLLVM_TARGETS_TO_BUILD="RISCV" \
    -DLLVM_ENABLE_PROJECTS="clang;mlir;clang-tools-extra;lld" \
    -DLLVM_ENABLE_ASSERTIONS=ON \
    -DLLVM_ENABLE_RTTI=ON \
    -DLLVM_INSTALL_UTILS=ON \
    -DLLVM_BUILD_UTILS=ON \
    -DCLANG_BUILD_TOOLS=ON \
    -DBUILD_SHARED_LIBS=OFF \
    | tee cmake.log

ninja -j$NPROC -v | tee build.log
ninja install -j$NPROC  | tee install.log
ninja -j$NPROC tblgen-lsp-server