_realname=wasm-component-ld
pkgbase=mingw-w64-${_realname}
pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}"
pkgver=0.5.6
pkgrel=1
pkgdesc="Command line linker for creating WebAssembly components (mingw-w64)"
arch=('any')
mingw_arch=('mingw64' 'ucrt64' 'clang64' 'clangarm64')
url="https://github.com/bytecodealliance/wasm-component-ld"
msys2_references=(
  'archlinux: wasm-component-ld'
)
license=('Apache-2.0 WITH LLVM-exception AND Apache-2.0 AND MIT')
depends=(
  "${MINGW_PACKAGE_PREFIX}-gcc-libs"
  "${MINGW_PACKAGE_PREFIX}-lld"
)
makedepends=(
  "${MINGW_PACKAGE_PREFIX}-rust"
  'git'
)
checkdepends=("${MINGW_PACKAGE_PREFIX}-rust-wasm")
source=("git+$url#tag=v$pkgver")
sha256sums=('272c96588f1bbc817184438e076c916b11395abb83110e203bdcae95922dc538')

prepare() {
  cd "${_realname}"

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

build() {
  cd "${_realname}"

  # Use debug
  export CARGO_PROFILE_RELEASE_DEBUG=2

  # Use LTO
  export CARGO_PROFILE_RELEASE_LTO=true CARGO_PROFILE_RELEASE_CODEGEN_UNITS=1

  cargo build --release --frozen --all-targets
}

check() {
  cd "${_realname}"
  cargo test --frozen
}

package() {
  cd "${_realname}"

  install -D target/release/wasm-component-ld -t "${pkgdir}${MINGW_PREFIX}/bin"

  # Package doc
  install -Dm644 README.md -t "${pkgdir}${MINGW_PREFIX}/share/doc/${_realname}"

  # Package licenses
  install -Dm644 LICENSE* -t "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}"
}
