# -*- 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           boost 1.0
PortGroup           cmake 1.1
PortGroup           github 1.0
PortGroup           qt5 1.0

github.setup        pcraster pcraster 4.4.2 v
github.tarball_from archive
revision            0

categories          gis
license             GPL
maintainers         {yahoo.com:n_larsson @nilason} openmaintainer
description         PCRaster - Environmental modelling software
long_description    PCRaster is a collection of tools and software libraries   \
                    tailored to the construction of spatio-temporal            \
                    environmental models. Application domains are amongst      \
                    others hydrology (rainfall-runoff, global water balance,   \
                    groundwater (with Modflow)), ecology, or land use change.

homepage            https://pcraster.geo.uu.nl

checksums           rmd160  7a2549bb11357e9138dd8cb996319a32a19754a4 \
                    sha256  c8e34bfac4cb07f1debf5de242b83d53f4b7e23db032bff7ff44bea7d582e8ae \
                    size    24896740

patchfiles-append   patch-configure_python_extension.diff \
                    patch_pybind11.diff

compiler.cxx_standard \
                    2017

cmake.build_type    Release
cmake.generator     Ninja

configure.args-append \
                    -DPCRASTER_BUILD_MLDD=ON \
                    -DPCRASTER_BUILD_MOC=ON \
                    -DPCRASTER_BUILD_MULTICORE=OFF \
                    -DPCRASTER_WITH_FLAGS_IPO=OFF

configure.cxxflags-append \
                    -isystem [boost::include_dir] \
                    -DGL_SILENCE_DEPRECATION

if {[variant_isset debug]} {
    configure.cflags-append   -DDEBUG_BUILD -DDEBUG_DEVELOP
    configure.cxxflags-append -DDEBUG_BUILD -DDEBUG_DEVELOP
}

depends_lib-append  port:gdal \
                    port:ncurses \
                    port:xercesc3

qt5.depends_component qtcharts

# Python variants
set python_suffixes {310 311 312 313}
set python_variants {}
set plugin_variants {}
foreach pyver ${python_suffixes} {
    lappend python_variants python${pyver}
    lappend plugin_variants plugin_support${pyver}
}
foreach pyver ${python_suffixes} {
    set vrt python${pyver}
    set pyversion [string index ${pyver} 0].[string range ${pyver} 1 end]
    set index [lsearch -exact ${python_variants} ${vrt}]
    set conf [lreplace ${python_variants} ${index} ${index}]
    set pydir ${frameworks_dir}/Python.framework/Versions/${pyversion}
    set py_pkgd ${pydir}/lib/python${pyversion}/site-packages
    variant ${vrt} description "Use Python ${pyversion} bindings" conflicts {*}${conf} "
        depends_lib-append      port:python${pyver} \
                                port:py${pyver}-pybind11 \
                                port:py${pyver}-pyqt5-chart \
                                port:py${pyver}-matplotlib \
                                port:py${pyver}-numpy

        configure.args-append   -DPython3_EXECUTABLE=${pydir}/bin/python${pyversion} \
                                -DPCRASTER_PYTHON_INSTALL_DIR=${pydir}/lib/python${pyversion}/site-packages \
                                -DCMAKE_PREFIX_PATH=\\\"[boost::install_area]\\;${cmake_share_module_dir}\\;${py_pkgd}/pybind11/share/cmake/pybind11\\\"
    "
}
# Python default (keep in sync with QGIS' default Python variant)
set python_default "if {"
foreach pyver ${python_suffixes} {
    set python_default "${python_default}!\[variant_isset python${pyver}\] && "
}
set python_default [string range ${python_default} 0 end-4]
set python_default "${python_default}} { default_variants +python313}"
eval ${python_default}

post-destroot {
    move ${destroot}${prefix}/bin/legend ${destroot}${prefix}/bin/pcrlegend
}

notes "The utility 'legend' is renamed to 'pcrlegend' due to conflict with mapserver."
