summaryrefslogtreecommitdiff
path: root/Ports/llvm/package.sh
blob: e9c1db9873cbe0d3d7da95c72112a864cea04a9f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
#!/usr/bin/env -S bash ../.port_include.sh
port=llvm
useconfigure=true
version=12.0.0
workdir=llvm-project-llvmorg-${version}
configopts="-DCMAKE_TOOLCHAIN_FILE=$SERENITY_SOURCE_DIR/Toolchain/CMake/CMakeToolchain.txt"
files="https://github.com/llvm/llvm-project/archive/refs/tags/llvmorg-${version}.zip llvm.zip f77723b70a5d4ab14899feda87d6cf601612165899abb2f6c7b670e517f45e2d"
auth_type=sha256

pre_patch() {
    host_env
    mkdir -p llvm-host
    cmake ${workdir}/llvm \
    -B llvm-host \
    -DLLVM_ENABLE_PROJECTS=clang
    make -C llvm-host -j $(nproc) llvm-tblgen clang-tblgen
    target_env
}

configure() {
    mkdir -p llvm-build
    cmake ${workdir}/llvm \
    -B llvm-build $configopts \
    -DCMAKE_BUILD_TYPE=MinSizeRel \
    -DLLVM_TARGETS_TO_BUILD=X86 \
    -DLLVM_ENABLE_PROJECTS="clang;lld;compiler-rt" \
    -DLLVM_TABLEGEN=$(pwd)/llvm-host/bin/llvm-tblgen \
    -DCMAKE_CROSSCOMPILING=True \
    -DLLVM_DEFAULT_TARGET_TRIPLE=i386-none-gnueabi \
    -DLLVM_TARGET_ARCH=X86 \
    -DLLVM_INCLUDE_BENCHMARKS=OFF \
    -DLLVM_INCLUDE_TESTS=OFF \
    -DCLANG_TABLEGEN=$(pwd)/llvm-host/bin/clang-tblgen
}

build() {
    make -C llvm-build -j $(nproc) --no-print-directory
}

install() {
    make -C llvm-build -j $(nproc) --no-print-directory install
}