# -*- 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                lalpulsar
version             7.0.0
revision            0

description         LSC Algorithm Library - Pulsar
long_description    LIGO Scientific Collaboration Algorithm Library - Pulsar containing \
                    routines for continuous wave gravitational data analysis.

checksums           rmd160  406ce40d38231ee173fcf4f3b7c3042aca70c639 \
                    sha256  8ccec2a6160faf47b142c09fe873c0f7a711a1b24eb47d9c821704e5e2874f3b \
                    size    127266668

depends_lib-append  port:cfitsio \
                    port:fftw-3 \
                    port:fftw-3-single \
                    port:gsl \
                    port:libxml2 \
                    port:lal \
                    port:lalframe \
                    port:lalsimulation \
                    port:lalinference

configure.args --enable-openmp

# 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-append  port:py${v}-lal \
                        port:py${v}-astropy
}

# 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

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
}
