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

github.setup        sbmlteam libsbml 5.21.0 v
github.tarball_from archive
revision            0

categories          science
maintainers         {@funasoul gmail.com:funasoul} openmaintainer
license             LGPL-2.1+

description         The Systems Biology Markup Language library
long_description    LibSBML is a free, open-source programming library to \
                    help you read, write, manipulate, translate, and validate \
                    SBML files and data streams. It is not an application \
                    itself (though it does come with example programs), but \
                    rather a library you can embed in your own applications.

homepage            https://sbml.org/Software/libSBML

checksums           rmd160  5f93ce07d68b77ffd38d64c320608399a0c5e845 \
                    sha256  95236a4c6f9f117b8692d4c0721c592c6e3f726cd1ca4f3d8c2af5ab047ddcb7 \
                    size    28890648

patchfiles          patch-python-mp.diff

depends_build-append \
                    port:check \
                    path:bin/pkg-config:pkgconfig \
                    port:swig

depends_lib-append  port:bzip2 \
                    port:zlib

configure.args-append \
                    -DWITH_EXAMPLES:BOOL=ON \
                    -DWITH_CHECK:BOOL=ON

test.run            yes
test.target         check

variant arrays description {Enable libSBML support for the SBML Level 3 Arrays and Sets ('arrays')} {
    configure.args-append   -DENABLE_ARRAYS:BOOL=ON
}

variant comp description {Enable libSBML support for the SBML Level 3 Hierarchical Model ('comp')} {
    configure.args-append   -DENABLE_COMP:BOOL=ON
}

variant cppnamespace description {Use a C++ namespace for libSBML} {
    configure.args-append   -DWITH_CPP_NAMESPACE:BOOL=ON
}

variant distrib description {Enable libSBML support for the SBML Level 3 Distributions ('distrib')} {
    configure.args-append   -DENABLE_DISTRIB:BOOL=ON
}

variant dyn description {Enable libSBML support for the SBML Level 3 Dynamic Structures ('dyn')} {
    configure.args-append   -DENABLE_DYN:BOOL=ON
}

variant expat conflicts libxml2 description {Use the Expat XML parser library} {
    depends_lib-append      port:expat
    configure.args-append   -DWITH_EXPAT:BOOL=ON \
                            -DWITH_LIBXML:BOOL=OFF \
                            -DWITH_XERCES:BOOL=OFF
}

variant fbc description {Enable libSBML support for the SBML Level 3 Flux Balance Constraints ('fbc')} {
    configure.args-append   -DENABLE_FBC:BOOL=ON
}

variant groups description {Enable libSBML support for the SBML Level 3 Groups ('groups')} {
    configure.args-append   -DENABLE_GROUPS:BOOL=ON
}

variant java description {Configure to use Java} {
    depends_build-append   port:swig-java
    configure.args-append  -DWITH_JAVA:BOOL=ON
}

variant layout description {Enable libSBML support for the SBML Level 3 Graphical Layout ('layout')} {
    configure.args-append   -DENABLE_LAYOUT:BOOL=ON
}

variant libxml2 conflicts expat description {Use the libxml2 XML parser library} {
    depends_lib-append      port:libxml2
    configure.args-append   -DWITH_EXPAT:BOOL=OFF \
                            -DWITH_LIBXML:BOOL=ON \
                            -DWITH_XERCES:BOOL=OFF
}

variant multi description {Enable libSBML support for the SBML Level 3 Multistate and Multicomponent ('multi')} {
    configure.args-append   -DENABLE_MULTI:BOOL=ON
}

variant python313 conflicts python314 description {Configure to use Python version 3.13} {
    depends_build-append    port:swig-python
    depends_lib-append      port:python313
    configure.args-append   -DWITH_PYTHON:BOOL=ON -DPYTHON_EXECUTABLE=${prefix}/bin/python3.13 -DPYTHON_USE_DYNAMIC_LOOKUP:BOOL=ON
}

variant python314 conflicts python313 description {Configure to use Python version 3.14} {
    depends_build-append    port:swig-python
    depends_lib-append      port:python313
    configure.args-append   -DWITH_PYTHON:BOOL=ON -DPYTHON_EXECUTABLE=${prefix}/bin/python3.14 -DPYTHON_USE_DYNAMIC_LOOKUP:BOOL=ON
}

variant qual description {Enable libSBML support for the SBML Level 3 Qualitative Models ('qual')} {
    configure.args-append   -DENABLE_QUAL:BOOL=ON
}

variant render description {Enable libSBML support for the SBML Level 3 Rendering ('render')} {
    configure.args-append   -DENABLE_RENDER:BOOL=ON
}

variant req description {Enable libSBML support for the SBML Level 3 Required Elements ('req')} {
    configure.args-append   -DENABLE_REQUIREDELEMENTS:BOOL=ON
}

variant spatial description {Enable libSBML support for the SBML Level 3 Spatial Processes ('spatial')} {
    configure.args-append   -DENABLE_SPATIAL:BOOL=ON
}

if {![variant_isset expat] && ![variant_isset libxml2]} {
    default_variants +libxml2
}
