
makedepends=(rustc llvm)

description="Automatically generates Rust FFI bindings to C (and some C++) libraries"
url="https://github.com/rust-lang/rust-bindgen"

packager="Great-OS Team"
maintainer="Great-OS Team"

name="rust-bindgen"
version="0.72.1"
release=1

_name=bindgen

PKGMK_KEEP_SOURCES="no"

source=(https://github.com/rust-lang/rust-bindgen/archive/refs/tags/v$version.tar.gz)

prepare() {
    cd $name-$version
    cargo fetch --locked --target "$(rustc --print host-tuple)"
    mkdir -p completions
}

build() {

    cd $name-$version

    cargo build --release --frozen
    local _completion="target/release/${_name} --generate-shell-completions"
    $_completion bash > "completions/${_name}"
    $_completion fish > "completions/${_name}.fish"
    $_completion zsh > "completions/_${_name}"
}
package() {

    cd $name-$version

    install -Dm755 "target/release/${_name}" "$PKG"/usr/bin/bindgen
    install -Dm644 README.md "$PKG"/usr/share/doc/$name-$version/README.md
    install -Dm644 LICENSE "$PKG"/usr/share/licenses/$name-$version/LICENSE
    install -Dm664 "completions/${_name}" -t "$PKG/usr/share/bash-completion/completions/"
    install -Dm664 "completions/${_name}.fish" -t "$PKG/usr/share/fish/vendor_completions.d/"
    install -Dm664 "completions/_${_name}" -t "$PKG/usr/share/zsh/site-functions/"
}
