yggdrasil/ports/llvm/compile.sh

56 lines
1.4 KiB
Bash
Executable File

#!/bin/sh
LLVM_SOURCE_DIR=$Y_WORKSPACE_ROOT/userspace/target/ports/meta-llvm/source/llvm-project-${Y_PORT_VERSION}.src
CMAKE_TOOLCHAIN=$Y_PORT_UTILS/toolchain-${Y_ARCH}.cmake
set -e
build_dir=$3
case $Y_ARCH in
x86_64)
LLVM_TARGET_NAME=X86
;;
aarch64)
LLVM_TARGET_NAME=AArch64
;;
riscv64)
LLVM_TARGET_NAME=RISCV
;;
**)
echo "Unsupported LLVM Yggdrasil target: $Y_ARCH" >&2
exit 1
;;
esac
mkdir -p $build_dir
cd $build_dir
if [ ! -f build.ninja ]; then
cmake \
--toolchain=$CMAKE_TOOLCHAIN \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_SYSROOT=$Y_SYSROOT \
-DCMAKE_INSTALL_PREFIX=$Y_SYSROOT \
-DLLVM_HOST_TRIPLE=$Y_TRIPLE \
-DLLVM_TARGETS_TO_BUILD=$LLVM_TARGET_NAME \
-DLLVM_ENABLE_PROJECTS="lld;clang" \
-DLLVM_INCLUDE_BENCHMARKS=OFF \
-DLLVM_INCLUDE_EXAMPLES=OFF \
-DLLVM_INCLUDE_TESTS=OFF \
-DLLVM_INCLUDE_TOOLS=ON \
-DLLVM_ENABLE_THREADS=OFF \
-DLLVM_ENABLE_RTTI=OFF \
-DLLVM_ENABLE_ASSERTIONS=ON \
-DLLVM_ENABLE_LIBXML2=OFF \
-DLLVM_CCACHE_BUILD=ON \
-DLLVM_BUILD_TESTS=OFF \
-DLLVM_BUILD_EXAMPLES=OFF \
-DLLVM_BUILD_BENCHMARKS=OFF \
-DLLVM_BUILD_DOCS=OFF \
-DLLVM_USE_LINKER=lld \
-GNinja \
$LLVM_SOURCE_DIR/llvm
fi
cmake --build . -j