# Maintainer: llmosafe contributors
# Contributor: Arch Linux support

pkgname=llmosafe
pkgver=0.6.2
pkgrel=1
pkgdesc="Safety-critical cognitive safety library — runtime guardrails with entropy/surprise/bias gauges"
arch=('x86_64')
url="https://github.com/moeshawky/llmosafe"
license=('MIT')
makedepends=('rust' 'cargo')
provides=('libllmosafe.so')
source=("${pkgname}-${pkgver}.tar.gz::${url}/archive/refs/tags/v${pkgver}.tar.gz"
        "llmosafe.pc.in")
sha256sums=('SKIP'
            'SKIP')

prepare() {
    cd "${pkgname}-${pkgver}"
    cargo fetch --locked
}

build() {
    cd "${pkgname}-${pkgver}"
    export CARGO_TARGET_DIR=target
    cargo build --release --features ffi
}

check() {
    cd "${pkgname}-${pkgver}"
    export CARGO_TARGET_DIR=target
    cargo test --release --all-features
}

package() {
    cd "${pkgname}-${pkgver}"

    install -Dm755 "target/release/libllmosafe.so" \
        "${pkgdir}/usr/lib/libllmosafe.so"

    local header_path
    header_path=$(find target/release/build -name 'llmosafe.h' -path '*/out/*' | head -1)
    install -Dm644 "${header_path}" \
        "${pkgdir}/usr/include/llmosafe.h"

    sed "s|@VERSION@|${pkgver}|g; s|@PREFIX@|/usr|g" \
        "${srcdir}/llmosafe.pc.in" \
        > "${srcdir}/llmosafe.pc"
    install -Dm644 "${srcdir}/llmosafe.pc" \
        "${pkgdir}/usr/lib/pkgconfig/llmosafe.pc"
}
