# Maintainer: Maksim Bondarenkov <maksapple2306@gmail.com>

_realname=rust-analyzer
pkgbase=mingw-w64-${_realname}
pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}"
_pkgver=2024-08-05
pkgver=${_pkgver//-}
pkgrel=1
pkgdesc="A Rust compiler front-end for IDEs (mingw-w64)"
arch=('any')
mingw_arch=('mingw64' 'ucrt64' 'clang64' 'clangarm64')
url='https://rust-analyzer.github.io'
msys2_repository_url='https://github.com/rust-lang/rust-analyzer'
license=('spdx:Apache-2.0 OR MIT')
depends=("${MINGW_PACKAGE_PREFIX}-rust-src")
makedepends=('git')
source=("git+${msys2_repository_url}.git#tag=${_pkgver}")
sha256sums=('7bc2e1ac1267a88f94818124180e476488e5b820585fcb6ab983e44fca85b05b')

prepare() {
  cd "${_realname}"

  cargo fetch --locked --target "$(rustc -vV | sed -n 's/host: //p')"
}

build() {
  cd "${_realname}"

  export CFG_RELEASE=1
  # profile dev-rel enables level 2 debug info
  cargo build --frozen --profile dev-rel -p rust-analyzer
}

check() {
  cd "${_realname}"

  cargo test --frozen --profile dev-rel -p rust-analyzer
}

package() {
  cd "${_realname}"

  cargo install \
    --offline \
    --no-track \
    --frozen \
    --path crates/rust-analyzer \
    --root "${pkgdir}${MINGW_PREFIX}" \
    --profile dev-rel

  install -Dm644 LICENSE-{APACHE,MIT} -t "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}"
}
