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

_realname=rust-analyzer
pkgbase=mingw-w64-${_realname}
pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}"
_pkgver=2025-03-17
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')
conflicts=("${MINGW_PACKAGE_PREFIX}-rust<1.80.0-2")
depends=("${MINGW_PACKAGE_PREFIX}-rust-src")
makedepends=('git')
source=("git+${msys2_repository_url}.git#tag=${_pkgver}")
sha256sums=('c3657482d1f8d1083dd79b049dd44c8b979e7bbdda8850b41eb5a55c553aaa0a')

prepare() {
  cd "${_realname}"

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

build() {
  cd "${_realname}"

  export CFG_RELEASE="${_pkgver} (Rev${pkgrel}, Built by MSYS2 project)"
  cargo build --frozen --release -p rust-analyzer
}

check() {
  cd "${_realname}"

  cargo test --frozen --release -p rust-analyzer
}

package() {
  cd "${_realname}"

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

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