# -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:filetype=tcl:et:sw=4:ts=4:sts=4

PortSystem          1.0
PortGroup           cmake 1.1
PortGroup           github 1.0

github.setup        pothosware SoapySDR 0.8.1 soapy-sdr-
revision            1
# Change github.tarball_from to 'releases' or 'archive' next update
github.tarball_from tarball
checksums           rmd160  c9488967b821f644b46df69c5d37c6888718ae56 \
                    sha256  cc1dc3878861270fd95f9226f87abe63eff1413f17a778b4236e8cfd016c1faa \
                    size    131245

categories          science
license             Boost-1
maintainers         gmail.com:gedgy63 {michaelld @michaelld} {ra1nb0w @ra1nb0w} openmaintainer

description         A fresh and clean vendor neutral and platform independent SDR support library
long_description    SoapySDR is an open-source generalized C/C++ API and runtime library for interfacing with SDR devices. With SoapySDR, you can instantiate, configure, and stream with an SDR device in a variety of environments. Both osmosdr and uhd devices are available within SoapySDR. In addition, vendors can directly support their hardware using SoapySDR device modules. There are wrappers for both gr-osmosdr, uhd, and gr-uhd to bring an ecosystem of existing applications to SoapySDR devices. And SoapySDR has support for powerful platforms like GNU Radio and Pothos.

homepage            ${github.homepage}/wiki

compiler.cxx_standard 2011

patchfiles          cmake_minimum_required.patch \
                    non-virtual-dtor.patch \
                    SoapySDRUtil.cmake.patch

configure.args-append \
    -DENABLE_PYTHON=OFF \
    -DENABLE_PYTHON3=OFF

# specify the Python dependencies; these are checked for at configure,
# then used for building, but not at runtime.

set pythons2_suffixes {27}
set pythons3_suffixes {36 37 38 39}

set pythons_ports {}
foreach s ${pythons2_suffixes} {
    lappend pythons_suffixes ${s}
    lappend pythons2_ports python${s}
}
foreach s ${pythons3_suffixes} {
    lappend pythons_suffixes ${s}
    lappend pythons3_ports python${s}
}

proc python_dir {} {
    global pythons_suffixes
    foreach s ${pythons_suffixes} {
        if {[variant_isset python${s}]} {
            set p python[string index ${s} 0].[string range ${s} 1 end]
            return [file normalize [exec ${p} -c "import sys; print(sys.prefix)"]/lib/${p}/site-packages]
        }
    }
    error "Python support not enabled."
}

foreach s ${pythons2_suffixes} {
    set p python${s}
    set v [string index ${s} 0].[string range ${s} 1 end]
    set i [lsearch -exact ${pythons2_ports} ${p}]
    set c [lreplace ${pythons2_ports} ${i} ${i}]
    variant ${p} description "Build SoapySDR using Python ${v}" conflicts {*}${c} "
    # required Python
    depends_lib-append \
        port:${p}
    depends_build-append \
        port:swig-python
    # specify the Python version to use
    configure.args-delete \
        -DENABLE_PYTHON=OFF
    configure.args-append \
        -DENABLE_PYTHON=ON \
        -DPYTHON_EXECUTABLE=${frameworks_dir}/Python.framework/Versions/${v}/bin/python${v} \
        -DPYTHON_CONFIG_EXECUTABLE=${frameworks_dir}/Python.framework/Versions/${v}/bin/python${v}-config \
        -DPYTHON_INSTALL_DIR=${frameworks_dir}/Python.framework/Versions/${v}/lib/python${v}/site-packages
    "
}

foreach s ${pythons3_suffixes} {
    set p python${s}
    set v [string index ${s} 0].[string range ${s} 1 end]
    set i [lsearch -exact ${pythons3_ports} ${p}]
    set c [lreplace ${pythons3_ports} ${i} ${i}]
    variant ${p} description "Build SoapySDR using Python ${v}" conflicts {*}${c} "
    # required Python
    depends_lib-append \
        port:${p}
    depends_build-append \
        port:swig-python
    # specify the Python version to use
    configure.args-delete \
        -DENABLE_PYTHON3=OFF
    configure.args-append \
        -DENABLE_PYTHON3=ON \
        -DPYTHON3_EXECUTABLE=${frameworks_dir}/Python.framework/Versions/${v}/bin/python${v} \
        -DPYTHON3_CONFIG_EXECUTABLE=${frameworks_dir}/Python.framework/Versions/${v}/bin/python${v}-config \
        -DPYTHON3_INSTALL_DIR=${frameworks_dir}/Python.framework/Versions/${v}/lib/python${v}/site-packages
    "
}
