# -*- 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
PortGroup           boost 1.0

name                gr-fcdproplus
categories          science comms
maintainers         {michaelld @michaelld} openmaintainer
description         Implements a funcube dongle pro+ source in GNU Radio.
long_description    ${description}
license             GPL-3
platforms           darwin

# use C++11
compiler.cxx_standard 2011

if {${subport} eq ${name}} {

    github.setup    dl1ksv gr-fcdproplus f1154db33e7c22ff6456cf3385586832fff413f0
    version         20190817-[string range ${github.version} 0 7]
    checksums       rmd160  d4cb7da467b9a9264e184d437088e253fde45ba6 \
                    sha256  ade328aeaec50882f87041a88b1baa62b1edb5fb213da1c0ec48812a0c1a5b1b \
                    size    49706    
    revision        2

    # force c++11 standard (strange)
    # and enable system hidapi
    patchfiles-append \
        cmakelists.txt.patch

    conflicts gr37-fcdproplus

    depends_lib-append \
        path:lib/libgnuradio-runtime.dylib:gnuradio \
        port:hidapi

    set python_versions { 3.6 3.7 3.8 3.9 }
    set default_python_variant +python37

}

subport gr37-fcdproplus {

    name            gr37-fcdproplus

    github.setup    dl1ksv gr-fcdproplus 0006c36320cd7a3bc786dd6f186c94809bf445cc
    version         20180828
    checksums       rmd160 f71fa01127e21a79b662dbc2a22bc6e1b4030e69 \
                    sha256 187744ef7154008a2c6f0c636e2963674ded75d77b580b77626b7c47c285fb5f \
                    size   132229
    revision        1

    conflicts       gr-fcdproplus

    depends_lib-append \
        port:gnuradio37 \
        path:lib/pkgconfig/libusb-1.0.pc:libusb

    set python_versions { 2.7 }
    set default_python_variant +python27

    pre-patch {
        reinplace "/HINTS/s@/lib/@/share/@" \
            ${worksrcpath}/cmake/Modules/FindGnuradioModules.cmake
    }

}

# Define the available variants
foreach py_ver ${python_versions} {
    set py_ver_no_dot [join [split ${py_ver} "."] ""]
    set variant_line {variant python${py_ver_no_dot} description "Build with python ${py_ver} support"}
    foreach py_over ${python_versions} {
        if { ${py_ver} == ${py_over} } { continue }
        set py_over_no_dot [join [split ${py_over} "."] ""]
        append variant_line " conflicts python${py_over_no_dot}"
    }
    append variant_line { { } }
    eval $variant_line
    if {[variant_isset python${py_ver_no_dot}]} {
        if {${default_python_variant} != "+python${py_ver_no_dot}"} {
            set default_python_variant ""
        }
    }
}

# set default python variant if not selected
if {${default_python_variant} != ""} {
    default_variants-append "${default_python_variant}"
}

# If a python variant is enabled, activate it
set active_python_version ""
set active_python_version_no_dot ""
foreach py_ver ${python_versions} {
    set py_ver_no_dot [join [split ${py_ver} "."] ""]
    if {[variant_isset python${py_ver_no_dot}]} {
        set active_python_version        ${py_ver}
        set active_python_version_no_dot ${py_ver_no_dot}
    }
}

depends_build-append \
    port:pkgconfig \
    port:doxygen \
    port:cppunit \
    port:swig-python

depends_lib-append \
    port:python${active_python_version_no_dot}

boost.version 1.71

# specify the Python version to use
set python_framework_dir ${frameworks_dir}/Python.framework/Versions/${active_python_version}
configure.args-append \
    -DPYTHON_EXECUTABLE=${python_framework_dir}/bin/python${active_python_version} \
    -DPYTHON_INCLUDE_DIR=${python_framework_dir}/Headers \
    -DPYTHON_LIBRARY=${python_framework_dir}/Python \
    -DGR_PYTHON_DIR=${python_framework_dir}/lib/python${active_python_version}/site-packages

# disable because it fails to find Doxyfile.swig_doc.in
configure.args-append \
    -DENABLE_DOXYGEN=OFF \
    -DCMAKE_CXX_STANDARD=11
