# -*- 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

name                lalmetaio
version             4.0.5
revision            0

description         LSC Algorithm Library - MetaIO
long_description    LIGO Scientific Collaboration Algorithm Library - MetaIO containing \
                    routines for reading/writing LIGO_LW XML files.

checksums           rmd160  1498e68b0c0baf207210037293c9d29508f93888 \
                    sha256  f93bac986ebbbe56b74c5b261e608c3b253d6a8561244d31cd20f42e999d6fbb \
                    size    378884

depends_lib-append  port:lal \
                    port:metaio

# add Python dependencies for python subports
if {[string match "py*" ${subport}]} {
    set numbers [regexp -all -inline -- {[0-9]+} ${subport}]
    set v [lindex ${numbers} 0]
    # python, C-library port, and numpy are automatically added below
    depends_lib     port:py${v}-lal
}

# add Octave dependencies for octave subports
if {[string match "octave-*" ${subport}]} {
    # octave, and C-library port are automatically added below
    depends_lib     port:octave-lal
}

###################################################################
### Everything below this line is common to all LALSuite ports. ###
###################################################################

categories          science
maintainers         nomaintainer
license             GPL-2+

homepage            https://wiki.ligo.org/Computing/DASWG/LALSuite
master_sites        https://software.igwn.org/lscsoft/source/lalsuite
use_xz              yes

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

# Choose a compiler that supports OpenMP.
compiler.openmp_version 2.5

configure.args-append \
                    --mandir=${prefix}/share/man \
                    --disable-silent-rules \
                    --disable-gcc-flags \
                    --enable-swig-iface \
                    --disable-swig-octave \
                    --disable-swig-python \
                    --disable-python

test.run            yes
test.target         check

# Create subports for each supported Python version
foreach v {312} {
  subport py${v}-${name} {
    set pythonversion   [string index ${v} 0].[string range ${v} 1 end]
    set pythonhome      "${frameworks_dir}/Python.framework/Versions/${pythonversion}"
    set pythondir       "${pythonhome}/lib/python${pythonversion}/site-packages"

    categories-append   python
    description         Python ${pythonversion} bindings for ${description}
    long_description    ${long_description} This package provides Python \
                        ${pythonversion} bindings, modules, and scripts.

    depends_build-append \
                        port:swig-python

    depends_lib-prepend port:python${v} \
                        port:${name} \
                        port:py${v}-numpy

    configure.args-append   PYTHON=${pythonhome}/bin/python${pythonversion}
    configure.args-replace  --disable-python --enable-python
    configure.args-replace  --disable-swig-python --enable-swig-python

    destroot.args-append \
                        pythondir="${pythondir}" \
                        pyexecdir="${pythondir}" \
                        pkgpythondir="${pythondir}/${name}" \
                        pkgpyexecdir="${pythondir}/${name}" \
                        prefix="${pythonhome}"

    # Only install SWIG bindings, Python libraries, and Python scripts
    destroot {
      command_exec destroot "" "-C swig"
      command_exec destroot "" "-C python"
    }

    post-destroot {
      # Remove Python include directory
      # (duplicate of SWIG headers in ${prefix}/include)
      file delete -force ${destroot}${pythonhome}/include
    }
  }
}

subport octave-${name} {
  set pythonversion     [string index ${v} 0].[string range ${v} 1 end]
  set pythonhome        "${frameworks_dir}/Python.framework/Versions/${pythonversion}"
  set pythondir         "${pythonhome}/lib/python${pythonversion}/site-packages"

  categories-append     octave
  description           Octave ${pythonversion} bindings for ${description}
  long_description      ${long_description} This package provides Octave \
                        bindings, modules, and scripts.

  depends_build-append  port:swig-octave

  depends_lib-prepend   port:octave \
                        port:${name}

  configure.args-replace --disable-swig-octave --enable-swig-octave

  # Only install SWIG bindings, Python libraries, and Python scripts
  destroot {
    command_exec destroot "" "-C swig"
  }

  post-destroot {
    # Remove Octave include directory
    # (duplicate of SWIG headers in ${prefix}/include)
    file delete -force ${destroot}${prefix}/include
  }
}

if {${name} eq ${subport}} {
  livecheck.type        regex
  livecheck.url         ${master_sites}
  livecheck.regex       ${name}-(\\d+(?:\\.\\d+)*)${extract.suffix}
} else {
  livecheck.type        none
}
