# -*- 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 name libiio categories science comms maintainers {michaelld @michaelld} openmaintainer description ${name} is used to interface to the Industrial Input/Output (IIO) Subsystem long_description {*}${description}. The IIO subsystem is intended to provide \ support for devices that in some sense are analog to \ digital or digital to analog converters (ADCs, DACs). This \ includes, but is not limited to ADCs, Accelerometers, Gyros, \ IMUs, Capacitance to Digital Converters (CDCs), Pressure \ Sensors, Color, Light and Proximity Sensors, Temperature \ Sensors, Magnetometers, DACs, DDS (Direct Digital Synthesis), \ PLLs (Phase Locked Loops), Variable/Programmable Gain \ Amplifiers (VGA, PGA), and RF transceivers. You can use libiio \ natively on an embedded Linux target (local mode), or use \ libiio to communicate remotely to that same target from a host \ Linux, Windows, or MAC over USB or Ethernet or Serial. license LGPL-2+ # release github.setup analogdevicesinc libiio 0.24 v # Change github.tarball_from to 'releases' or 'archive' next update github.tarball_from tarball checksums rmd160 5c214e103c2527ace2b8e4ff5cf46d5ff0210115 \ sha256 3680d53aa129ca2ebaac009fecc88b9f4e79d1c3ad03067c16321d25b91ee779 \ size 483053 revision 3 long_description ${long_description} Provides the release, which is \ typically updated every few months to yearly. # because I moved from a "devel" style 20190503 to a release style # "0.18" and the latter is "less than" the former when comparing. epoch 1 # patch to fix linking patchfiles-append patch-fix-linking.diff # patch to fix install directory of the framework patchfiles-append patch-fix_build.diff # patch to disable checking for libiio during install patchfiles-append patch-disable-install-libiio-check.diff if {${os.platform} eq "darwin" && ${os.major} < 15} { PortGroup legacysupport 1.1 # strnlen legacysupport.newest_darwin_requires_legacy 10 # This is the last commit which builds. github.setup analogdevicesinc libiio 027919e318aacbe56c4a4a64803b6dead068180c version 0.19 revision 1 checksums rmd160 1ace55fd89616d3a79d4ef70b99e517f17e6addd \ sha256 b0efca3544cd106d9e3ef3957cff658fdd525af0a2f98aef2c00e8cc24277d7e \ size 236403 github.tarball_from archive patchfiles-replace \ patch-fix_build.diff patch-fix_build-0.19.diff \ patch-fix-linking.diff patch-fix-linking-0.19.diff patchfiles-append \ patch-fix-headers.diff # Uses endianness macros and built-ins requiring newer gcc. compiler.blacklist-append \ *gcc-4.0 *gcc-4.2 } # additional arguments configure.args-append \ -DCMAKE_INSTALL_DOCDIR=${prefix}/share/doc/${github.project} \ -DOSX_INSTALL_FRAMEWORKSDIR=${frameworks_dir} depends_lib-append \ port:libxml2 \ path:lib/pkgconfig/libusb-1.0.pc:libusb depends_build-append \ path:bin/pkg-config:pkgconfig \ path:bin/doxygen:doxygen # remove top-level library path, such that internal libraries are used # instead of any already-installed ones. configure.ldflags-delete -L${prefix}/lib configure.args-append \ -DLIBUSB_INCLUDE_DIR:PATH=${prefix}/include/libusb-1.0 \ -DLIBUSB_LIBRARIES:FILEPATH=${prefix}/lib/libusb-1.0.dylib \ -DOSX_PACKAGE=OFF \ -DPYTHON_BINDINGS=ON # specify the Python dependencies; these are checked for at configure, # then used for building, but not at runtime. set pythons_suffixes {27 35 36 37 38 39 310 311} set pythons_ports {} foreach s ${pythons_suffixes} { lappend pythons_ports python${s} } foreach s ${pythons_suffixes} { set p python${s} set v [string index ${s} 0].[string range ${s} 1 end] set i [lsearch -exact ${pythons_ports} ${p}] set c [lreplace ${pythons_ports} ${i} ${i}] variant ${p} description "Build ${name} using Python ${v}" conflicts {*}${c} "" } # default to Py310 if not selected by the user set selected_python_no_dot 310 foreach s ${pythons_suffixes} { if {[variant_isset python${s}]} { set selected_python_no_dot ${s} } } default_variants +python${selected_python_no_dot} # make sure the default python variant wasn't # deselected without selecting another one set selected_python_no_dot "" foreach s ${pythons_suffixes} { if {[variant_isset python${s}]} { set selected_python_no_dot ${s} } } if {${selected_python_no_dot} eq ""} { set py_vars "" set final_s [lindex ${pythons_suffixes} end] foreach s ${pythons_suffixes} { if {${s} eq ${final_s}} { set py_vars "${py_vars}or " } set py_vars "${py_vars}+python${s}" if {${s} ne ${final_s}} { set py_vars "${py_vars}, " } } ui_error "\n\nYou must select one of the variants ${py_vars}.\n" return -code error "Invalid variant selection" } set selected_python_with_dot [string index ${selected_python_no_dot} 0].[string range ${selected_python_no_dot} 1 end] set python_top_dir ${frameworks_dir}/Python.framework/Versions/${selected_python_with_dot} set python_name python${selected_python_with_dot} # required Python depends_lib-append port:python${selected_python_no_dot} \ port:py${selected_python_no_dot}-setuptools configure.args-append \ -DPython_EXECUTABLE=${python_top_dir}/bin/${python_name} post-destroot { # move Python install to frameworks_dir for Python set py_install_dir ${python_top_dir}/lib xinstall -m 755 -d ${destroot}${py_install_dir} move ${destroot}${prefix}/lib/${python_name} ${destroot}${py_install_dir} # link from iio.framework to normal set iio_framework_version ${version} set iio_framework_top ${frameworks_dir}/iio.framework set iio_framework ${iio_framework_top}/Versions/${iio_framework_version}/iio set iio_dr_framework_top ${destroot}${iio_framework_top} # fix iio library & link it into .../lib xinstall -m 755 -d ${destroot}${prefix}/lib ln -s ${iio_framework_top}/Versions/${iio_framework_version}/iio ${destroot}${prefix}/lib/libiio.dylib system "install_name_tool -id ${iio_framework} ${destroot}${iio_framework}" if {[variant_isset docs]} { # fix Tools, and link them into .../bin xinstall -m 755 -d ${destroot}${prefix}/bin foreach app [glob ${iio_dr_framework_top}/Tools/*] { set non_dr_app [strsed ${app} "s@${destroot}@@"] set lib_iio_framework [strsed ${iio_framework} "s@Library/Frameworks@lib@"] system "install_name_tool -change ${lib_iio_framework} ${iio_framework} ${app}" ln -s ${non_dr_app} ${destroot}${prefix}/bin } } # link includes into .../include xinstall -m 755 -d ${destroot}${prefix}/include foreach header [glob ${iio_dr_framework_top}/Versions/${iio_framework_version}/Headers/*] { ln -s [strsed ${header} "s@${destroot}@@"] ${destroot}${prefix}/include } } variant docs description {build documentation} { depends_build-append \ path:bin/doxygen:doxygen \ port:man \ port:py${selected_python_no_dot}-sphinx \ port:py${selected_python_no_dot}-sphinx_rtd_theme configure.args-append \ -DWITH_MAN=ON \ -DWITH_DOC=ON \ -DWITH_TESTS=ON \ -DSPHINX_EXECUTABLE=${prefix}/bin/sphinx-build-${selected_python_with_dot} } if {![variant_isset docs]} { configure.args-append \ -DWITH_MAN=OFF \ -DWITH_DOC=OFF \ -DWITH_TESTS=OFF } # overload the github livecheck regex to look for versions that # are just numbers and '.', no letters (e.g., "3.7.3_rc2"). github.livecheck.regex {([0-9.]+)}