# Maintainer: Christoph Reiter <reiter.christoph@gmail.com>

pkgname=cargo-c
pkgver=0.10.20
pkgrel=1
pkgdesc='A cargo subcommand to build and install C-ABI compatibile dynamic and static libraries'
arch=('i686' 'x86_64')
url='https://github.com/lu-zero/cargo-c/'
msys2_references=(
  'archlinux: cargo-c'
  'gentoo: dev-util/cargo-c'
  'purl: pkg:cargo/cargo-c'
)
license=('spdx:MIT')
depends=(
  "rust"
  "libsqlite"
  "libssh2"
  "libgit2"
  "libcurl"
  "openssl-devel"
)
makedepends=(
  "pkgconf"
  "libopenssl"
  "libgit2-devel"
  "libssh2-devel"
  "libsqlite-devel"
  "libcurl-devel"
)
options=('!strip')
source=("https://github.com/lu-zero/cargo-c/archive/v${pkgver}/cargo-c-${pkgver}.tar.gz"
        "cargo-c-${pkgver}.Cargo.lock::https://github.com/lu-zero/cargo-c/releases/download/v${pkgver}/Cargo.lock"
        "0002-msys-support.patch")
sha256sums=('9bdf7c10b44466a7c01dc4ed152da5031793cca9e0c8009d73223a32522cf2c3'
            '4ff6e5180204220f95916210c6b174dabe03381d7e77550547742b210165b57d'
            'a446f41796e980df0c19ba876aabc2f820e2165e72d15c9d147c44a1d7b9a2ac')

prepare() {
  cp "cargo-c-${pkgver}.Cargo.lock" "cargo-c-${pkgver}/Cargo.lock"
  cd "cargo-c-${pkgver}"

  patch -p1 -i ../0002-msys-support.patch

  cargo fetch --locked --target "${RUST_CHOST}"
}

_env() {
  export LIBGIT2_NO_VENDOR=1
  export OPENSSL_NO_VENDOR=1
  export LIBSSH2_SYS_USE_PKG_CONFIG=1
  export LIBSQLITE3_SYS_USE_PKG_CONFIG=1
}

build() {
  cd "cargo-c-${pkgver}"

  _env
  cargo build --frozen --profile release-strip
}

check() {
  cd "cargo-c-${pkgver}"

  _env
  cargo test --frozen --profile release-strip
}

package() {
  cd "cargo-c-${pkgver}"

  _env
  cargo install \
    --frozen \
    --offline \
    --no-track \
    --path . \
    --root "${pkgdir}/usr" \
    --profile release-strip

  install -Dm644 "LICENSE" -t "${pkgdir}/usr/share/licenses/cargo-c"
}
