pkgname=libllvmextra_jll
pkgver=9.11.0
_commit=7632757ea65c7b93069c6620d80e3bae204d7424
pkgrel=1
pkgdesc="LLVM.jl"
url="https://github.com/maleadt/LLVM.jl.git"
arch=(aarch64 armv7h x86_64)
license=('MIT')
makedepends=(git cmake llvm-julia-git)
source=("git+https://github.com/maleadt/LLVM.jl.git#commit=$_commit"
        0001-Support-LLVM-22.patch)
sha256sums=('194dc901e6d9e2f37a65e4d33a908af0f8e8876ed4d88f2737b2ed79643e9f46'
            '9f2522e2fa4fc197d8f3491332f75a20590ba813acb3ff5121ebd4b2d4ff4438')
options=('debug')

_versioned_llvm=

prepare() {
  cd LLVM.jl

  patch -Np1 --no-backup-if-mismatch < ../0001-Support-LLVM-22.patch
}

build() {
  cd LLVM.jl/deps/LLVMExtra

  mkdir -p build
  cd build
  if [[ -n $_versioned_llvm ]]; then
    export CMAKE_PREFIX_PATH=/usr/lib/llvm$_versioned_llvm/
  fi
  cmake .. -DCMAKE_BUILD_TYPE=RelWithDebInfo \
        -DCMAKE_INSTALL_PREFIX=/usr
  make
}

package() {
  if [[ -n $_versioned_llvm ]]; then
    _llvm_ver=$(llvm-config-${_versioned_llvm} --version)
  else
    _llvm_ver=$(llvm-config --version)
  fi
  [[ $_llvm_ver =~ ^([0-9]*).* ]]
  llvm_maj_ver=${BASH_REMATCH[1]}
  ((next_llvm_maj=llvm_maj_ver + 1))

  _deps=("llvm-libs-julia-git>=${llvm_maj_ver}.0"
         "llvm-libs-julia-git<${next_llvm_maj}.0")

  depends+=("${_deps[@]}")

  cd LLVM.jl/deps/LLVMExtra/build

  make install DESTDIR="${pkgdir}"

  mkdir "${pkgdir}/usr/lib/julia"
  mv "${pkgdir}/usr/lib/"libLLVMExtra-* "${pkgdir}/usr/lib/julia"
}
