makedepends=(cmake libxml2 git)

description="Low Level Virtual Machine, collection of modular and reusable compiler and toolchain."
url="http://llvm.org/"

maintainer="Great-OS Team"
packager="Great-OS Team"

name=llvm
version=21.1.8
release=1

source=(
  https://github.com/llvm/llvm-project/releases/download/llvmorg-$version/llvm-$version.src.tar.xz
  https://github.com/llvm/llvm-project/releases/download/llvmorg-$version/clang-$version.src.tar.xz
  https://github.com/llvm/llvm-project/releases/download/llvmorg-$version/third-party-$version.src.tar.xz
  https://github.com/llvm/llvm-project/releases/download/llvmorg-$version/cmake-$version.src.tar.xz
  https://github.com/llvm/llvm-project/releases/download/llvmorg-$version/compiler-rt-$version.src.tar.xz)

build() {

  cd $name-$version.src

  mv ../compiler-rt-${version}.src projects/compiler-rt
  mv ../clang-$version.src tools/clang
  mv ../cmake-$version.src ../cmake
  mv ../third-party-$version.src ../third-party

  grep -rl '#!.*python' | xargs sed -i '1s/python$/python3/'

  mkdir -pv ../build && cd ../build

  CC=gcc CXX=g++ \
  cmake -DCMAKE_INSTALL_PREFIX=/usr  \
    -DLLVM_ENABLE_FFI=ON       \
    -DCMAKE_BUILD_TYPE=Release \
    -DLLVM_BUILD_LLVM_DYLIB=ON \
    -DLLVM_LINK_LLVM_DYLIB=ON  \
    -DLLVM_ENABLE_RTTI=ON \
    -DLLVM_TARGETS_TO_BUILD="host;AMDGPU;BPF" \
    -DLLVM_BINUTILS_INCDIR=/usr/include \
    -DLLVM_INCLUDE_BENCHMARKS=OFF \
    -DCLANG_DEFAULT_PIE_ON_LINUX=ON \
    -DLLVM_BUILD_TESTS=OFF \
    -DLLVM_INSTALL_UTILS=ON \
    -Wno-dev -G Ninja ../$name-$version.src

  ninja
  DESTDIR=$PKG ninja install
}
