<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/d00b16f622cea05fde35556436b85c7ddce85500">https://github.com/macports/macports-ports/commit/d00b16f622cea05fde35556436b85c7ddce85500</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 d00b16f  gnuradio*: patch to allow MP to set the C/CXX standard
</span>d00b16f is described below

<span style='display:block; white-space:pre;color:#808000;'>commit d00b16f622cea05fde35556436b85c7ddce85500
</span>Author: Michael Dickens <michaelld@macports.org>
AuthorDate: Fri Jul 6 16:11:57 2018 -0400

<span style='display:block; white-space:pre;color:#404040;'>    gnuradio*: patch to allow MP to set the C/CXX standard
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    Then enable C/C++11 for all GNU Radio builds, even though it's not technically required yet (it will be once 3.8 is out). GNU Radio is compatible with C/C++11 and this setting allows for building on older OSX using GCC along with newer OSX using Clang.
</span>---
 science/gnuradio/Portfile                          |  36 ++++-
 .../gnuradio/files/patch-C_CXX_STANDARD.devel.diff | 150 +++++++++++++++++++++
 .../gnuradio/files/patch-C_CXX_STANDARD.next.diff  | 146 ++++++++++++++++++++
 .../files/patch-C_CXX_STANDARD.release.diff        | 150 +++++++++++++++++++++
 4 files changed, 479 insertions(+), 3 deletions(-)

<span style='display:block; white-space:pre;color:#808080;'>diff --git a/science/gnuradio/Portfile b/science/gnuradio/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index 27f4b39..f4b0f82 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/science/gnuradio/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/science/gnuradio/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -104,6 +104,12 @@ if {${subport} eq "gnuradio"} {
</span>     patchfiles-append \
         patch-fix_ctrlport_test.release.diff
 
<span style='display:block; white-space:pre;background:#e0ffe0;'>+    # temporary patch to fix and allow external setting for
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # CMAKE_C/CXX_STANDARD
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    patchfiles-append \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        patch-C_CXX_STANDARD.release.diff
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> } elseif {${subport} eq "gnuradio-devel"} {
 
     # patches for devel
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -116,6 +122,12 @@ if {${subport} eq "gnuradio"} {
</span>     patchfiles-append \
         patch-fix_ctrlport_test.devel.diff
 
<span style='display:block; white-space:pre;background:#e0ffe0;'>+    # temporary patch to fix and allow external setting for
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # CMAKE_C/CXX_STANDARD
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    patchfiles-append \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        patch-C_CXX_STANDARD.devel.diff
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> } else {
 
     # patches for next
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -133,6 +145,12 @@ if {${subport} eq "gnuradio"} {
</span>     patchfiles-append \
         patch-fix_ctrlport_test.next.diff
 
<span style='display:block; white-space:pre;background:#e0ffe0;'>+    # temporary patch to fix and allow external setting for
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # CMAKE_C/CXX_STANDARD
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    patchfiles-append \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        patch-C_CXX_STANDARD.next.diff
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> }
 
 platform darwin 10 {
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -261,13 +279,25 @@ configure.args-append \
</span>     -DPYTHON_LIBRARY=${frameworks_dir}/Python.framework/Versions/${PythonVersionWithDot}/Python \
     -DGR_PYTHON_DIR=${frameworks_dir}/Python.framework/Versions/${PythonVersionWithDot}/lib/python${PythonVersionWithDot}/site-packages
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-# try to enable C++11 for older compilers too.  for some reason cmake
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-# doesn't recognize libstdc++ compilers as being c++11 capable, even
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-# though some are. set this and hope for the best ...
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# Enable C/C++11 for all GNU Radio builds, even though it's not
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# technically required yet (it will be once 3.8 is out). GNU Radio is
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# compatible with C/C++11 and this setting allows for building on
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# older OSX using GCC along with newer OSX using Clang.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+configure.args-append -DCMAKE_CXX_STANDARD=11
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+configure.args-append -DCMAKE_C_STANDARD=11
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# on much older installs ...
</span> 
 if {${configure.cxx_stdlib} eq "macports-libstdc++" ||
     ${configure.cxx_stdlib} eq "libstdc++"} {
<span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # for some reason cmake doesn't recognize libstdc++ compilers as
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # being c++11 capable, even though some are. set this and hope for
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # the best.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span>     configure.cxxflags-append -std=gnu++11
<span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> }
 
 post-destroot {
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/science/gnuradio/files/patch-C_CXX_STANDARD.devel.diff b/science/gnuradio/files/patch-C_CXX_STANDARD.devel.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 0000000..6af5552
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/science/gnuradio/files/patch-C_CXX_STANDARD.devel.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,150 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- CMakeLists.txt.orig
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ CMakeLists.txt
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -130,9 +130,16 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     MESSAGE(status "Skipping compiler version check.")
</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;'>+-# Configure C++ standard if not externally specified (will actually be
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-# set after CppUnit check below). Use the variable CMAKE_CXX_STANDARD
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-# since it will actually be used for this purposes starting in CMake 3.1.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++########################################################################
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# Configure C++ standard if not externally specified. Use the variable
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# CMAKE_CXX_STANDARD since it will actually be used for this purposes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# starting in CMake 3.1.
</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;'>++# save current setting, if provided
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++IF(CMAKE_CXX_STANDARD)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  SET(CMAKE_CXX_STANDARD_EXT ${CMAKE_CXX_STANDARD})
</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_CXX_COMPILER_ID STREQUAL "GNU")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     SET(CMAKE_CXX_STANDARD 98)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -141,19 +148,122 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ELSEIF(CMAKE_CXX_COMPILER_ID STREQUAL "MSVC")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     SET(CMAKE_CXX_STANDARD 98)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ELSE()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    message(warning "C++ standard could not be set because compiler is not GNU, Clang or MSVC.")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    MESSAGE(WARNING "C++ standard could not be set because compiler is not GNU, Clang, or MSVC.")
</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 CXX standard was provided externally, make sure it meets GR's minimum
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++IF(CMAKE_CXX_STANDARD_EXT)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    # verify that the provided C++ standard is one CMake
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    # accepts. options are 90, 99, and 11 as of CMake 3.11.4 (with 20
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    # coming in 3.12).
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    IF(NOT ${CMAKE_CXX_STANDARD_EXT} VERSION_EQUAL "98" AND
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++       NOT ${CMAKE_CXX_STANDARD_EXT} VERSION_EQUAL "11" AND
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++       NOT ${CMAKE_CXX_STANDARD_EXT} VERSION_EQUAL "14" AND
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++       NOT ${CMAKE_CXX_STANDARD_EXT} VERSION_EQUAL "17")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++       MESSAGE(WARNING "Requested C++ standard (${CMAKE_CXX_STANDARD_EXT}) isn't recognized by CMake; expecting one of 98, 11, 14, or 17. Ignoring and using the GNU Radio default C++ standard (${CMAKE_CXX_STANDARD}).")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++       SET(CMAKE_CXX_STANDARD_EXT ${CMAKE_CXX_STANDARD})
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    ENDIF()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    # fix settings to be comparables. It will be -many- years until we
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    # have to worry about this value getting large enough to wrap
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    # around (to 90), so just add 100 to any value not in the 90's,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    # for comparison sake.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    IF(${CMAKE_CXX_STANDARD} VERSION_EQUAL "98")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        # just copy the value
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        SET(CMAKE_CXX_STANDARD_CMP ${CMAKE_CXX_STANDARD})
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    ELSE()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        # add 100 to the value
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        MATH(EXPR CMAKE_CXX_STANDARD_CMP "${CMAKE_CXX_STANDARD} + 100")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    ENDIF()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    IF(${CMAKE_CXX_STANDARD_EXT} VERSION_EQUAL "98")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        # just copy the value
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        SET(CMAKE_CXX_STANDARD_EXT_CMP ${CMAKE_CXX_STANDARD_EXT})
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    ELSE()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        # add 100 to the value
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        MATH(EXPR CMAKE_CXX_STANDARD_EXT_CMP "${CMAKE_CXX_STANDARD_EXT} + 100")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    ENDIF()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    # compare values
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    IF(${CMAKE_CXX_STANDARD_EXT_CMP} VERSION_LESS ${CMAKE_CXX_STANDARD_CMP})
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        MESSAGE(WARNING "Requested C++ standard (${CMAKE_CXX_STANDARD_EXT}) isn't modern enough to build GNU Radio; using minimum required C++ standard (${CMAKE_CXX_STANDARD}) instead and hoping for the best!")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    ELSEIF(${CMAKE_CXX_STANDARD_EXT_CMP} VERSION_GREATER ${CMAKE_CXX_STANDARD_CMP})
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        MESSAGE(WARNING "Requested C++ standard (${CMAKE_CXX_STANDARD_EXT}) is more recent than the minimum required C++ standard (${CMAKE_CXX_STANDARD}). GNU Radio might have issues building using this C++ standard; go with it and hope for the best!")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        SET(CMAKE_CXX_STANDARD ${CMAKE_CXX_STANDARD_EXT})
</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;'>++########################################################################
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# Configure C standard if not externally specified. Use the variable
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# CMAKE_C_STANDARD since it will actually be used for this purposes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# starting in CMake 3.1.
</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;'>++# save current setting, if provided
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++IF(CMAKE_C_STANDARD)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    SET(CMAKE_C_STANDARD_EXT ${CMAKE_C_STANDARD})
</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 GR preferred setting
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ IF(CMAKE_C_COMPILER_ID STREQUAL "GNU")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=gnu99")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    SET(CMAKE_C_STANDARD 99)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ELSEIF(CMAKE_C_COMPILER_ID MATCHES "Clang")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=gnu99")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    SET(CMAKE_C_STANDARD 99)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ELSEIF(CMAKE_C_COMPILER_ID STREQUAL "MSVC")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=c11")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    SET(CMAKE_C_STANDARD 11)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ELSE()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    message(warning "C standard could not be set because compiler is not GNU, Clang or MSVC.")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    MESSAGE(WARNING "C standard could not be set because compiler is not GNU, Clang, or MSVC.")
</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 C standard was provided externally, make sure it meets GR's minimum
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++IF(CMAKE_C_STANDARD_EXT)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    # verify that the provided C standard is one CMake
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    # accepts. options are 90, 99, and 11 as of CMake 3.11.4.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    IF(NOT ${CMAKE_C_STANDARD_EXT} VERSION_EQUAL "90" AND
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++       NOT ${CMAKE_C_STANDARD_EXT} VERSION_EQUAL "99" AND
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++       NOT ${CMAKE_C_STANDARD_EXT} VERSION_EQUAL "11")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++       MESSAGE(WARNING "Requested C standard (${CMAKE_C_STANDARD_EXT}) isn't recognized by CMake; expecting one of 90, 99, or 11. Ignoring and using the GNU Radio default C standard (${CMAKE_C_STANDARD}).")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++       SET(CMAKE_C_STANDARD_EXT ${CMAKE_C_STANDARD})
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    ENDIF()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    # fix settings to be comparable. It will be -many- years until we
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    # have to worry about this value getting large enough to wrap
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    # around (to 90), so just add 100 to any value not in the 90's,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    # for comparison sake.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    IF(${CMAKE_C_STANDARD} VERSION_EQUAL "90" OR
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++       ${CMAKE_C_STANDARD} VERSION_EQUAL "99")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        # just copy the value
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        SET(CMAKE_C_STANDARD_CMP ${CMAKE_C_STANDARD})
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    ELSE()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        # add 100 to the value
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        MATH(EXPR CMAKE_C_STANDARD_CMP "${CMAKE_C_STANDARD} + 100")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    ENDIF()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    IF(${CMAKE_C_STANDARD_EXT} VERSION_EQUAL "90" OR
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++       ${CMAKE_C_STANDARD_EXT} VERSION_EQUAL "99")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        # just copy the value
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        SET(CMAKE_C_STANDARD_EXT_CMP ${CMAKE_C_STANDARD_EXT})
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    ELSE()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        # add 100 to the value
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        MATH(EXPR CMAKE_C_STANDARD_EXT_CMP "${CMAKE_C_STANDARD_EXT} + 100")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    ENDIF()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    # compare values
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    IF(${CMAKE_C_STANDARD_EXT_CMP} VERSION_LESS ${CMAKE_C_STANDARD_CMP})
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        MESSAGE(WARNING "Requested C standard (${CMAKE_C_STANDARD_EXT}) isn't modern enough to build GNU Radio; using minimum required C standard (${CMAKE_C_STANDARD}) instead and hoping for the best!")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    ELSEIF(${CMAKE_C_STANDARD_EXT_CMP} VERSION_GREATER ${CMAKE_C_STANDARD_CMP})
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        MESSAGE(WARNING "Requested C standard (${CMAKE_C_STANDARD_EXT}) is more recent than the minimum required C standard (${CMAKE_C_STANDARD}). GNU Radio might have issues building using this C standard; go with it and hope for the best!")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        SET(CMAKE_C_STANDARD ${CMAKE_C_STANDARD_EXT})
</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;'>++########################################################################
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# disable C/CXX standard extensions (e.g., "gnu++11" and "gnu11"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# rather than "c++11" and "c11"). If cmake version is < 3.1,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# explicitly set C/C++ standard to use; this CMake doesn't internally
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# use CMAKE_C*_STANDARD variables.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++SET(CMAKE_C_EXTENSIONS OFF)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++SET(CMAKE_CXX_EXTENSIONS OFF)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</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;'>++    SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=c${CMAKE_C_STANDARD}")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++${CMAKE_CXX_STANDARD}")
</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;'>+ # Environment setup
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/science/gnuradio/files/patch-C_CXX_STANDARD.next.diff b/science/gnuradio/files/patch-C_CXX_STANDARD.next.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 0000000..67463b4
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/science/gnuradio/files/patch-C_CXX_STANDARD.next.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,146 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- CMakeLists.txt.orig
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ CMakeLists.txt
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -131,12 +131,16 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     MESSAGE(status "Skipping compiler version check.")
</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;'>+-# Configure C++ standard if not externally specified (will actually be
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-# set after CppUnit check below). Use the variable CMAKE_CXX_STANDARD
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-# since it will actually be used for this purposes starting in CMake 3.1.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++########################################################################
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# Configure C++ standard if not externally specified. Use the variable
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# CMAKE_CXX_STANDARD since it will actually be used for this purposes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# starting in CMake 3.1.
</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_C_EXTENSIONS OFF)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-SET(CMAKE_CXX_EXTENSIONS OFF)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# save current setting, if provided
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++IF(CMAKE_CXX_STANDARD)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  SET(CMAKE_CXX_STANDARD_EXT ${CMAKE_CXX_STANDARD})
</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_CXX_COMPILER_ID STREQUAL "GNU")
</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;'>+@@ -145,9 +149,60 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ELSEIF(CMAKE_CXX_COMPILER_ID STREQUAL "MSVC")
</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;'>+ ELSE()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    message(warning "C++ standard could not be set because compiler is not GNU, Clang or MSVC.")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    MESSAGE(WARNING "C++ standard could not be set because compiler is not GNU, Clang, or MSVC.")
</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 CXX standard was provided externally, make sure it meets GR's minimum
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++IF(CMAKE_CXX_STANDARD_EXT)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    # verify that the provided C++ standard is one CMake
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    # accepts. options are 90, 99, and 11 as of CMake 3.11.4 (with 20
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    # coming in 3.12).
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    IF(NOT ${CMAKE_CXX_STANDARD_EXT} VERSION_EQUAL "98" AND
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++       NOT ${CMAKE_CXX_STANDARD_EXT} VERSION_EQUAL "11" AND
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++       NOT ${CMAKE_CXX_STANDARD_EXT} VERSION_EQUAL "14" AND
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++       NOT ${CMAKE_CXX_STANDARD_EXT} VERSION_EQUAL "17")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++       MESSAGE(WARNING "Requested C++ standard (${CMAKE_CXX_STANDARD_EXT}) isn't recognized by CMake; expecting one of 98, 11, 14, or 17. Ignoring and using the GNU Radio default C++ standard (${CMAKE_CXX_STANDARD}).")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++       SET(CMAKE_CXX_STANDARD_EXT ${CMAKE_CXX_STANDARD})
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    ENDIF()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    # fix settings to be comparables. It will be -many- years until we
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    # have to worry about this value getting large enough to wrap
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    # around (to 90), so just add 100 to any value not in the 90's,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    # for comparison sake.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    IF(${CMAKE_CXX_STANDARD} VERSION_EQUAL "98")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        # just copy the value
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        SET(CMAKE_CXX_STANDARD_CMP ${CMAKE_CXX_STANDARD})
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    ELSE()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        # add 100 to the value
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        MATH(EXPR CMAKE_CXX_STANDARD_CMP "${CMAKE_CXX_STANDARD} + 100")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    ENDIF()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    IF(${CMAKE_CXX_STANDARD_EXT} VERSION_EQUAL "98")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        # just copy the value
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        SET(CMAKE_CXX_STANDARD_EXT_CMP ${CMAKE_CXX_STANDARD_EXT})
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    ELSE()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        # add 100 to the value
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        MATH(EXPR CMAKE_CXX_STANDARD_EXT_CMP "${CMAKE_CXX_STANDARD_EXT} + 100")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    ENDIF()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    # compare values
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    IF(${CMAKE_CXX_STANDARD_EXT_CMP} VERSION_LESS ${CMAKE_CXX_STANDARD_CMP})
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        MESSAGE(WARNING "Requested C++ standard (${CMAKE_CXX_STANDARD_EXT}) isn't modern enough to build GNU Radio; using minimum required C++ standard (${CMAKE_CXX_STANDARD}) instead and hoping for the best!")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    ELSEIF(${CMAKE_CXX_STANDARD_EXT_CMP} VERSION_GREATER ${CMAKE_CXX_STANDARD_CMP})
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        MESSAGE(WARNING "Requested C++ standard (${CMAKE_CXX_STANDARD_EXT}) is more recent than the minimum required C++ standard (${CMAKE_CXX_STANDARD}). GNU Radio might have issues building using this C++ standard; go with it and hope for the best!")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        SET(CMAKE_CXX_STANDARD ${CMAKE_CXX_STANDARD_EXT})
</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;'>++########################################################################
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# Configure C standard if not externally specified. Use the variable
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# CMAKE_C_STANDARD since it will actually be used for this purposes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# starting in CMake 3.1.
</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;'>++# save current setting, if provided
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++IF(CMAKE_C_STANDARD)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    SET(CMAKE_C_STANDARD_EXT ${CMAKE_C_STANDARD})
</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 GR preferred setting
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ IF(CMAKE_C_COMPILER_ID STREQUAL "GNU")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     SET(CMAKE_C_STANDARD 11)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ELSEIF(CMAKE_C_COMPILER_ID MATCHES "Clang")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -155,10 +210,57 @@ ELSEIF(CMAKE_C_COMPILER_ID MATCHES "Clang")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ELSEIF(CMAKE_C_COMPILER_ID STREQUAL "MSVC")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     SET(CMAKE_C_STANDARD 11)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ELSE()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    message(warning "C standard could not be set because compiler is not GNU, Clang or MSVC.")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    MESSAGE(WARNING "C standard could not be set because compiler is not GNU, Clang, or MSVC.")
</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 version is < 3.1, explicitly set C standard to use.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# if the C standard was provided externally, make sure it meets GR's minimum
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++IF(CMAKE_C_STANDARD_EXT)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    # verify that the provided C standard is one CMake
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    # accepts. options are 90, 99, and 11 as of CMake 3.11.4.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    IF(NOT ${CMAKE_C_STANDARD_EXT} VERSION_EQUAL "90" AND
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++       NOT ${CMAKE_C_STANDARD_EXT} VERSION_EQUAL "99" AND
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++       NOT ${CMAKE_C_STANDARD_EXT} VERSION_EQUAL "11")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++       MESSAGE(WARNING "Requested C standard (${CMAKE_C_STANDARD_EXT}) isn't recognized by CMake; expecting one of 90, 99, or 11. Ignoring and using the GNU Radio default C standard (${CMAKE_C_STANDARD}).")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++       SET(CMAKE_C_STANDARD_EXT ${CMAKE_C_STANDARD})
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    ENDIF()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    # fix settings to be comparable. It will be -many- years until we
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    # have to worry about this value getting large enough to wrap
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    # around (to 90), so just add 100 to any value not in the 90's,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    # for comparison sake.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    IF(${CMAKE_C_STANDARD} VERSION_EQUAL "90" OR
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++       ${CMAKE_C_STANDARD} VERSION_EQUAL "99")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        # just copy the value
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        SET(CMAKE_C_STANDARD_CMP ${CMAKE_C_STANDARD})
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    ELSE()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        # add 100 to the value
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        MATH(EXPR CMAKE_C_STANDARD_CMP "${CMAKE_C_STANDARD} + 100")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    ENDIF()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    IF(${CMAKE_C_STANDARD_EXT} VERSION_EQUAL "90" OR
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++       ${CMAKE_C_STANDARD_EXT} VERSION_EQUAL "99")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        # just copy the value
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        SET(CMAKE_C_STANDARD_EXT_CMP ${CMAKE_C_STANDARD_EXT})
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    ELSE()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        # add 100 to the value
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        MATH(EXPR CMAKE_C_STANDARD_EXT_CMP "${CMAKE_C_STANDARD_EXT} + 100")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    ENDIF()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    # compare values
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    IF(${CMAKE_C_STANDARD_EXT_CMP} VERSION_LESS ${CMAKE_C_STANDARD_CMP})
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        MESSAGE(WARNING "Requested C standard (${CMAKE_C_STANDARD_EXT}) isn't modern enough to build GNU Radio; using minimum required C standard (${CMAKE_C_STANDARD}) instead and hoping for the best!")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    ELSEIF(${CMAKE_C_STANDARD_EXT_CMP} VERSION_GREATER ${CMAKE_C_STANDARD_CMP})
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        MESSAGE(WARNING "Requested C standard (${CMAKE_C_STANDARD_EXT}) is more recent than the minimum required C standard (${CMAKE_C_STANDARD}). GNU Radio might have issues building using this C standard; go with it and hope for the best!")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        SET(CMAKE_C_STANDARD ${CMAKE_C_STANDARD_EXT})
</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;'>++########################################################################
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# disable C/CXX standard extensions (e.g., "gnu++11" and "gnu11"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# rather than "c++11" and "c11"). If cmake version is < 3.1,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# explicitly set C/C++ standard to use; this CMake doesn't internally
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# use CMAKE_C*_STANDARD variables.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++SET(CMAKE_C_EXTENSIONS OFF)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++SET(CMAKE_CXX_EXTENSIONS OFF)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</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;'>+     SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=c${CMAKE_C_STANDARD}")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++${CMAKE_CXX_STANDARD}")
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/science/gnuradio/files/patch-C_CXX_STANDARD.release.diff b/science/gnuradio/files/patch-C_CXX_STANDARD.release.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 0000000..dabe2f9
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/science/gnuradio/files/patch-C_CXX_STANDARD.release.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,150 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- CMakeLists.txt.orig
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ CMakeLists.txt
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -131,9 +131,16 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     MESSAGE(status "Skipping compiler version check.")
</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;'>+-# Configure C++ standard if not externally specified (will actually be
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-# set after CppUnit check below). Use the variable CMAKE_CXX_STANDARD
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-# since it will actually be used for this purposes starting in CMake 3.1.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++########################################################################
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# Configure C++ standard if not externally specified. Use the variable
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# CMAKE_CXX_STANDARD since it will actually be used for this purposes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# starting in CMake 3.1.
</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;'>++# save current setting, if provided
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++IF(CMAKE_CXX_STANDARD)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  SET(CMAKE_CXX_STANDARD_EXT ${CMAKE_CXX_STANDARD})
</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_CXX_COMPILER_ID STREQUAL "GNU")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     SET(CMAKE_CXX_STANDARD 98)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -142,19 +149,122 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ELSEIF(CMAKE_CXX_COMPILER_ID STREQUAL "MSVC")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     SET(CMAKE_CXX_STANDARD 98)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ELSE()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    message(warning "C++ standard could not be set because compiler is not GNU, Clang or MSVC.")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    MESSAGE(WARNING "C++ standard could not be set because compiler is not GNU, Clang, or MSVC.")
</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 CXX standard was provided externally, make sure it meets GR's minimum
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++IF(CMAKE_CXX_STANDARD_EXT)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    # verify that the provided C++ standard is one CMake
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    # accepts. options are 90, 99, and 11 as of CMake 3.11.4 (with 20
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    # coming in 3.12).
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    IF(NOT ${CMAKE_CXX_STANDARD_EXT} VERSION_EQUAL "98" AND
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++       NOT ${CMAKE_CXX_STANDARD_EXT} VERSION_EQUAL "11" AND
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++       NOT ${CMAKE_CXX_STANDARD_EXT} VERSION_EQUAL "14" AND
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++       NOT ${CMAKE_CXX_STANDARD_EXT} VERSION_EQUAL "17")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++       MESSAGE(WARNING "Requested C++ standard (${CMAKE_CXX_STANDARD_EXT}) isn't recognized by CMake; expecting one of 98, 11, 14, or 17. Ignoring and using the GNU Radio default C++ standard (${CMAKE_CXX_STANDARD}).")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++       SET(CMAKE_CXX_STANDARD_EXT ${CMAKE_CXX_STANDARD})
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    ENDIF()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    # fix settings to be comparables. It will be -many- years until we
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    # have to worry about this value getting large enough to wrap
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    # around (to 90), so just add 100 to any value not in the 90's,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    # for comparison sake.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    IF(${CMAKE_CXX_STANDARD} VERSION_EQUAL "98")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        # just copy the value
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        SET(CMAKE_CXX_STANDARD_CMP ${CMAKE_CXX_STANDARD})
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    ELSE()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        # add 100 to the value
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        MATH(EXPR CMAKE_CXX_STANDARD_CMP "${CMAKE_CXX_STANDARD} + 100")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    ENDIF()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    IF(${CMAKE_CXX_STANDARD_EXT} VERSION_EQUAL "98")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        # just copy the value
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        SET(CMAKE_CXX_STANDARD_EXT_CMP ${CMAKE_CXX_STANDARD_EXT})
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    ELSE()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        # add 100 to the value
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        MATH(EXPR CMAKE_CXX_STANDARD_EXT_CMP "${CMAKE_CXX_STANDARD_EXT} + 100")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    ENDIF()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    # compare values
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    IF(${CMAKE_CXX_STANDARD_EXT_CMP} VERSION_LESS ${CMAKE_CXX_STANDARD_CMP})
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        MESSAGE(WARNING "Requested C++ standard (${CMAKE_CXX_STANDARD_EXT}) isn't modern enough to build GNU Radio; using minimum required C++ standard (${CMAKE_CXX_STANDARD}) instead and hoping for the best!")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    ELSEIF(${CMAKE_CXX_STANDARD_EXT_CMP} VERSION_GREATER ${CMAKE_CXX_STANDARD_CMP})
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        MESSAGE(WARNING "Requested C++ standard (${CMAKE_CXX_STANDARD_EXT}) is more recent than the minimum required C++ standard (${CMAKE_CXX_STANDARD}). GNU Radio might have issues building using this C++ standard; go with it and hope for the best!")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        SET(CMAKE_CXX_STANDARD ${CMAKE_CXX_STANDARD_EXT})
</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;'>++########################################################################
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# Configure C standard if not externally specified. Use the variable
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# CMAKE_C_STANDARD since it will actually be used for this purposes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# starting in CMake 3.1.
</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;'>++# save current setting, if provided
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++IF(CMAKE_C_STANDARD)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    SET(CMAKE_C_STANDARD_EXT ${CMAKE_C_STANDARD})
</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 GR preferred setting
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ IF(CMAKE_C_COMPILER_ID STREQUAL "GNU")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=gnu99")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    SET(CMAKE_C_STANDARD 99)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ELSEIF(CMAKE_C_COMPILER_ID MATCHES "Clang")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=gnu99")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    SET(CMAKE_C_STANDARD 99)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ELSEIF(CMAKE_C_COMPILER_ID STREQUAL "MSVC")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=c11")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    SET(CMAKE_C_STANDARD 11)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ELSE()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    message(warning "C standard could not be set because compiler is not GNU, Clang or MSVC.")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    MESSAGE(WARNING "C standard could not be set because compiler is not GNU, Clang, or MSVC.")
</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 C standard was provided externally, make sure it meets GR's minimum
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++IF(CMAKE_C_STANDARD_EXT)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    # verify that the provided C standard is one CMake
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    # accepts. options are 90, 99, and 11 as of CMake 3.11.4.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    IF(NOT ${CMAKE_C_STANDARD_EXT} VERSION_EQUAL "90" AND
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++       NOT ${CMAKE_C_STANDARD_EXT} VERSION_EQUAL "99" AND
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++       NOT ${CMAKE_C_STANDARD_EXT} VERSION_EQUAL "11")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++       MESSAGE(WARNING "Requested C standard (${CMAKE_C_STANDARD_EXT}) isn't recognized by CMake; expecting one of 90, 99, or 11. Ignoring and using the GNU Radio default C standard (${CMAKE_C_STANDARD}).")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++       SET(CMAKE_C_STANDARD_EXT ${CMAKE_C_STANDARD})
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    ENDIF()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    # fix settings to be comparable. It will be -many- years until we
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    # have to worry about this value getting large enough to wrap
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    # around (to 90), so just add 100 to any value not in the 90's,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    # for comparison sake.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    IF(${CMAKE_C_STANDARD} VERSION_EQUAL "90" OR
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++       ${CMAKE_C_STANDARD} VERSION_EQUAL "99")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        # just copy the value
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        SET(CMAKE_C_STANDARD_CMP ${CMAKE_C_STANDARD})
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    ELSE()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        # add 100 to the value
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        MATH(EXPR CMAKE_C_STANDARD_CMP "${CMAKE_C_STANDARD} + 100")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    ENDIF()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    IF(${CMAKE_C_STANDARD_EXT} VERSION_EQUAL "90" OR
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++       ${CMAKE_C_STANDARD_EXT} VERSION_EQUAL "99")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        # just copy the value
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        SET(CMAKE_C_STANDARD_EXT_CMP ${CMAKE_C_STANDARD_EXT})
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    ELSE()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        # add 100 to the value
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        MATH(EXPR CMAKE_C_STANDARD_EXT_CMP "${CMAKE_C_STANDARD_EXT} + 100")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    ENDIF()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    # compare values
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    IF(${CMAKE_C_STANDARD_EXT_CMP} VERSION_LESS ${CMAKE_C_STANDARD_CMP})
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        MESSAGE(WARNING "Requested C standard (${CMAKE_C_STANDARD_EXT}) isn't modern enough to build GNU Radio; using minimum required C standard (${CMAKE_C_STANDARD}) instead and hoping for the best!")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    ELSEIF(${CMAKE_C_STANDARD_EXT_CMP} VERSION_GREATER ${CMAKE_C_STANDARD_CMP})
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        MESSAGE(WARNING "Requested C standard (${CMAKE_C_STANDARD_EXT}) is more recent than the minimum required C standard (${CMAKE_C_STANDARD}). GNU Radio might have issues building using this C standard; go with it and hope for the best!")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        SET(CMAKE_C_STANDARD ${CMAKE_C_STANDARD_EXT})
</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;'>++########################################################################
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# disable C/CXX standard extensions (e.g., "gnu++11" and "gnu11"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# rather than "c++11" and "c11"). If cmake version is < 3.1,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# explicitly set C/C++ standard to use; this CMake doesn't internally
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# use CMAKE_C*_STANDARD variables.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++SET(CMAKE_C_EXTENSIONS OFF)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++SET(CMAKE_CXX_EXTENSIONS OFF)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</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;'>++    SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=c${CMAKE_C_STANDARD}")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++${CMAKE_CXX_STANDARD}")
</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;'>+ # Environment setup
</span></pre><pre style='margin:0'>

</pre>