File PKGBUILD of Package numbat

# Maintainer: Sebastian Wiesner <sebastian@swsnr.de>

pkgname=numbat
pkgver=1.16.0
pkgrel=2
pkgdesc='A statically typed programming language for scientific computations'
arch=('x86_64')
url="https://numbat.dev"
license=('MIT OR Apache-2.0')
depends=()
makedepends=('rust' 'cargo' 'git')
source=(
    "git+https://github.com/sharkdp/${pkgname}.git#tag=v${pkgver}"
    "vendor.tar.zst"
)
# Disable LTO due to link failures with ring, see https://gitlab.archlinux.org/archlinux/packaging/packages/pacman/-/issues/20#note_172172
options=("!lto")
sha256sums=('ee8fca5185fe06481f6f7095d9a4bf62899bc1b90485bc1e71a90b278fb3e2c6'
            'ce961461077d83535a5fca0b05b40b928e964dd32c503cc58d6b452cdb17a1e5')

prepare() {
    cd "${pkgname}" || return 1
    mkdir -p .cargo
    cat > .cargo/config.toml <<EOF
[source.crates-io]
replace-with = "vendored-sources"

[source.vendored-sources]
directory = "../vendor"
EOF
}

build() {
    cd "${pkgname}" || return 1
    cargo build --release --frozen
}

package() {
    install -Dm755 -t "${pkgdir}/usr/bin" "${srcdir}/${pkgname}/target/release/${pkgname}"

    # Numbat recommends to install modules explicitly, for source lookup in error messages
    mkdir -pm755 "${pkgdir}/usr/share/${pkgname}"
    cp -Tr "${srcdir}/${pkgname}/numbat/modules" "${pkgdir}/usr/share/${pkgname}/modules"

    # Desktop files and icons
    install -Dm644 -t "${pkgdir}/usr/share/applications" "${srcdir}/${pkgname}/assets/numbat.desktop"
    install -Dm644 -t "${pkgdir}/usr/share/icons/hicolor/scalable/apps/" "${srcdir}/${pkgname}/assets/numbat.svg"
    for size in 16 22 24 32 48 64 128 256 512; do
        install -Dm644 "${srcdir}/${pkgname}/assets/numbat-${size}x${size}.png" \
            "${pkgdir}/usr/share/icons/hicolor/${size}x${size}/apps/numbat.png"
    done
}
openSUSE Build Service is sponsored by