|
| 1 | +#!/bin/bash |
| 2 | +set -e |
| 3 | + |
| 4 | +SRC_DIR=${1:-llvm-src/llvm} |
| 5 | +BUILD_DIR=llvm-build |
| 6 | +OUT_DIR=llvm-out |
| 7 | + |
| 8 | +cmake -G Ninja -S "$SRC_DIR" -B "$BUILD_DIR" \ |
| 9 | + -DCMAKE_BUILD_TYPE=Release \ |
| 10 | + -DCMAKE_INSTALL_PREFIX="$OUT_DIR" \ |
| 11 | + -DCMAKE_INSTALL_LIBDIR=lib \ |
| 12 | + -DLLVM_ENABLE_PROJECTS=clang \ |
| 13 | + -DLLVM_TARGETS_TO_BUILD="" \ |
| 14 | + -DBUILD_SHARED_LIBS=OFF \ |
| 15 | + -DLLVM_BUILD_LLVM_DYLIB=OFF \ |
| 16 | + -DLLVM_LINK_LLVM_DYLIB=OFF \ |
| 17 | + -DLLVM_ENABLE_PIC=ON \ |
| 18 | + -DLLVM_ENABLE_RTTI=OFF \ |
| 19 | + -DLLVM_ENABLE_EH=OFF \ |
| 20 | + -DLLVM_ENABLE_ASSERTIONS=OFF \ |
| 21 | + -DLLVM_ENABLE_ZLIB=OFF \ |
| 22 | + -DLLVM_ENABLE_ZSTD=OFF \ |
| 23 | + -DLLVM_ENABLE_TERMINFO=OFF \ |
| 24 | + -DLLVM_ENABLE_LIBXML2=OFF \ |
| 25 | + -DLLVM_ENABLE_LIBEDIT=OFF \ |
| 26 | + -DLLVM_ENABLE_LIBPFM=OFF \ |
| 27 | + -DLLVM_ENABLE_CURL=OFF \ |
| 28 | + -DLLVM_ENABLE_HTTPLIB=OFF \ |
| 29 | + -DLLVM_INCLUDE_TESTS=OFF \ |
| 30 | + -DLLVM_INCLUDE_EXAMPLES=OFF \ |
| 31 | + -DLLVM_INCLUDE_BENCHMARKS=OFF \ |
| 32 | + -DLLVM_INCLUDE_DOCS=OFF \ |
| 33 | + -DCLANG_INCLUDE_TESTS=OFF \ |
| 34 | + -DCLANG_INCLUDE_DOCS=OFF \ |
| 35 | + -DCLANG_ENABLE_ARCMT=OFF \ |
| 36 | + -DCLANG_ENABLE_STATIC_ANALYZER=OFF \ |
| 37 | + "-DCMAKE_C_FLAGS=-ffunction-sections -fdata-sections" \ |
| 38 | + "-DCMAKE_CXX_FLAGS=-ffunction-sections -fdata-sections" |
| 39 | +ninja -C "$BUILD_DIR" -j$(nproc) clangTooling |
| 40 | + |
| 41 | +COMPONENTS="llvm-headers;clang-headers;clang-resource-headers;cmake-exports;clang-cmake-exports" |
| 42 | +for LIB in "$BUILD_DIR"/lib/lib*.a ; do |
| 43 | + LIBNAME="$(basename "$LIB" .a)" |
| 44 | + COMPONENTS="$COMPONENTS;${LIBNAME#lib}" |
| 45 | +done |
| 46 | +cmake -S "$SRC_DIR" -B "$BUILD_DIR" -DLLVM_DISTRIBUTION_COMPONENTS="$COMPONENTS" |
| 47 | +ninja -C "$BUILD_DIR" -j$(nproc) install-distribution |
0 commit comments