# Maintainer: Ronald van Haren <ronald.archlinux.org>
# Maintainer: Bruno Pagani <archange@archlinux.org>
# Contributor: damir <damir@archlinux.org>

# ALARM: Kevin Mihelich <kevin@archlinuxarm.org>
#  - disable CDFS for 32-bit ARM

pkgname=netcdf
pkgver=4.9.0
pkgrel=3
pkgdesc="network Common Data Form interface for array-oriented data access and corresponding library"
arch=(x86_64)
url="https://www.unidata.ucar.edu/software/netcdf/"
depends=(hdf5 curl libxml2 libaec blosc bzip2 libzip zstd)
makedepends=(cmake)
checkdepends=(unzip)
optdepends=('netcdf-fortran: fortran bindings' 'netcdf-cxx: c++ bindings')
options=(!makeflags)
license=(custom)
source=(https://github.com/Unidata/netcdf-c/archive/v${pkgver}/${pkgname}-${pkgver}.tar.gz
        netcdf-4.9.0-fix-cmake-typo.patch::https://github.com/Unidata/netcdf-c/pull/2412.patch
        netcdf-4.9.0-read-chunk-size.patch::https://github.com/Unidata/netcdf-c/pull/2319.patch)
sha256sums=('9f4cb864f3ab54adb75409984c6202323d2fc66c003e5308f3cdf224ed41c0a6'
            'ed45ae6c49cf8dcddaadef4c5cf403049bf3f761187413d7b03754d319345d6a'
            'd71b441b6499d6ddb97ea25377018000781d16de6551f0d2ba33b9bcd6e769fd')

prepare() {
  # https://github.com/Unidata/netcdf-c/issues/2188 https://github.com/Unidata/netcdf-c/issues/2242
  sed -i "/tst_remote3/d" ${pkgname}-c-${pkgver}/ncdap_test/CMakeLists.txt
  # https://github.com/Unidata/netcdf-c/issues/2390
  patch -p1 -d ${pkgname}-c-${pkgver} < netcdf-4.9.0-fix-cmake-typo.patch
  # https://github.com/Unidata/netcdf-c/issues/2418
  patch -p1 -d ${pkgname}-c-${pkgver} < netcdf-4.9.0-read-chunk-size.patch
}

build() {
  [[ $CARCH != "aarch64" ]] && CDFS="OFF" || CDFS="ON"
  cmake -B build -S ${pkgname}-c-${pkgver} \
    -DCMAKE_INSTALL_PREFIX=/usr \
    -DCMAKE_INSTALL_LIBDIR=lib \
    -DCMAKE_BUILD_TYPE=Release \
    -DENABLE_BYTERANGE=ON \
    -DENABLE_CDF5=${CDFS} \
    -DENABLE_DAP_LONG_TESTS=ON \
    -DENABLE_DAP_REMOTE_TESTS=ON \
    -DENABLE_EXAMPLE_TESTS=ON \
    -DENABLE_EXTRA_TESTS=ON \
    -DENABLE_FILTER_TESTING=ON \
    -DENABLE_LARGE_FILE_TESTS=ON \
    -DENABLE_UNIT_TESTS=ON
  make -C build
}

check() {
  make -C build test
}

package() {
  make -C build DESTDIR="${pkgdir}" install
  install -Dm644 ${pkgname}-c-${pkgver}/COPYRIGHT -t "${pkgdir}"/usr/share/licenses/${pkgname}/
}