# -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:ft=tcl:et:sw=4:ts=4:sts=4

PortSystem          1.0
PortGroup           R 1.0
PortGroup           legacysupport 1.1

# _SC_PHYS_PAGES
legacysupport.newest_darwin_requires_legacy 15

R.setup             cran duckdb duckdb 1.1.3
revision            0
categories-append   databases
maintainers         nomaintainer
license             MIT
description         DBI package for the DuckDB database management system
long_description    {*}${description}
homepage            https://github.com/duckdb/duckdb-r
checksums           rmd160  6b091bfe05511b414670dff1433f43da456b974f \
                    sha256  612601fa3232eef69e938fbd27fd03825283847db3c700b31293c07a41607d2f \
                    size    3689040

# https://github.com/duckdb/duckdb-r/issues/627
patchfiles-append   patch-fix-extract.diff

depends_build-append \
                    port:gnutar

depends_lib-append  port:R-DBI

compiler.cxx_standard 2017

if {${os.platform} eq "darwin" && ${os.major} < 16} {
    patchfiles-append   patch-Makevars.diff

    post-patch {
        # https://github.com/duckdb/duckdb/issues/7009
        if {[string match macports-gcc* ${configure.compiler}] && (${configure.build_arch} in [list i386 ppc])} {
            reinplace "s|@ATOMIC@|-latomic|" ${worksrcpath}/src/Makevars
        } else {
            reinplace "s|@ATOMIC@||" ${worksrcpath}/src/Makevars
        }

        # https://trac.macports.org/ticket/69902
        # On 10.6 and earlier LegacySupport is already used,
        # no need in duplicate flags.
        if {${os.major} > 10} {
            reinplace "s|@LEGACY_INC@|-isystem${prefix}/include/LegacySupport|" ${worksrcpath}/src/Makevars
            reinplace "s|@LEGACY_LFLAG@|-L${prefix}/lib -lMacportsLegacySupport|" ${worksrcpath}/src/Makevars
        } else {
            reinplace "s|@LEGACY_INC@||" ${worksrcpath}/src/Makevars
            reinplace "s|@LEGACY_LFLAG@||" ${worksrcpath}/src/Makevars
        }
    }
}

depends_test-append port:R-adbcdrivermanager \
                    port:R-arrow \
                    port:R-bit64 \
                    port:R-callr \
                    port:R-clock \
                    port:R-DBItest \
                    port:R-dbplyr \
                    port:R-dplyr \
                    port:R-rlang \
                    port:R-testthat \
                    port:R-tibble \
                    port:R-vctrs \
                    port:R-withr

# FIXME: some functionality for Big-endian platforms is missing, see:
# https://github.com/duckdblabs/duckplyr/issues/51
# Upstream not interested to fix it: https://github.com/duckdb/duckdb/issues/9714
test.run            yes
