# Maintainer: Ryan Malloy <ryan@supported.systems>
pkgname=cp210xmanufacturing
pkgver=1.0
pkgrel=1
pkgdesc="Silicon Labs CP210x USB-UART bridge manufacturing/customization library"
arch=('x86_64')
url="https://www.silabs.com/interface/usb-bridges/classic/device.cp2102"
license=('custom:Silicon Labs')
depends=('libusb')
makedepends=('gcc' 'make' 'unzip')
install=cp210xmanufacturing.install
source=("https://www.silabs.com/documents/public/example-code/AN721SW.zip"
        "SiliconLabs.rules")
sha256sums=('42cec8a75bf80120c02fa3a8a32ecfc1ba968ae32029efa3a7e5ca678b672fb1'
            'bb046b9f9399cc7131bfee413c34f07c548df93dfbcc3fb58b64006bcd9c6f16')
options=('!strip')

prepare() {
    cd "$srcdir"
    unzip -o AN721SW.zip
    cd AN721SW/Linux/LibrarySourcePackages
    tar -xzf cp210xmanufacturing_1.0.tar.gz
}

build() {
    cd "$srcdir/AN721SW/Linux/LibrarySourcePackages/cp210xmanufacturing"
    make LIB_ARCH=64
}

package() {
    cd "$srcdir/AN721SW/Linux/LibrarySourcePackages/cp210xmanufacturing"

    # Install shared library
    install -Dm755 build/lib/x86_64/libcp210xmanufacturing.so.1.0 \
        "$pkgdir/usr/lib/libcp210xmanufacturing.so.1.0"
    ln -s libcp210xmanufacturing.so.1.0 "$pkgdir/usr/lib/libcp210xmanufacturing.so.1"
    ln -s libcp210xmanufacturing.so.1 "$pkgdir/usr/lib/libcp210xmanufacturing.so"

    # Install static library
    install -Dm644 build/lib/x86_64/libcp210xmanufacturing.a \
        "$pkgdir/usr/lib/libcp210xmanufacturing.a"

    # Install headers
    install -d "$pkgdir/usr/include/cp210x"
    install -Dm644 cp210xmanufacturing/include/*.h "$pkgdir/usr/include/cp210x/"

    # Install udev rules
    install -Dm644 "$srcdir/SiliconLabs.rules" \
        "$pkgdir/usr/lib/udev/rules.d/99-silabs-cp210x.rules"

    # License
    install -Dm644 doc/ReadMe.txt "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
}
