<pre style='margin:0'>
Michael Dickens (michaelld) pushed a commit to branch master
in repository macports-ports.

</pre>
<p><a href="https://github.com/macports/macports-ports/commit/7512366b8956c79f8fd46d40440367cd496a3003">https://github.com/macports/macports-ports/commit/7512366b8956c79f8fd46d40440367cd496a3003</a></p>
<pre style="white-space: pre; background: #F8F8F8">The following commit(s) were added to refs/heads/master by this push:
<span style='display:block; white-space:pre;color:#404040;'>     new 7512366  uhd: update to 3.14.1.1
</span>7512366 is described below

<span style='display:block; white-space:pre;color:#808000;'>commit 7512366b8956c79f8fd46d40440367cd496a3003
</span>Author: Michael Dickens <michaelld@macports.org>
AuthorDate: Fri Oct 4 12:47:50 2019 -0400

<span style='display:block; white-space:pre;color:#404040;'>    uhd: update to 3.14.1.1
</span>---
 science/uhd/Portfile                               |  25 +-
 .../files/patch-fix-Boost_1.70.0_find.release.diff | 765 +++++++++++++++++++++
 .../uhd/files/patch-fix-boost-python.release.diff  | 118 ++--
 science/uhd/files/patch-fix-gpsd_read-api.diff     |   2 +-
 4 files changed, 834 insertions(+), 76 deletions(-)

<span style='display:block; white-space:pre;color:#808080;'>diff --git a/science/uhd/Portfile b/science/uhd/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index 8642a33..00a51af 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/science/uhd/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/science/uhd/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -20,12 +20,13 @@ if {${subport} eq ${name}} {
</span>     long_description ${description}: \
 Provides the release version, which is typically updated every month or so.
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    github.setup EttusResearch uhd 3.14.0.0 v
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    conflicts    uhd-devel uhd-39lts
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    checksums    rmd160 cf250374c2b1e5eaee0493945b20a4110d1724f5 \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                 sha256 033021dc43a5a22b045a6fa826a6529af923501ffc72d8692f0cc6e6f9ada497 \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                 size   12935507
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    revision     0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    github.setup EttusResearch uhd 3.14.1.1 v
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    checksums rmd160 1524187dd19a6741c95dc73ca4895eb517daf921 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+              sha256 61bf4875fd2baecb13fae67bd6b6770eefc6f519a9ba9a5f19fdf41d516ff142 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+              size   12960718
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    revision  0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    conflicts uhd-devel uhd-39lts
</span> 
     # set the version override string
 
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -41,6 +42,11 @@ Provides the release version, which is typically updated every month or so.
</span>     patchfiles-append patch-host_CMakeLists.txt.release.diff
     patch.pre_args -p1
 
<span style='display:block; white-space:pre;background:#e0ffe0;'>+    # temporary patch to fix working with various Boost versions,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # including 1.70.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    patchfiles-append patch-fix-Boost_1.70.0_find.release.diff
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span>     # temporary patch to fix searching for Boost::Python, which
     # depends on the version of Boost & which Python. 2 parts: a patch
     # and then reinplace. This is part 1.
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -84,6 +90,10 @@ Provides UHD 3.9 Long-Term Service \(LTS\) branch. This branch is not updated ex
</span>     patchfiles-append patch-host_CMakeLists.txt.39lts.diff
     patch.pre_args -p1
 
<span style='display:block; white-space:pre;background:#e0ffe0;'>+    # temporary patch to fix the API usage for "gpsd_read" for the 3.18.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # release. works on all non-devel UHD ports; devel contains this patch.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    patchfiles-append patch-fix-gpsd_read-api.diff
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> }
 
 subport uhd-devel {
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -136,9 +146,6 @@ if {${subport} ne "uhd-39lts"} {
</span> 
 if {${subport} ne "uhd-devel"} {
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    # temporary patch to fix the API usage for "gpsd_read" for the 3.18.0
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    # release. works on all non-devel UHD ports; devel contains this patch.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    patchfiles-append patch-fix-gpsd_read-api.diff
</span> 
     # temporary patch to fix gpsdata API: .separation -> .fix.geoid_sep
     patchfiles-append patch-fix-gpsdata_separation_api.diff
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/science/uhd/files/patch-fix-Boost_1.70.0_find.release.diff b/science/uhd/files/patch-fix-Boost_1.70.0_find.release.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 0000000..9bbcb07
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/science/uhd/files/patch-fix-Boost_1.70.0_find.release.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,765 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/host/cmake/Modules/UHDBoost.cmake b/host/cmake/Modules/UHDBoost.cmake
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+new file mode 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 0000000..5ebb4ac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/host/cmake/Modules/UHDBoost.cmake
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -0,0 +1,324 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# Copyright 2019 Ettus Research, a National Instruments Brand
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# SPDX-License-Identifier: GPL-3.0-or-later
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# The following variables can be defined external to this script.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# ENABLE_STATIC_LIBS : whether to enable static libraries, which will
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# require static Boost libraries too. If not using static libraries,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# shared libraries will be used. The default is to use shared
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# libraries, and this default will be used if this variable is not
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# defined or if is it NO/OFF/FALSE.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# UHD_BOOST_REQUIRED_COMPONENTS : Boost components that are required
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# for Boost_FOUND to be true. The linkage (shared or static) must be
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# correct and the library must also be found.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# UHD_BOOST_OPTIONAL_COMPONENTS : Boost components that are
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# optional. They do not impact Boost_FOUND. The linkage will still be
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# honored, and the library must still be found for the return
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# variables to be set.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# NOTE: If neither UHD_BOOST_REQUIRED_COMPONENTS and
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# UHD_BOOST_OPTIONAL_COMPONENTS are defined and/or are empty, then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# this script just checked to see if the minimum required version of
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# Boost can be found, and sets Boost_FOUND accordingly; all of the
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# other return variables will be unset / undefined.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# UHD_BOOST_REQUIRED : Whether to set Boost required components as
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# "required" during finding. If not specified, then defaults to
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# TRUE. If REQUIRED is TRUE and Boost is not found, then this script
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# will error out. Otherwise this script will not error out, and the
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# variable Boost_FOUND will indicate whether a compatible version
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# Boost was found or not.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# Upon find returning, the following variables will be set upon return
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# of this script:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# Boost_FOUND : will be TRUE if all of the required Boost components
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# are found with the correct linkage (static or shared); otherwise
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# this variable will be FALSE unless there are no components specified
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# in which case this variable will be unset.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# Boost_INCLUDE_DIRS : directories to use with 'include_directories',
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# where the top-level "boost" directory is located for headers.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# Boost_LIBRARY_DIRS : directories for use in finding libraries; this
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# variable is generally not used in favor of either (1) defining
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# library names with the full path; or (2) using targets where the
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# full path is defined already. This variable is probably deprecated.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# Boost_LIBRARIES : a list of found Boost libraries, each of which can
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# be either (1) or (2) above; either will work with modern CMake.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++########################################################################
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++message(STATUS "")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++message(STATUS "Checking for Boost version ${BOOST_MIN_VERSION} or greater")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# unset return variables
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++unset(Boost_FOUND)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++unset(Boost_INCLUDE_DIRS)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++unset(Boost_LIBRARY_DIRS)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++unset(Boost_LIBRARIES)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# check whether to set REQUIRED or not
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# if not set, default is to require Boost
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++if(NOT UHD_BOOST_REQUIRED)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    # UHD_BOOST_REQUIRED is not set; use the default
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    set(UHD_BOOST_REQUIRED "REQUIRED")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++elseif(UHD_BOOST_REQUIRED)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    # UHD_BOOST_REQUIRED is set to TRUE/ON/1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    set(UHD_BOOST_REQUIRED "REQUIRED")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++else()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    # UHD_BOOST_REQUIRED is not set to TRUE/ON/1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    unset(UHD_BOOST_REQUIRED)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++endif()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# set this for verbosity during 'find'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# set(Boost_DEBUG TRUE)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# verify we're looking for something
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++list(LENGTH UHD_BOOST_OPTIONAL_COMPONENTS UHD_BOOST_OPTIONAL_COMPONENTS_LEN)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++list(LENGTH UHD_BOOST_REQUIRED_COMPONENTS UHD_BOOST_REQUIRED_COMPONENTS_LEN)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++if(UHD_BOOST_OPTIONAL_COMPONENTS_LEN EQUAL 0 AND
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++   UHD_BOOST_REQUIRED_COMPONENTS_LEN EQUAL 0)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    # just see if Boost can be found
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    find_package(Boost ${BOOST_MIN_VERSION} QUIET ${UHD_BOOST_REQUIRED})
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if(Boost_FOUND)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        message(STATUS "Boost version ${BOOST_MIN_VERSION} or greater - found")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    else()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        message(STATUS "Boost version ${BOOST_MIN_VERSION} or greater - not found")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    endif()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    return()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++endif()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# if the OS is MINGW and if 'thread' is in the list, change its name
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++if(MINGW)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    list(FIND UHD_BOOST_REQUIRED_COMPONENTS "thread" THREAD_NDX)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if(NOT ${THREAD_NDX} EQUAL -1)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        list(REMOVE_AT UHD_BOOST_REQUIRED_COMPONENTS ${THREAD_NDX})
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        list(INSERT UHD_BOOST_REQUIRED_COMPONENTS ${THREAD_NDX} thread_win32)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    endif()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++endif()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# if 'system' is in the list, make sure it comes last; sometimes this
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# linkage makes a difference
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++list(FIND UHD_BOOST_REQUIRED_COMPONENTS "system" SYSTEM_NDX)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++if(NOT ${SYSTEM_NDX} EQUAL -1)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    list(REMOVE_AT UHD_BOOST_REQUIRED_COMPONENTS ${SYSTEM_NDX})
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    list(APPEND UHD_BOOST_REQUIRED_COMPONENTS "system")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++endif()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# special library directory that's used by some Linux
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++if(UNIX AND NOT BOOST_ROOT AND EXISTS "/usr/lib64")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    list(APPEND BOOST_LIBRARYDIR "/usr/lib64") #fedora 64-bit fix
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++endif(UNIX AND NOT BOOST_ROOT AND EXISTS "/usr/lib64")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# special Microsoft Visual C handling
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++if(MSVC)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    set(BOOST_ALL_DYN_LINK "${BOOST_ALL_DYN_LINK}" CACHE BOOL "boost enable dynamic linking")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if(BOOST_ALL_DYN_LINK)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        add_definitions(-DBOOST_ALL_DYN_LINK) #setup boost auto-linking in msvc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    else(BOOST_ALL_DYN_LINK)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        set(UHD_BOOST_REQUIRED_COMPONENTS) #empty components list for static link
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    endif(BOOST_ALL_DYN_LINK)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++endif(MSVC)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# Starting in CMake 3.15.0, if policy 'CMP0093' is available and set
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# to 'NEW', then the Boost_VERSION will be returned as X.Y.Z (e.g.,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# 1.70.0) instead of XXYYZZ (107000). The OLD policy is the default
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# for now, but is deprecated and relevant code should be updated to
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# the NEW policy format. This change matches the version format
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# returned by Boost's CMake scripts. See also:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# https://cmake.org/cmake/help/v3.15/policy/CMP0093.html#policy:CMP0093
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# Tell FindBoost, if used, to report Boost_VERSION in X.Y.Z format.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# NOTE: This must be set -before- calling "find_package(Boost ...)".
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# NOTE: This setting is for CMake scripts only; each language (e.g.,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# C++) that uses Boost maintains its current format for the Boost
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# version variable.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++if(POLICY CMP0093)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    cmake_policy(SET CMP0093 NEW)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++endif()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# if no CXX STANDARD is set, default to that required by UHD: c++14
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++if(NOT CMAKE_CXX_STANDARD)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  set(CMAKE_CXX_STANDARD 14)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  message(WARNING "\nC++ standard not yet set; setting to C++14.\n")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++endif()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# tell boost the linkage required
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++set(Boost_USE_STATIC_LIBS ${ENABLE_STATIC_LIBS})
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# temporarily explicitly enable or disable shared libraries,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# build-wise; this can be disabled on a case by case basis for each
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# library built.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++if(BUILD_SHARED_LIBS)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    set(BUILD_SHARED_LIBS_SET TRUE)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    set(OLD_BUILD_SHARED_LIBS ${BUILD_SHARED_LIBS})
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++else()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    set(BUILD_SHARED_LIBS_SET FALSE)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++endif()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++if(ENABLE_STATIC_LIBS)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    set(BUILD_SHARED_LIBS FALSE)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++else()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    set(BUILD_SHARED_LIBS TRUE)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++endif()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++if(${UHD_BOOST_OPTIONAL_COMPONENTS_LEN} GREATER 0)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    message(STATUS "  Looking for optional Boost components...")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    find_package(Boost ${BOOST_MIN_VERSION} QUIET
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        OPTIONAL_COMPONENTS ${UHD_BOOST_OPTIONAL_COMPONENTS})
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++endif()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++if(${UHD_BOOST_REQUIRED_COMPONENTS_LEN} GREATER 0)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    message(STATUS "  Looking for required Boost components...")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    find_package(Boost ${BOOST_MIN_VERSION} QUIET
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        COMPONENTS ${UHD_BOOST_REQUIRED_COMPONENTS} ${UHD_BOOST_REQUIRED})
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++endif()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# restore BUILD_SHARED_LIBS, if set
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++if(BUILD_SHARED_LIBS_SET)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    set(BUILD_SHARED_LIBS ${OLD_BUILD_SHARED_LIBS})
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    unset(OLD_BUILD_SHARED_LIBS)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++else()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    unset(BUILD_SHARED_LIBS)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++endif()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++if(NOT Boost_FOUND)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    # Boost was not found
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    # clear out return variables, just in case
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    unset(Boost_VERSION)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    unset(Boost_INCLUDE_DIRS)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    unset(Boost_LIBRARY_DIRS)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    unset(Boost_LIBRARIES)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++else()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    # Boost was found; do fixups and related tests / checks
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    # fix the Boost_VERSION to be X.Y.Z if CMake version < 3.15
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if(CMAKE_VERSION VERSION_LESS 3.15)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        set(Boost_VERSION "${Boost_MAJOR_VERSION}.${Boost_MINOR_VERSION}.${Boost_SUBMINOR_VERSION}")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    endif()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    # generic fix for some linking issues with Boost 1.68.0 or newer.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if(NOT ${Boost_VERSION} VERSION_LESS 1.68.0)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        message(STATUS "  Enabling Boost Error Code Header Only")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        add_definitions(-DBOOST_ERROR_CODE_HEADER_ONLY)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    endif()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    # test for std::string_view in boost::asio only if we're using
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    # c++17 or later and Boost 1.68.0 or later. The default is to not
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    # use this feature. Boost 1.67.0 and earlier at best checked for
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    # and used std::experimental::string_view, which causes issues for
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    # some Boost & C++ versions ... so, just don't use it!
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    set(USE_STD_STRING_VIEW_IN_BOOST_ASIO FALSE)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if((NOT ${CMAKE_CXX_STANDARD} VERSION_LESS 17) AND
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++       (NOT ${Boost_VERSION} VERSION_LESS 1.68.0))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        # boost::asio::string_view can fail in compiling or linking simple
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        # c++. This situation generally happens on for Boost 1.66 - 1.68
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        # and macOS using Clang and -std=c++14 ... but it can occur in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        # other situations, so just do a generic check. This issue seems
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        # to be fixed in Boost 1.70.0.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        message(STATUS "  Checking whether std::string_view works in boost::asio")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        # unset the return variable, otherwise the compile doesn't take place!
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        unset(USE_STD_STRING_VIEW_IN_BOOST_ASIO)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        # set various CheckCXXSourceCompiles variables
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        include(CheckCXXSourceCompiles)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        # FindBoost compatibility variables: Boost_INCLUDE_DIRS
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        if(NOT Boost_INCLUDE_DIRS OR "${Boost_INCLUDE_DIRS}" STREQUAL "")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            get_target_property(Boost_INCLUDE_DIRS Boost::headers INTERFACE_INCLUDE_DIRECTORIES)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        endif()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        # set the c++ standard to test using
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        set(CMAKE_REQUIRED_FLAGS "-std=c++${CMAKE_CXX_STANDARD} -I${Boost_INCLUDE_DIRS}")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        # make this compile quite
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        set(CMAKE_REQUIRED_QUIET TRUE)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        # disable Boost's use of std::experimental::string_view
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        set(CMAKE_REQUIRED_DEFINITIONS -DBOOST_ASIO_DISABLE_STD_EXPERIMENTAL_STRING_VIEW)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        # Check if std::string_view works in boost::asio
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        check_cxx_source_compiles(
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            "#include <boost/asio/detail/string_view.hpp>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            int main()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            { boost::asio::string_view sv; }"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            USE_STD_STRING_VIEW_IN_BOOST_ASIO
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        # clear the various CheckCXXSourceCompiles variables
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        unset(CMAKE_REQUIRED_FLAGS)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        unset(CMAKE_REQUIRED_QUIET)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        unset(CMAKE_REQUIRED_DEFINITIONS)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    endif()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    # use std::string_view in boost::asio?
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if(USE_STD_STRING_VIEW_IN_BOOST_ASIO)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        message(STATUS "    Enabling boost::asio use of std::string_view")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        add_definitions(-DBOOST_ASIO_HAS_STD_STRING_VIEW)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    else()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        message(STATUS "    Disabling boost::asio use of std::string_view")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        add_definitions(-DBOOST_ASIO_DISABLE_STD_STRING_VIEW)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    endif()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    unset(USE_STD_STRING_VIEW_IN_BOOST_ASIO)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    # disable Boost's use of std::experimental::string_view
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    # works for Boost 1.67.0 and newer & doesn't hurt older
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    add_definitions(-DBOOST_ASIO_DISABLE_STD_EXPERIMENTAL_STRING_VIEW)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    # Boost 1.70.0's find cmake scripts don't always set the expected
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    # return variables. Replicate the commit that fixes that issue here:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    # https://github.com/boostorg/boost_install/commit/cfa8d55250dfc2635e907e42da423e4eb540dee5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if(Boost_FOUND AND (${Boost_VERSION} VERSION_EQUAL 1.70.0))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        message(STATUS "  Enabling possible Boost 1.70.0 Fixes")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        # FindBoost compatibility variables: Boost_LIBRARIES, Boost_<C>_LIBRARY
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        if(NOT Boost_LIBRARIES OR "${Boost_LIBRARIES}" STREQUAL "")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            set(Boost_LIBRARIES "")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            foreach(dep IN LISTS UHD_BOOST_REQUIRED_COMPONENTS UHD_BOOST_OPTIONAL_COMPONENTS)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                string(TOUPPER ${dep} _BOOST_DEP)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                if(NOT Boost_${_BOOST_DEP}_FOUND)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                    status(WARNING "  Boost component '${dep}' should have been found but somehow isn't listed as found. Ignoring and hoping for the best!")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                endif()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                list(APPEND Boost_LIBRARIES Boost::${dep})
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                set(Boost_${_BOOST_DEP}_LIBRARY Boost::${dep})
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            endforeach()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        endif()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        # FindBoost compatibility variables: Boost_INCLUDE_DIRS
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        if(NOT Boost_INCLUDE_DIRS OR "${Boost_INCLUDE_DIRS}" STREQUAL "")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            get_target_property(Boost_INCLUDE_DIRS Boost::headers INTERFACE_INCLUDE_DIRECTORIES)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        endif()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        # FindBoost compatibility variables: Boost_LIBRARY_DIRS
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        if(NOT Boost_LIBRARY_DIRS OR "${Boost_LIBRARY_DIRS}" STREQUAL "")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            set(Boost_LIBRARY_DIRS "")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            foreach(dep IN LISTS UHD_BOOST_REQUIRED_COMPONENTS UHD_BOOST_OPTIONAL_COMPONENTS)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                string(TOUPPER ${dep} _BOOST_DEP)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                if(NOT Boost_${_BOOST_DEP}_FOUND)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                    status(WARNING "  Boost component '${dep}' should have been found but somehow isn't listed as found. Ignoring and hoping for the best!")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                endif()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                if(Boost_USE_DEBUG_LIBS)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                    get_target_property(Boost_${dep}_LIBRARY Boost::${dep} IMPORTED_LOCATION_DEBUG)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                else()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                    get_target_property(Boost_${dep}_LIBRARY Boost::${dep} IMPORTED_LOCATION_RELEASE)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                endif()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                get_filename_component(Boost_${dep}_LIBRARY_DIR ${Boost_${dep}_LIBRARY} DIRECTORY ABSOLUTE)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                list(FIND Boost_LIBRARY_DIRS ${Boost_${dep}_LIBRARY_DIR} Boost_${dep}_LIBRARY_DIR_FOUND)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                if(${Boost_${dep}_LIBRARY_DIR_FOUND} EQUAL -1)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                    list(APPEND Boost_LIBRARY_DIRS ${Boost_${dep}_LIBRARY_DIR})
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                endif()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            endforeach()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        endif()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        list(SORT Boost_LIBRARY_DIRS)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    endif()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    message(STATUS "  Boost version: ${Boost_VERSION}")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    message(STATUS "  Boost include directories: ${Boost_INCLUDE_DIRS}")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    message(STATUS "  Boost library directories: ${Boost_LIBRARY_DIRS}")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    message(STATUS "  Boost libraries: ${Boost_LIBRARIES}")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++endif()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++if(Boost_FOUND)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    message(STATUS "Looking for Boost version ${BOOST_MIN_VERSION} or greater - found")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++else()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    message(STATUS "Looking for Boost version ${BOOST_MIN_VERSION} or greater - not found")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++endif()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# unset some internal variables, if set
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++unset(Boost_LIBRARY_DIR)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++unset(Boost_INCLUDE_DIR)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/host/CMakeLists.txt b/host/CMakeLists.txt
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 916138e..97fe9a3 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/host/CMakeLists.txt
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/host/CMakeLists.txt
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -290,13 +290,29 @@ if(${ENABLE_PYTHON3})
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     set(BOOST_PYTHON_COMPONENT python3)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     set(BOOST_PYTHON_VERSION 3)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ endif()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++set(UHD_BOOST_OPTIONAL_COMPONENTS ${BOOST_PYTHON_COMPONENT})
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++unset(UHD_BOOST_REQUIRED_COMPONENTS)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++include(UHDBoost)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#Check to see if the Python version we're looking for exists
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++set(BOOST_PYTHON_FOUND ${Boost_PYTHON_FOUND})
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++set(BOOST_PYTHON_LIBRARY ${Boost_PYTHON_LIBRARY})
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++if(${ENABLE_PYTHON3})
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    set(BOOST_PYTHON_FOUND ${Boost_PYTHON3_FOUND})
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    set(BOOST_PYTHON_LIBRARY ${Boost_PYTHON3_LIBRARY})
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++endif()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++message(STATUS "Boost Python Found: ${BOOST_PYTHON_FOUND}")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++if(BOOST_PYTHON_FOUND)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    message(STATUS "Boost Python Libraries: ${BOOST_PYTHON_LIBRARY}")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++endif()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ########################################################################
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Setup Boost
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ########################################################################
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ message(STATUS "")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ message(STATUS "Configuring Boost C++ Libraries...")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-set(BOOST_REQUIRED_COMPONENTS
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++set(UHD_BOOST_REQUIRED_COMPONENTS
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     chrono
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     date_time
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     filesystem
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -305,57 +321,14 @@ set(BOOST_REQUIRED_COMPONENTS
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     system
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     unit_test_framework
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     serialization
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    thread
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-set(BOOST_OPTIONAL_COMPONENTS ${BOOST_PYTHON_COMPONENT})
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-if(MINGW)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    list(APPEND BOOST_REQUIRED_COMPONENTS thread_win32)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-else()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    list(APPEND BOOST_REQUIRED_COMPONENTS thread)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-endif()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-if(UNIX AND NOT BOOST_ROOT AND EXISTS "/usr/lib64")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    list(APPEND BOOST_LIBRARYDIR "/usr/lib64") #fedora 64-bit fix
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-endif(UNIX AND NOT BOOST_ROOT AND EXISTS "/usr/lib64")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-if(MSVC)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    set(BOOST_ALL_DYN_LINK "${BOOST_ALL_DYN_LINK}" CACHE BOOL "boost enable dynamic linking")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    if(BOOST_ALL_DYN_LINK)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        add_definitions(-DBOOST_ALL_DYN_LINK) #setup boost auto-linking in msvc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    else(BOOST_ALL_DYN_LINK)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        set(BOOST_REQUIRED_COMPONENTS) #empty components list for static link
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    endif(BOOST_ALL_DYN_LINK)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-endif(MSVC)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-set(Boost_ADDITIONAL_VERSIONS
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    "1.46.0" "1.46" "1.47.0" "1.47" "1.48.0" "1.48" "1.48.0" "1.49" "1.50.0" "1.50"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    "1.51.0" "1.51" "1.52.0" "1.52" "1.53.0" "1.53" "1.54.0" "1.54" "1.55.0" "1.55"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    "1.56.0" "1.56" "1.57" "1.57" "1.58" "1.59" "1.60" "1.61" "1.62" "1.63"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    "1.64" "1.65" "1.66" "1.67" "1.68" "1.69"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#Python API requirements
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-message(STATUS "Looking for optional Boost components...")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-find_package(Boost ${BOOST_MIN_VERSION} OPTIONAL_COMPONENTS ${BOOST_OPTIONAL_COMPONENTS})
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-message(STATUS "Looking for required Boost components...")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-find_package(Boost ${BOOST_MIN_VERSION} COMPONENTS ${BOOST_REQUIRED_COMPONENTS})
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++unset(UHD_BOOST_OPTIONAL_COMPONENTS)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++include(UHDBoost)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # include_directories(${Boost_INCLUDE_DIRS})
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # link_directories(${Boost_LIBRARY_DIRS})
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#Check to see if the Python version we're looking for exists
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-set(BOOST_PYTHON_FOUND ${Boost_PYTHON_FOUND})
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-set(BOOST_PYTHON_LIBRARY ${Boost_PYTHON_LIBRARY})
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-if(${ENABLE_PYTHON3})
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    set(BOOST_PYTHON_FOUND ${Boost_PYTHON3_FOUND})
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    set(BOOST_PYTHON_LIBRARY ${Boost_PYTHON3_LIBRARY})
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-endif()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-message(STATUS "Boost include directories: ${Boost_INCLUDE_DIRS}")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-message(STATUS "Boost library directories: ${Boost_LIBRARY_DIRS}")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-message(STATUS "Boost libraries: ${Boost_LIBRARIES}")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ########################################################################
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Additional settings for build environment
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ########################################################################
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -438,7 +411,6 @@ LIBUHD_REGISTER_COMPONENT("Examples" ENABLE_EXAMPLES ON "ENABLE_LIBUHD" OFF OFF)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ LIBUHD_REGISTER_COMPONENT("Utils" ENABLE_UTILS ON "ENABLE_LIBUHD" OFF OFF)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ LIBUHD_REGISTER_COMPONENT("Tests" ENABLE_TESTS ON "ENABLE_LIBUHD" OFF OFF)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ########################################################################
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Check for fpga-src submodule
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ########################################################################
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -524,7 +496,7 @@ endif(NOT CMAKE_MODULES_DIR)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # UHDConfig.cmake needs UHD_LINK_LIST_STATIC set:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ list(APPEND UHD_LINK_LIST_STATIC "dl")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ list(APPEND UHD_LINK_LIST_STATIC "pthread")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-foreach(Boost_Comp ${BOOST_REQUIRED_COMPONENTS})
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++foreach(Boost_Comp ${UHD_BOOST_REQUIRED_COMPONENTS})
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if(NOT ${Boost_Comp} STREQUAL "unit_test_framework")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         list(APPEND UHD_LINK_LIST_STATIC "boost_${Boost_Comp}")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     endif(NOT ${Boost_Comp} STREQUAL "unit_test_framework")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -550,13 +522,14 @@ configure_file(
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     @ONLY
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-set(cmake_configs
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++set(uhd_cmake_scripts
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     ${CMAKE_BINARY_DIR}/cmake/Modules/UHDConfig.cmake
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     ${CMAKE_BINARY_DIR}/cmake/Modules/UHDConfigVersion.cmake
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    ${CMAKE_SOURCE_DIR}/cmake/Modules/UHDBoost.cmake
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ UHD_INSTALL(
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    FILES ${cmake_configs}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    FILES ${uhd_cmake_scripts}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     DESTINATION ${CMAKE_MODULES_DIR}/uhd
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     COMPONENT "devel"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/host/cmake/Modules/UHDConfig.cmake.in b/host/cmake/Modules/UHDConfig.cmake.in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 30b0d92..299a8ef 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/host/cmake/Modules/UHDConfig.cmake.in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/host/cmake/Modules/UHDConfig.cmake.in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -18,6 +18,9 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ########################################################################
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# Allows us to use all .cmake files in this directory
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++list(INSERT CMAKE_MODULE_PATH 0 "${CMAKE_CURRENT_LIST_DIR}")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # set that this file was found, for use in GNU Radio's FindUHD.cmake.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Have to use the ENV, since this file might not allow CACHE changes.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -51,7 +54,6 @@ endif()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ list(APPEND UHD_INCLUDE_HINTS ${CMAKE_INSTALL_PREFIX}/include)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ list(APPEND UHD_LIBDIR_HINTS ${CMAKE_INSTALL_PREFIX}/lib)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Search for static libs if so required
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if( UHD_USE_STATIC_LIBS )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     set( _UHD_ORIG_CMAKE_FIND_LIBRARY_SUFFIXES ${CMAKE_FIND_LIBRARY_SUFFIXES})
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/host/examples/init_usrp/CMakeLists.txt b/host/examples/init_usrp/CMakeLists.txt
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 3260ce5..e58a113 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/host/examples/init_usrp/CMakeLists.txt
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/host/examples/init_usrp/CMakeLists.txt
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -5,7 +5,16 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # SPDX-License-Identifier: GPL-3.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-cmake_minimum_required(VERSION 2.8)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++cmake_minimum_required(VERSION 3.5.1)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++project(INIT_USRP CXX)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++### Configure Compiler ########################################################
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++set(CMAKE_CXX_STANDARD 11)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++if(CMAKE_SYSTEM_NAME STREQUAL "FreeBSD" AND ${CMAKE_CXX_COMPILER_ID} STREQUAL "Clang")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    set(CMAKE_EXE_LINKER_FLAGS "-lthr ${CMAKE_EXE_LINKER_FLAGS}")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    set(CMAKE_CXX_FLAGS "-stdlib=libc++ ${CMAKE_CXX_FLAGS}")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++endif()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ### Set up build environment ##################################################
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Choose a static or shared-library build (shared is default, and static will
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -13,48 +22,23 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Set this to ON in order to link a static build of UHD:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ option(UHD_USE_STATIC_LIBS OFF)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-# This example also requires Boost:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-set(BOOST_REQUIRED_COMPONENTS
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    program_options
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    system
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    thread
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-if(MSVC)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    set(BOOST_ALL_DYN_LINK "${BOOST_ALL_DYN_LINK}" CACHE BOOL "boost enable dynamic linking")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    if(BOOST_ALL_DYN_LINK)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        add_definitions(-DBOOST_ALL_DYN_LINK) #setup boost auto-linking in msvc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    else(BOOST_ALL_DYN_LINK)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        set(BOOST_REQUIRED_COMPONENTS) #empty components list for static link
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    endif(BOOST_ALL_DYN_LINK)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-endif(MSVC)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-find_package(Boost "1.46" REQUIRED ${BOOST_REQUIRED_COMPONENTS})
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # To add UHD as a dependency to this project, add a line such as this:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-find_package(UHD "3.8.0" REQUIRED)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++find_package(UHD 3.8.0 REQUIRED)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # The version in  ^^^^^  here is a minimum version.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # To specify an exact version:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #find_package(UHD 3.8.1 EXACT REQUIRED)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-### Configure Compiler ########################################################
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-if(CMAKE_VERSION VERSION_LESS "3.1")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    if(${CMAKE_CXX_COMPILER_ID} STREQUAL "GNU")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        set(CMAKE_CXX_FLAGS "--std=gnu++11 ${CMAKE_CXX_FLAGS}")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    elseif(${CMAKE_CXX_COMPILER_ID} STREQUAL "Clang")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        if("${IS_APPLE}" STREQUAL "")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            set(CMAKE_CXX_FLAGS "-std=c++11 ${CMAKE_CXX_FLAGS}")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        else()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            set(CMAKE_CXX_FLAGS "-std=c++11 -stdlib=libc++ ${CMAKE_CXX_FLAGS}")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        endif()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    endif()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-else()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    set(CMAKE_CXX_STANDARD 11)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-endif()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-if(CMAKE_SYSTEM_NAME STREQUAL "FreeBSD" AND ${CMAKE_CXX_COMPILER_ID} STREQUAL "Clang")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    set(CMAKE_EXE_LINKER_FLAGS "-lthr ${CMAKE_EXE_LINKER_FLAGS}")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    set(CMAKE_CXX_FLAGS "-stdlib=libc++ ${CMAKE_CXX_FLAGS}")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-endif()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# This example also requires Boost.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# Set components here, then include UHDBoost to do the actual finding
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++set(UHD_BOOST_REQUIRED_COMPONENTS
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    program_options
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    system
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    thread
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++set(BOOST_MIN_VERSION 1.58)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++include(UHDBoost)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# need these include and link directories for the build
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ include_directories(
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     ${Boost_INCLUDE_DIRS}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     ${UHD_INCLUDE_DIRS}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/mpm/CMakeLists.txt b/mpm/CMakeLists.txt
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 78759cc..6875130 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/mpm/CMakeLists.txt
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/mpm/CMakeLists.txt
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -4,7 +4,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # SPDX-License-Identifier: GPL-3.0-or-later
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-cmake_minimum_required(VERSION 3.1)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++cmake_minimum_required(VERSION 3.5.1)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ project(MPM C CXX) # Also has Python, but CMake can take care of that later
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Set the default value for CMAKE_INSTALL_PREFIX to /usr
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -18,6 +18,12 @@ endif(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ list(INSERT CMAKE_MODULE_PATH 0 ${CMAKE_SOURCE_DIR}/cmake/Modules)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set(UHD_HOST_ROOT ${CMAKE_SOURCE_DIR}/../host)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++########################################################################
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# Set C++ Standard
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++########################################################################
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++set(CMAKE_CXX_STANDARD 14)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ########################################################################
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Setup Python API
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ########################################################################
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -27,7 +33,6 @@ find_package(PythonLibs 3 REQUIRED)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Now, we can also include CMake modules from UHD:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ list(INSERT CMAKE_MODULE_PATH 0 ${UHD_HOST_ROOT}/cmake/Modules)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ########################################################################
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Version Information
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ########################################################################
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -62,44 +67,16 @@ endmacro(USRP_PERIPHS_ADD_OBJECT)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ########################################################################
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ message(STATUS "")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ message(STATUS "Configuring Boost C++ Libraries...")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-set(BOOST_REQUIRED_COMPONENTS
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++set(UHD_BOOST_REQUIRED_COMPONENTS
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   system
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   python3
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-if(MINGW)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    list(APPEND BOOST_REQUIRED_COMPONENTS thread_win32)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-else()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    list(APPEND BOOST_REQUIRED_COMPONENTS thread)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-endif()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-if(UNIX AND NOT BOOST_ROOT AND EXISTS "/usr/lib64")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    list(APPEND BOOST_LIBRARYDIR "/usr/lib64") #fedora 64-bit fix
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-endif(UNIX AND NOT BOOST_ROOT AND EXISTS "/usr/lib64")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-if(MSVC)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    set(BOOST_ALL_DYN_LINK "${BOOST_ALL_DYN_LINK}" CACHE BOOL "boost enable dynamic linking")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    if(BOOST_ALL_DYN_LINK)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        add_definitions(-DBOOST_ALL_DYN_LINK) #setup boost auto-linking in msvc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    else(BOOST_ALL_DYN_LINK)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        set(BOOST_REQUIRED_COMPONENTS) #empty components list for static link
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    endif(BOOST_ALL_DYN_LINK)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-endif(MSVC)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-set(Boost_ADDITIONAL_VERSIONS
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    "1.56.0" "1.56" "1.57" "1.57" "1.58" "1.59" "1.60" "1.61" "1.62" "1.63"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    "1.64"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-find_package(Boost 1.53 COMPONENTS ${BOOST_REQUIRED_COMPONENTS})
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++set(BOOST_MIN_VERSION "1.66")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++include(UHDBoost)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ include_directories(${Boost_INCLUDE_DIRS})
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ link_directories(${Boost_LIBRARY_DIRS})
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-message(STATUS "Boost include directories: ${Boost_INCLUDE_DIRS}")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-message(STATUS "Boost library directories: ${Boost_LIBRARY_DIRS}")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-message(STATUS "Boost libraries: ${Boost_LIBRARIES}")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ########################################################################
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Install Dirs
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ########################################################################
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -125,7 +102,6 @@ set(PKG_MAN_DIR share/man/man1)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ########################################################################
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Setup library configuration
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ########################################################################
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-set(CMAKE_CXX_STANDARD 14)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ include(CheckCXXCompilerFlag)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ CHECK_CXX_COMPILER_FLAG("-Wno-psabi" _has_no_psabi)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if(_has_no_psabi)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/tools/kitchen_sink/CMakeLists.txt b/tools/kitchen_sink/CMakeLists.txt
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index dc7f5c6..cd425af 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/tools/kitchen_sink/CMakeLists.txt
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/tools/kitchen_sink/CMakeLists.txt
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -15,7 +15,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # along with this program.  If not, see <http://www.gnu.org/licenses/>.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-cmake_minimum_required(VERSION 2.8)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++cmake_minimum_required(VERSION 3.5.1)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ project(kitchen_sink CXX)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ###############################################################################
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -28,8 +28,11 @@ endif(NOT CMAKE_BUILD_TYPE)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set(CMAKE_BUILD_TYPE ${CMAKE_BUILD_TYPE} CACHE STRING "")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ### Set up build environment ##################################################
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#### Set up UHD:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++find_package(UHD "3.7.3" REQUIRED)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #### Set up Boost:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-set(BOOST_REQUIRED_COMPONENTS
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++set(UHD_BOOST_REQUIRED_COMPONENTS
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     date_time
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     filesystem
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     program_options
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -38,30 +41,8 @@ set(BOOST_REQUIRED_COMPONENTS
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     thread
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     unit_test_framework
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-if(UNIX AND EXISTS "/usr/lib64")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    list(APPEND BOOST_LIBRARYDIR "/usr/lib64") #fedora 64-bit fix
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-endif(UNIX AND EXISTS "/usr/lib64")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-if(MSVC)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    set(BOOST_ALL_DYN_LINK "${BOOST_ALL_DYN_LINK}" CACHE BOOL "boost enable dynamic linking")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    if(BOOST_ALL_DYN_LINK)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        add_definitions(-DBOOST_ALL_DYN_LINK) #setup boost auto-linking in msvc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    else(BOOST_ALL_DYN_LINK)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        unset(BOOST_REQUIRED_COMPONENTS) #empty components list for static link
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    endif(BOOST_ALL_DYN_LINK)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-endif(MSVC)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-set(Boost_ADDITIONAL_VERSIONS
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    "1.45.0" "1.45" "1.46.0" "1.46" "1.47.0" "1.47" "1.48.0" "1.48" "1.49.0" "1.49"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    "1.50.0" "1.50" "1.51.0" "1.51" "1.52.0" "1.52" "1.53.0" "1.53" "1.54.0" "1.54"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    "1.55.0" "1.55" "1.56.0" "1.56" "1.57.0" "1.57" "1.58.0" "1.58" "1.59.0" "1.59"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    "1.60.0" "1.60" "1.61.0" "1.61" "1.62.0" "1.62" "1.63.0" "1.63" "1.64.0" "1.64"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    "1.65.0" "1.65" "1.66.0" "1.66" "1.67.0" "1.67" "1.68.0" "1.68" "1.69.0" "1.69"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-find_package(Boost 1.46 COMPONENTS ${BOOST_REQUIRED_COMPONENTS})
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#### Set up UHD:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-find_package(UHD "3.7.3" REQUIRED)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++set(BOOST_MIN_VERSION "1.58")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++include(UHDBoost)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ### Configure Compiler ########################################################
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ include_directories(
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/tools/nirio_programmer/CMakeLists.txt b/tools/nirio_programmer/CMakeLists.txt
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 9d38848..ba18a3b 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/tools/nirio_programmer/CMakeLists.txt
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/tools/nirio_programmer/CMakeLists.txt
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -15,7 +15,8 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # along with this program.  If not, see <http://www.gnu.org/licenses/>.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-cmake_minimum_required(VERSION 2.8)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++cmake_minimum_required(VERSION 3.5.1)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++project(NIRIO_PROGRAMMER CXX)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ### Set up build environment ##################################################
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Choose a static or shared-library build (shared is default, and static will
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -23,28 +24,21 @@ cmake_minimum_required(VERSION 2.8)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Set this to ON in order to link a static build of UHD:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ option(UHD_USE_STATIC_LIBS OFF)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# To add UHD as a dependency to this project, add a line such as this:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++find_package(UHD "3.8.0" REQUIRED)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# The version in  ^^^^^  here is a minimum version.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# To specify an exact version:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#find_package(UHD 3.8.1 EXACT REQUIRED)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # This example also requires Boost:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-set(BOOST_REQUIRED_COMPONENTS
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++set(UHD_BOOST_REQUIRED_COMPONENTS
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     program_options
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     system
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     thread
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     regex
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-if(MSVC)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    set(BOOST_ALL_DYN_LINK "${BOOST_ALL_DYN_LINK}" CACHE BOOL "boost enable dynamic linking")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    if(BOOST_ALL_DYN_LINK)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        add_definitions(-DBOOST_ALL_DYN_LINK) #setup boost auto-linking in msvc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    else(BOOST_ALL_DYN_LINK)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        set(BOOST_REQUIRED_COMPONENTS) #empty components list for static link
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    endif(BOOST_ALL_DYN_LINK)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-endif(MSVC)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-find_package(Boost "1.46" REQUIRED ${BOOST_REQUIRED_COMPONENTS})
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-# To add UHD as a dependency to this project, add a line such as this:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-find_package(UHD "3.8.0" REQUIRED)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-# The version in  ^^^^^  here is a minimum version.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-# To specify an exact version:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#find_package(UHD 3.8.1 EXACT REQUIRED)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++set(BOOST_MIN_VERSION "1.58")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++include(UHDBoost)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ### Configure Compiler ########################################################
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ include_directories(
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/science/uhd/files/patch-fix-boost-python.release.diff b/science/uhd/files/patch-fix-boost-python.release.diff
</span><span style='display:block; white-space:pre;color:#808080;'>index 42efe9e..b34124c 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/science/uhd/files/patch-fix-boost-python.release.diff
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/science/uhd/files/patch-fix-boost-python.release.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,6 +1,8 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/host/CMakeLists.txt b/host/CMakeLists.txt
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 78fff72..9f6e028 100644
</span> --- a/host/CMakeLists.txt
 +++ b/host/CMakeLists.txt
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -284,15 +284,40 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -284,27 +284,60 @@ endif(WIN32)
</span>  # Choose a version of Python
  ########################################################################
  option(ENABLE_PYTHON3 "Enable Python 3. Default is Python 2" OFF)
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -13,79 +15,63 @@
</span> +########################################################################
 +# Find Boost Version
 +########################################################################
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+MESSAGE(STATUS "")
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+MESSAGE(STATUS "Determining Boost Version...")
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+FIND_PACKAGE(Boost ${BOOST_MIN_VERSION} REQUIRED)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++message(STATUS "")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++message(STATUS "Determining Boost Version...")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++unset(UHD_BOOST_OPTIONAL_COMPONENTS)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++unset(UHD_BOOST_REQUIRED_COMPONENTS)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++set(Boost_FIND_QUIET TRUE)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++include(UHDBoost)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++if(Boost_FOUND)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    message(STATUS "Determining Boost Version... found ${Boost_VERSION}")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++else()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    message(STATUS "Determining Boost Version... Boost not found!")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++endif()
</span> +
 +########################################################################
 +# Setup Boost : Optional Component(s)
 +########################################################################
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+IF(${Boost_VERSION} VERSION_LESS_EQUAL "106600")
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    IF(${ENABLE_PYTHON3})
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        SET(BOOST_PYTHON_COMPONENT python3)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        SET(BOOST_PYTHON_VERSION 3)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    ELSE()
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        SET(BOOST_PYTHON_COMPONENT python)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        SET(BOOST_PYTHON_VERSION 2.7)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    ENDIF()
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ELSE()
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    IF(${ENABLE_PYTHON3})
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        SET(BOOST_PYTHON_COMPONENT python@PythonVersionNoDot@)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        SET(BOOST_PYTHON_VERSION @PythonVersionWithDot@)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    ELSE()
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        SET(BOOST_PYTHON_COMPONENT python27)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        SET(BOOST_PYTHON_VERSION 2.7)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    ENDIF()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++message(STATUS "")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++message(STATUS "Looking for Boost::Python ...")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++if(${Boost_VERSION} VERSION_LESS_EQUAL "1.66.0")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if(${ENABLE_PYTHON3})
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        set(BOOST_PYTHON_COMPONENT python3)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        set(BOOST_PYTHON_VERSION 3)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    else()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        set(BOOST_PYTHON_COMPONENT python)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        set(BOOST_PYTHON_VERSION 2.7)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    endif()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++else()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if(${ENABLE_PYTHON3})
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        set(BOOST_PYTHON_COMPONENT python@PythonVersionNoDot@)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        set(BOOST_PYTHON_VERSION @PythonVersionWithDot@)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    else()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        set(BOOST_PYTHON_COMPONENT python27)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        set(BOOST_PYTHON_VERSION 2.7)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    endif()
</span>  endif()
<span style='display:block; white-space:pre;background:#e0ffe0;'>+ set(UHD_BOOST_OPTIONAL_COMPONENTS ${BOOST_PYTHON_COMPONENT})
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ unset(UHD_BOOST_REQUIRED_COMPONENTS)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ include(UHDBoost)
</span>  
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+SET(BOOST_OPTIONAL_COMPONENTS ${BOOST_PYTHON_COMPONENT})
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- ########################################################################
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--# Setup Boost
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+# Setup Boost : Required Components
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- ########################################################################
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- message(STATUS "")
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- message(STATUS "Configuring Boost C++ Libraries...")
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -307,7 +332,6 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     serialization
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- )
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--set(BOOST_OPTIONAL_COMPONENTS ${BOOST_PYTHON_COMPONENT})
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if(MINGW)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     list(APPEND BOOST_REQUIRED_COMPONENTS thread_win32)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- else()
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -338,20 +362,25 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- message(STATUS "Looking for optional Boost components...")
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- find_package(Boost ${BOOST_MIN_VERSION} OPTIONAL_COMPONENTS ${BOOST_OPTIONAL_COMPONENTS})
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+# NOTE: The next "FIND_PACKAGE" will overwrite certain Boost
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+# variables, but we don't care because their info is already saved in
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+# various variables that are not overwritten. Also, we want to keep
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+# the required Boost libraries separate from the optional ones, which
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+# is accompished via separate calls to "FIND_PACKAGE".
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- message(STATUS "Looking for required Boost components...")
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- find_package(Boost ${BOOST_MIN_VERSION} COMPONENTS ${BOOST_REQUIRED_COMPONENTS})
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#Check to see if the Python version we're looking for exists
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+STRING(TOUPPER ${BOOST_PYTHON_COMPONENT} BOOST_PYTHON_COMPONENT_VAR)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+SET(BOOST_PYTHON_COMPONENT_FOUND "Boost_${BOOST_PYTHON_COMPONENT_VAR}_FOUND")
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+SET(BOOST_PYTHON_COMPONENT_LIBRARY "Boost_${BOOST_PYTHON_COMPONENT_VAR}_LIBRARY")
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+SET(BOOST_PYTHON_FOUND ${${BOOST_PYTHON_COMPONENT_FOUND}})
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+SET(BOOST_PYTHON_LIBRARY ${${BOOST_PYTHON_COMPONENT_LIBRARY}})
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # include_directories(${Boost_INCLUDE_DIRS})
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # link_directories(${Boost_LIBRARY_DIRS})
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--#Check to see if the Python version we're looking for exists
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #Check to see if the Python version we're looking for exists
</span> -set(BOOST_PYTHON_FOUND ${Boost_PYTHON_FOUND})
 -set(BOOST_PYTHON_LIBRARY ${Boost_PYTHON_LIBRARY})
 -if(${ENABLE_PYTHON3})
 -    set(BOOST_PYTHON_FOUND ${Boost_PYTHON3_FOUND})
 -    set(BOOST_PYTHON_LIBRARY ${Boost_PYTHON3_LIBRARY})
<span style='display:block; white-space:pre;background:#ffe0e0;'>--endif()
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- message(STATUS "Boost include directories: ${Boost_INCLUDE_DIRS}")
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- message(STATUS "Boost library directories: ${Boost_LIBRARY_DIRS}")
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- message(STATUS "Boost libraries: ${Boost_LIBRARIES}")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++string(TOUPPER ${BOOST_PYTHON_COMPONENT} BOOST_PYTHON_COMPONENT_VAR)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++set(BOOST_PYTHON_COMPONENT_FOUND "Boost_${BOOST_PYTHON_COMPONENT_VAR}_FOUND")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++set(BOOST_PYTHON_FOUND ${${BOOST_PYTHON_COMPONENT_FOUND}})
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++if(BOOST_PYTHON_FOUND)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    set(BOOST_PYTHON_COMPONENT_LIBRARY "Boost_${BOOST_PYTHON_COMPONENT_VAR}_LIBRARY")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    set(BOOST_PYTHON_LIBRARY ${${BOOST_PYTHON_COMPONENT_LIBRARY}})
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ endif()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-message(STATUS "Boost Python Found: ${BOOST_PYTHON_FOUND}")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++message(STATUS "Boost::Python Found: ${BOOST_PYTHON_FOUND}")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if(BOOST_PYTHON_FOUND)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    message(STATUS "Boost Python Libraries: ${BOOST_PYTHON_LIBRARY}")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    message(STATUS "Boost::Python library: ${BOOST_PYTHON_LIBRARY}")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ endif()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ########################################################################
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/science/uhd/files/patch-fix-gpsd_read-api.diff b/science/uhd/files/patch-fix-gpsd_read-api.diff
</span><span style='display:block; white-space:pre;color:#808080;'>index 088810a..71e70e0 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/science/uhd/files/patch-fix-gpsd_read-api.diff
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/science/uhd/files/patch-fix-gpsd_read-api.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,6 +1,6 @@
</span> --- a/host/lib/usrp/gpsd_iface.cpp
 +++ b/host/lib/usrp/gpsd_iface.cpp
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -119,7 +119,11 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -127,7 +127,11 @@
</span>                  _timeout_cnt = 0;
                  _detected = true;
  
</pre><pre style='margin:0'>

</pre>