# Maintainer: Daryl Ronningen pkgbase=llvm-project pkgname=( llvm llvm-runtimes clang lld ) pkgver=17.0.6 pkgrel=1 pkgdesc="collection of modular and reusable compiler and toolchain technologies." arch=("x86_64") url="https://llvm.org" license=("LLVM-exception") depends=("zlib-ng") makedepends=() source=("https://github.com/llvm/llvm-project/releases/download/llvmorg-17.0.6/llvm-project-$pkgver.src.tar.xz") sha256sums=('58a8818c60e6627064f312dbf46c02d9949956558340938b71cf731ad8bc0813') build() { cd $pkgbase-$pkgver.src local cmake_args=( -G Ninja \ -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_INSTALL_PREFIX=/usr \ -DCMAKE_INSTALL_LIBDIR=lib \ -DCMAKE_C_COMPILER=clang \ -DCMAKE_CXX_COMPILER=clang++ \ -DLLVM_TARGETS_TO_BUILD=X86 \ -DLLVM_DEFAULT_TARGET_TRIPLE=x86_64-pc-linux-musl \ -DLLVM_HOST_TRIPLE=x86_64-pc-linux-musl \ -DLLVM_ENABLE_EH=ON \ -DLLVM_ENABLE_RTTI=ON \ -DLLVM_ENABLE_ZLIB=ON \ -DLLVM_BUILD_LLVM_DYLIB=ON \ -DLLVM_LINK_LLVM_DYLIB=ON \ -DENABLE_LINKER_BUILD_ID=ON \ -DLLVM_ENABLE_LIBCXX=ON \ -DLLVM_ENABLE_ZSTD=ON \ -DLLVM_ENABLE_TERMINFO=ON \ -DLLVM_ENABLE_LIBEDIT=OFF \ -DLLVM_ENABLE_LIBXML2=OFF \ -DLLVM_ENABLE_LIBPFM=OFF \ -DLLVM_ENABLE_OCAMLDOC=OFF \ -DLLVM_ENABLE_LLD=ON \ -DLLVM_INSTALL_UTILS=ON \ -DLLVM_INSTALL_BINUTILS_SYMLINKS=ON \ -DLLVM_INSTALL_CCTOOLS_SYMLINKS=ON \ -DLLVM_INCLUDE_BENCHMARKS=OFF \ -DLLVM_INCLUDE_DOCS=OFF \ -DLLVM_INCLUDE_EXAMPLES=OFF \ -DLLVM_INCLUDE_TESTS=OFF \ -DCOMPILER_RT_DEFAULT_TARGET_TRIPLE=x86_64-pc-linux-musl \ -DCOMPILER_RT_BUILD_SANITIZERS=OFF \ -DCOMPILER_RT_BUILD_XRAY=OFF \ -DCOMPILER_RT_BUILD_LIBFUZZER=OFF \ -DCOMPILER_RT_BUILD_PROFILE=OFF \ -DCOMPILER_RT_BUILD_MEMPROF=OFF \ -DCOMPILER_RT_BUILD_GWP_ASAN=OFF \ -DCOMPILER_RT_USE_LLVM_UNWINDER=ON \ -DCOMPILER_RT_USE_BUILTINS_LIBRARY=ON \ -DCOMPILER_RT_CXX_LIBRARY=libcxx \ -DCOMPILER_RT_INSTALL_PATH=/usr/lib/clang/${pkgver%%.*} \ -DCLANG_DEFAULT_CXX_STDLIB=libc++ \ -DCLANG_DEFAULT_RTLIB=compiler-rt \ -DCLANG_DEFAULT_UNWINDLIB=libunwind \ -DCLANG_INCLUDE_TESTS=OFF \ -DCLANG_VENDOR="Ikeda Linux" \ -DLIBCXX_HAS_MUSL_LIBC=ON \ -DLIBCXX_ENABLE_LOCALIZATION=ON \ -DLIBCXX_ENABLE_NEW_DELETE_DEFINITIONS=ON \ -DLIBCXX_CXX_ABI=libcxxabi \ -DLIBCXX_USE_COMPILER_RT=ON \ -DLIBCXX_ENABLE_STATIC_ABI_LIBRARY=ON \ -DLIBCXX_ENABLE_ASSERTIONS=ON \ -DLIBCXXABI_USE_LLVM_UNWINDER=ON \ -DLIBCXXABI_ENABLE_STATIC_UNWINDER=ON \ -DLIBCXXABI_USE_COMPILER_RT=ON \ -DLIBUNWIND_INSTALL_HEADERS=ON \ -DLIBUNWIND_USE_COMPILER_RT=ON \ -DLLD_VENDOR="Ikeda Linux" ) cmake -B build-llvm -S llvm "${cmake_args[@]}" cmake -B build-llvm-runtimes -S runtimes -DLLVM_ENABLE_RUNTIMES="compiler-rt;libunwind;libcxx;libcxxabi" "${cmake_args[@]}" cmake -B build-clang -S clang "${cmake_args[@]}" cmake -B build-lld -S lld "${cmake_args[@]}" ninja -C build-llvm ninja -C build-llvm-runtimes ninja -C build-clang ninja -C build-lld } package_llvm() { cd $pkgbase-$pkgver.src DESTDIR=$pkgdir ninja -C build-llvm install } package_llvm-runtimes() { cd $pkgbase-$pkgver.src DESTDIR=$pkgdir ninja -C build-llvm-runtimes install } package_clang() { cd $pkgbase-$pkgver.src DESTDIR=$pkgdir ninja -C build-clang install ln -s clang $pkgdir/usr/bin/cc ln -s clang++ $pkgdir/usr/bin/cpp } package_lld() { cd $pkgbase-$pkgver.src DESTDIR=$pkgdir ninja -C build-lld install ln -s ld.lld $pkgdir/usr/bin/ld }