# -*- 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           active_variants 1.1
PortGroup           python 1.0

name                py-omniORBpy
version             4.2.2
python.versions     27 36
python.default_version 36
categories-append   devel
license             LGPL-2.1
platforms           darwin
supported_archs     i386 x86_64

maintainers         nomaintainer

description         Python bindings for omniORB

long_description    omniORB is a robust high performance CORBA ORB for C++ and \
                    Python. omniORB is largely CORBA 2.6 compliant.

homepage            http://omniorb.sourceforge.net/
master_sites        sourceforge:project/omniorb/omniORBpy/omniORBpy-${version}

distname            omniORBpy-${version}

checksums           rmd160  7a162d5c1ceb130b5951b8981f215a454c326ab8 \
                    sha256  f3686e5f85b7c7fec83a1ec97dc6874d336e24830c0e68f1e1ecbd798fa1696a \
                    size    666047

use_bzip2           yes

# Use the python subports feature but omniORBpy uses make
# rather than setup.py for building since there are compiled libraries.
# So the build procedure must unravel the python PortGroup settings
# and revert to values compatible with a make environment.
# Ugly but it works.

if {${name} ne ${subport}} {
    depends_lib-append  port:omniORB

    # omniORB is not universal
    universal_variant   no

    # The omniORB @4.2.0_1 port (and earlier) used Python 2.7 unconditionally.
    require_active_variants omniORB python${python.version}

    patchfiles          patch-dir.mk

    post-patch {
        # python libraries (PYTHON_PREFIX)
        reinplace "s|get_python_lib(0,\[^)\]*)|get_python_lib()|g" \
            ${worksrcpath}/configure
        # compiled libraries to support python (PYTHON_EXEC_PREFIX)
        reinplace "s|get_python_lib(1,\[^)\]*)|get_python_lib()|g" \
            ${worksrcpath}/configure
    }

    use_configure       yes

    configure.python    ${python.bin}

    build.type          gnu
    build.cmd           make
    build.target        all
    build.args          {}

    destroot.cmd        ${build.cmd}
    destroot.target     install
    destroot.args       {}
    destroot.destdir    DESTDIR=${destroot}

    variant ssl description {Enable SSL support} {
        configure.args-append   --with-openssl
        depends_lib-append      path:lib/libssl.dylib:openssl
    }

    post-destroot {
        if {${python.version} != 27} {
            # create a directory under /opt/local/Library/Frameworks/Python.framework/
            file mkdir ${destroot}${python.pkgd}
            # remove only the lowest-level directory to allow a directory copy...
            file delete ${destroot}${python.pkgd}
            file rename [glob ${destroot}${prefix}/lib/python*/site-packages] ${destroot}${python.pkgd}
            # omniORB already installs an empty __init__.py
            file delete [glob ${destroot}${python.pkgd}/omniidl_be/__init__.py]
            file delete [glob ${destroot}${python.pkgd}/omniidl_be/__pycache__/__init__*.pyc]
        }
    }

    livecheck.type      none
} else {
    livecheck.type      regex
    livecheck.url       http://sourceforge.net/projects/omniorb/files/omniORBpy/
    livecheck.regex     "/omniorb/files/omniORBpy/omniORBpy-(\\d+\\.\\d+(?:\\.\\d+)*)/"
}