svn commit: r509562 - in head/comms: gqrx gqrx/files gr-osmosdr gr-osmosdr/files
Ganael LAPLANCHE
martymac at FreeBSD.org
Wed Aug 21 20:43:25 UTC 2019
Author: martymac
Date: Wed Aug 21 20:43:23 2019
New Revision: 509562
URL: https://svnweb.freebsd.org/changeset/ports/509562
Log:
Un-break comms/gr-osmosdr and comms/gqrx following Gnuradio 3.8 update
For both projects, building with Gnuradio 3.8 is not yet officially supported
so we use local patches at the moment.
See *gr38* patch headers for more details.
Added:
head/comms/gqrx/files/patch-00-gr38-compat.txt (contents, props changed)
head/comms/gr-osmosdr/files/patch-00-gr38-compat.txt (contents, props changed)
head/comms/gr-osmosdr/files/patch-01-gr38-blocks-fix.txt (contents, props changed)
Modified:
head/comms/gqrx/Makefile
head/comms/gqrx/files/patch-gqrx.pro
head/comms/gr-osmosdr/Makefile
head/comms/gr-osmosdr/distinfo
head/comms/gr-osmosdr/files/patch-CMakeLists.txt
head/comms/gr-osmosdr/pkg-plist
Modified: head/comms/gqrx/Makefile
==============================================================================
--- head/comms/gqrx/Makefile Wed Aug 21 20:37:29 2019 (r509561)
+++ head/comms/gqrx/Makefile Wed Aug 21 20:43:23 2019 (r509562)
@@ -4,7 +4,7 @@
PORTNAME= gqrx
PORTVERSION= 2.11.5
DISTVERSIONPREFIX= v
-PORTREVISION= 10
+PORTREVISION= 11
PORTEPOCH= 1
CATEGORIES= comms hamradio
@@ -14,9 +14,6 @@ COMMENT= Software defined radio receiver powered by GN
LICENSE= GPLv3
LICENSE_FILE= ${WRKSRC}/COPYING
-DEPRECATED= Depends on expiring comms/gr-osmosdr
-EXPIRATION_DATE= 2019-09-04
-
LIB_DEPENDS= libgnuradio-runtime.so:comms/gnuradio \
libgnuradio-analog.so:comms/gnuradio \
libgnuradio-blocks.so:comms/gnuradio \
@@ -27,7 +24,9 @@ LIB_DEPENDS= libgnuradio-runtime.so:comms/gnuradio \
libgnuradio-osmosdr.so:comms/gr-osmosdr \
libboost_system.so:devel/boost-libs \
libboost_program_options.so:devel/boost-libs \
- liblog4cpp.so:devel/log4cpp
+ liblog4cpp.so:devel/log4cpp \
+ libgmpxx.so:math/gmp \
+ libgmp.so:math/gmp
USES= gl pkgconfig qmake qt:5
Added: head/comms/gqrx/files/patch-00-gr38-compat.txt
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/comms/gqrx/files/patch-00-gr38-compat.txt Wed Aug 21 20:43:23 2019 (r509562)
@@ -0,0 +1,145 @@
+Gnuradio 3.8 compatibility patch from:
+https://github.com/csete/gqrx/pull/696
+https://github.com/csete/gqrx/commit/2cc48cb8c9e71f893b04a70ff4ad3e9ee3b49b3e.diff
+
+diff --git a/src/applications/gqrx/receiver.cpp b/src/applications/gqrx/receiver.cpp
+index 361be52c..1a364521 100644
+--- src/applications/gqrx/receiver.cpp.orig
++++ src/applications/gqrx/receiver.cpp
+@@ -28,7 +28,7 @@
+
+ #include <iostream>
+
+-#include <gnuradio/blocks/multiply_const_ff.h>
++#include <gnuradio/blocks/multiply_const.h>
+ #include <gnuradio/prefs.h>
+ #include <gnuradio/top_block.h>
+ #include <osmosdr/source.h>
+diff --git a/src/applications/gqrx/receiver.h b/src/applications/gqrx/receiver.h
+index f86d741d..2b2c7f17 100644
+--- src/applications/gqrx/receiver.h.orig
++++ src/applications/gqrx/receiver.h
+@@ -23,10 +23,10 @@
+ #ifndef RECEIVER_H
+ #define RECEIVER_H
+
+-#include <gnuradio/analog/sig_source_c.h>
++#include <gnuradio/analog/sig_source.h>
+ #include <gnuradio/blocks/file_sink.h>
+-#include <gnuradio/blocks/multiply_const_ff.h>
+-#include <gnuradio/blocks/multiply_cc.h>
++#include <gnuradio/blocks/multiply_const.h>
++#include <gnuradio/blocks/multiply.h>
+ #include <gnuradio/blocks/null_sink.h>
+ #include <gnuradio/blocks/wavfile_sink.h>
+ #include <gnuradio/blocks/wavfile_source.h>
+diff --git a/src/dsp/correct_iq_cc.h b/src/dsp/correct_iq_cc.h
+index cb033782..1fe96878 100644
+--- src/dsp/correct_iq_cc.h.orig
++++ src/dsp/correct_iq_cc.h
+@@ -28,7 +28,7 @@
+ #include <gnuradio/blocks/float_to_complex.h>
+ #include <gnuradio/hier_block2.h>
+ #include <gnuradio/filter/single_pole_iir_filter_cc.h>
+-#include <gnuradio/blocks/sub_cc.h>
++#include <gnuradio/blocks/sub.h>
+
+ class dc_corr_cc;
+ class iq_swap_cc;
+diff --git a/src/dsp/filter/fir_decim.cpp b/src/dsp/filter/fir_decim.cpp
+index af2ebda7..7ee3e1b2 100644
+--- src/dsp/filter/fir_decim.cpp.orig
++++ src/dsp/filter/fir_decim.cpp
+@@ -24,7 +24,7 @@
+ #include <cstdio>
+ #include <vector>
+
+-#include <gnuradio/filter/fir_filter_ccf.h>
++#include <gnuradio/filter/fir_filter.h>
+ #include <gnuradio/hier_block2.h>
+ #include <gnuradio/io_signature.h>
+
+diff --git a/src/dsp/filter/fir_decim.h b/src/dsp/filter/fir_decim.h
+index 9c026f48..bd1f09f2 100644
+--- src/dsp/filter/fir_decim.h.orig
++++ src/dsp/filter/fir_decim.h
+@@ -22,7 +22,7 @@
+ */
+ #pragma once
+
+-#include <gnuradio/filter/fir_filter_ccf.h>
++#include <gnuradio/filter/fir_filter_blk.h>
+ #include <gnuradio/hier_block2.h>
+
+ class fir_decim_cc;
+diff --git a/src/dsp/lpf.h b/src/dsp/lpf.h
+index 049b3a9c..6663fdc2 100644
+--- src/dsp/lpf.h.orig
++++ src/dsp/lpf.h
+@@ -25,7 +25,7 @@
+
+ #include <gnuradio/hier_block2.h>
+ #include <gnuradio/filter/firdes.h>
+-#include <gnuradio/filter/fir_filter_fff.h>
++#include <gnuradio/filter/fir_filter_blk.h>
+
+
+ class lpf_ff;
+diff --git a/src/dsp/rx_filter.h b/src/dsp/rx_filter.h
+index 8723be32..d1b1db61 100644
+--- src/dsp/rx_filter.h.orig
++++ src/dsp/rx_filter.h
+@@ -24,8 +24,8 @@
+ #define RX_FILTER_H
+
+ #include <gnuradio/hier_block2.h>
+-#include <gnuradio/filter/fir_filter_ccc.h>
+-#include <gnuradio/filter/freq_xlating_fir_filter_ccc.h>
++#include <gnuradio/filter/fir_filter_blk.h>
++#include <gnuradio/filter/freq_xlating_fir_filter.h>
+
+
+ #define RX_FILTER_MIN_WIDTH 100 /*! Minimum width of filter */
+diff --git a/src/dsp/rx_rds.h b/src/dsp/rx_rds.h
+index 17e406ae..098b20ef 100644
+--- src/dsp/rx_rds.h.orig
++++ src/dsp/rx_rds.h
+@@ -24,11 +24,9 @@
+ #define RX_RDS_H
+
+ #include <gnuradio/hier_block2.h>
+-#include <gnuradio/filter/fir_filter_ccc.h>
+-#include <gnuradio/filter/fir_filter_ccf.h>
+-#include <gnuradio/filter/fir_filter_fff.h>
+-#include <gnuradio/filter/freq_xlating_fir_filter_fcf.h>
+-#include <gnuradio/filter/freq_xlating_fir_filter_ccf.h>
++#include <gnuradio/filter/fir_filter.h>
++#include <gnuradio/filter/fir_filter_blk.h>
++#include <gnuradio/filter/freq_xlating_fir_filter.h>
+ #include <gnuradio/digital/constellation_receiver_cb.h>
+ #include <gnuradio/blocks/keep_one_in_n.h>
+ #include <gnuradio/digital/diff_decoder_bb.h>
+diff --git a/src/dsp/stereo_demod.h b/src/dsp/stereo_demod.h
+index 28be5c0c..d88e0890 100644
+--- src/dsp/stereo_demod.h.orig
++++ src/dsp/stereo_demod.h
+@@ -26,14 +26,13 @@
+
+ #include <gnuradio/hier_block2.h>
+ #include <gnuradio/filter/firdes.h>
+-#include <gnuradio/filter/fir_filter_fcc.h>
+-#include <gnuradio/filter/fir_filter_fff.h>
++#include <gnuradio/filter/fir_filter.h>
++#include <gnuradio/filter/fir_filter_blk.h>
+ #include <gnuradio/analog/pll_refout_cc.h>
+-#include <gnuradio/blocks/multiply_cc.h>
+-#include <gnuradio/blocks/multiply_ff.h>
+-#include <gnuradio/blocks/multiply_const_ff.h>
++#include <gnuradio/blocks/multiply.h>
++#include <gnuradio/blocks/multiply_const.h>
+ #include <gnuradio/blocks/complex_to_imag.h>
+-#include <gnuradio/blocks/add_ff.h>
++#include <gnuradio/blocks/add_blk.h>
+ #include <vector>
+ #include "dsp/lpf.h"
+ #include "dsp/resampler_xx.h"
Modified: head/comms/gqrx/files/patch-gqrx.pro
==============================================================================
--- head/comms/gqrx/files/patch-gqrx.pro Wed Aug 21 20:37:29 2019 (r509561)
+++ head/comms/gqrx/files/patch-gqrx.pro Wed Aug 21 20:43:23 2019 (r509562)
@@ -1,10 +1,11 @@
---- ./gqrx.pro.orig 2014-08-08 08:21:20.000000000 -0500
-+++ ./gqrx.pro 2014-09-05 22:50:58.000000000 -0500
-@@ -206,7 +206,6 @@
+--- gqrx.pro.orig 2018-05-16 23:32:13.000000000 +0200
++++ gqrx.pro 2019-08-20 22:57:38.783794000 +0200
+@@ -267,7 +267,7 @@
unix:!macx {
LIBS += -lboost_system$$BOOST_SUFFIX -lboost_program_options$$BOOST_SUFFIX
- LIBS += -lrt # need to include on some distros
++ LIBS += -llog4cpp
}
macx {
Modified: head/comms/gr-osmosdr/Makefile
==============================================================================
--- head/comms/gr-osmosdr/Makefile Wed Aug 21 20:37:29 2019 (r509561)
+++ head/comms/gr-osmosdr/Makefile Wed Aug 21 20:43:23 2019 (r509562)
@@ -2,9 +2,8 @@
PORTNAME= gr-osmosdr
DISTVERSIONPREFIX= v
-DISTVERSION= 0.1.4-99
-DISTVERSIONSUFFIX= -gc98be5d
-PORTREVISION= 9
+DISTVERSION= 0.1.4-127
+DISTVERSIONSUFFIX= -g4d83c60
PORTEPOCH= 1
CATEGORIES= comms hamradio
@@ -13,17 +12,17 @@ COMMENT= GNU Radio OsmoSDR module
LICENSE= GPLv3
-BROKEN= does not build with Gnuradio 3.8
-DEPRECATED= Broken for more than 6 months
-EXPIRATION_DATE= 2019-09-04
-
BUILD_DEPENDS= swig3.0:devel/swig30 \
cheetah:devel/py-cheetah
LIB_DEPENDS= libgnuradio-runtime.so:comms/gnuradio \
libgnuradio-pmt.so:comms/gnuradio \
libgnuradio-blocks.so:comms/gnuradio \
libboost_system.so:devel/boost-libs \
- libboost_thread.so:devel/boost-libs
+ libboost_thread.so:devel/boost-libs \
+ liblog4cpp.so:devel/log4cpp \
+ libgmpxx.so:math/gmp \
+ libgmp.so:math/gmp \
+ liborc-0.4.so:devel/orc
USES= cmake compiler:c++11-lang fortran pkgconfig python:2.7 tar:tgz
@@ -35,7 +34,6 @@ BINARY_ALIAS= swig=swig3.0
# See lib/CMakeLists.txt to enable more components
CMAKE_ARGS+= -DENABLE_DEFAULT:BOOL=OFF \
- -DENABLE_FCD:BOOL=ON \
-DENABLE_FILE:BOOL=ON \
-DENABLE_PYTHON=ON \
-DPYTHON_EXECUTABLE:STRING="${PYTHON_CMD}"
Modified: head/comms/gr-osmosdr/distinfo
==============================================================================
--- head/comms/gr-osmosdr/distinfo Wed Aug 21 20:37:29 2019 (r509561)
+++ head/comms/gr-osmosdr/distinfo Wed Aug 21 20:43:23 2019 (r509562)
@@ -1,3 +1,3 @@
-TIMESTAMP = 1530557606
-SHA256 (osmocom-gr-osmosdr-v0.1.4-99-gc98be5d_GH0.tar.gz) = d18f86265cf90aaa7e009dce3a41f2d752a1df5561cb453078a61ab2a4669d53
-SIZE (osmocom-gr-osmosdr-v0.1.4-99-gc98be5d_GH0.tar.gz) = 272154
+TIMESTAMP = 1565587646
+SHA256 (osmocom-gr-osmosdr-v0.1.4-127-g4d83c60_GH0.tar.gz) = 9f363b33b4c3eb5f3ba04b7cb3b7d3b5a51d615c595b10e6e7b985cfc4076ca6
+SIZE (osmocom-gr-osmosdr-v0.1.4-127-g4d83c60_GH0.tar.gz) = 278385
Added: head/comms/gr-osmosdr/files/patch-00-gr38-compat.txt
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/comms/gr-osmosdr/files/patch-00-gr38-compat.txt Wed Aug 21 20:43:23 2019 (r509562)
@@ -0,0 +1,8349 @@
+Gnuradio 3.8 compatibility patch from:
+https://github.com/igorauad/gr-osmosdr/tree/gr3.8
+
+generated using:
+git diff --no-prefix 4d83c60 gr3.8
+
+diff --git .gitignore .gitignore
+new file mode 100644
+index 0000000..05e004f
+--- /dev/null
++++ .gitignore
+@@ -0,0 +1,74 @@
++*~
++*.pyc
++*.pyo
++build*/
++cmake-*
++libosmo-dsp/*
++
++# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio and WebStorm
++# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839
++
++# User-specific stuff
++.idea
++.idea/**/workspace.xml
++.idea/**/tasks.xml
++.idea/**/usage.statistics.xml
++.idea/**/dictionaries
++.idea/**/shelf
++
++# Generated files
++.idea/**/contentModel.xml
++
++# Sensitive or high-churn files
++.idea/**/dataSources/
++.idea/**/dataSources.ids
++.idea/**/dataSources.local.xml
++.idea/**/sqlDataSources.xml
++.idea/**/dynamic.xml
++.idea/**/uiDesigner.xml
++.idea/**/dbnavigator.xml
++
++# Gradle
++.idea/**/gradle.xml
++.idea/**/libraries
++
++# Gradle and Maven with auto-import
++# When using Gradle or Maven with auto-import, you should exclude module files,
++# since they will be recreated, and may cause churn. Uncomment if using
++# auto-import.
++# .idea/modules.xml
++# .idea/*.iml
++# .idea/modules
++
++# CMake
++cmake-build-*/
++
++# Mongo Explorer plugin
++.idea/**/mongoSettings.xml
++
++# File-based project format
++*.iws
++
++# IntelliJ
++out/
++
++# mpeltonen/sbt-idea plugin
++.idea_modules/
++
++# JIRA plugin
++atlassian-ide-plugin.xml
++
++# Cursive Clojure plugin
++.idea/replstate.xml
++
++# Crashlytics plugin (for Android Studio and IntelliJ)
++com_crashlytics_export_strings.xml
++crashlytics.properties
++crashlytics-build.properties
++fabric.properties
++
++# Editor-based Rest Client
++.idea/httpRequests
++
++# Android studio 3.1+ serialized cache file
++.idea/caches/build_file_checksums.ser
+diff --git CMakeLists.txt CMakeLists.txt
+index af21291..76375dc 100644
+--- CMakeLists.txt
++++ CMakeLists.txt
+@@ -20,11 +20,21 @@
+ ########################################################################
+ # Project setup
+ ########################################################################
+-cmake_minimum_required(VERSION 2.6)
++cmake_minimum_required(VERSION 3.8)
+ project(gr-osmosdr CXX C)
+ enable_testing()
+
+-list(APPEND CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake/Modules)
++#install to PyBOMBS target prefix if defined
++if(DEFINED ENV{PYBOMBS_PREFIX})
++ set(CMAKE_INSTALL_PREFIX $ENV{PYBOMBS_PREFIX})
++ message(STATUS "PyBOMBS installed GNU Radio. Setting CMAKE_INSTALL_PREFIX to $ENV{PYBOMBS_PREFIX}")
++endif()
++
++# Get GNU Radio Installation Prefix
++if(DEFINED CMAKE_INSTALL_PREFIX)
++ set(GR_PREFIX ${CMAKE_INSTALL_PREFIX})
++ message(STATUS "Installation is located at: ${GR_PREFIX}")
++endif()
+
+ #select the release build type by default to get optimization flags
+ if(NOT CMAKE_BUILD_TYPE)
+@@ -33,6 +43,9 @@ if(NOT CMAKE_BUILD_TYPE)
+ endif(NOT CMAKE_BUILD_TYPE)
+ set(CMAKE_BUILD_TYPE ${CMAKE_BUILD_TYPE} CACHE STRING "")
+
++#make sure our local CMake Modules path comes first
++list(INSERT CMAKE_MODULE_PATH 0 ${CMAKE_SOURCE_DIR}/cmake/Modules)
++
+ set(ENABLE_NONFREE FALSE CACHE BOOL "Enable or disable nonfree components.")
+
+ # Set the version information here
+@@ -40,23 +53,24 @@ set(VERSION_INFO_MAJOR_VERSION 0)
+ set(VERSION_INFO_API_COMPAT 1)
+ set(VERSION_INFO_MINOR_VERSION 5)
+ set(VERSION_INFO_MAINT_VERSION git)
+-include(GrVersion) #setup version info
++
++cmake_policy(SET CMP0011 NEW)
++
+
+ ########################################################################
+ # Compiler specific setup
+ ########################################################################
+-
+ IF(CMAKE_SYSTEM_PROCESSOR MATCHES "x86_64|AMD64|x86")
+- SET(USE_SIMD "SSE2" CACHE STRING "Use SIMD instructions")
++ SET(USE_SIMD "SSE2" CACHE STRING "Use SIMD instructions")
+ ELSE()
+- SET(USE_SIMD "no" CACHE STRING "Use SIMD instructions")
++ SET(USE_SIMD "no" CACHE STRING "Use SIMD instructions")
++ENDIF()
++SET(USE_SIMD_VALUES "no" "SSE2" "AVX")
++SET_PROPERTY(CACHE USE_SIMD PROPERTY STRINGS ${USE_SIMD_VALUES})
++LIST(FIND USE_SIMD_VALUES ${USE_SIMD} USE_SIMD_INDEX)
++IF(${USE_SIMD_INDEX} EQUAL -1)
++ message(FATAL_ERROR "Option ${USE_SIMD} not supported, valid entries are ${USE_SIMD_VALUES}")
+ ENDIF()
+- SET(USE_SIMD_VALUES "no" "SSE2" "AVX")
+- SET_PROPERTY(CACHE USE_SIMD PROPERTY STRINGS ${USE_SIMD_VALUES})
+- LIST(FIND USE_SIMD_VALUES ${USE_SIMD} USE_SIMD_INDEX)
+- IF(${USE_SIMD_INDEX} EQUAL -1)
+- message(FATAL_ERROR "Option ${USE_SIMD} not supported, valid entries are ${USE_SIMD_VALUES}")
+- ENDIF()
+
+ IF(CMAKE_CXX_COMPILER MATCHES ".*clang")
+ SET(CMAKE_COMPILER_IS_CLANGXX 1)
+@@ -94,43 +108,25 @@ ELSEIF(MSVC)
+ ENDIF()
+ ENDIF()
+
++
+ ########################################################################
+-# Setup boost
++# Install directories
+ ########################################################################
+-MESSAGE(STATUS "Configuring Boost C++ Libraries...")
+-
+-# Although not required on my system, some users have linking issues without
+-SET(BOOST_REQUIRED_COMPONENTS
+- thread
+- system
+-)
+-
+-if(UNIX AND NOT BOOST_ROOT AND EXISTS "/usr/lib64")
+- list(APPEND BOOST_LIBRARYDIR "/usr/lib64") #fedora 64-bit fix
+-endif(UNIX AND NOT BOOST_ROOT AND EXISTS "/usr/lib64")
+-
+-set(Boost_ADDITIONAL_VERSIONS
+- "1.35.0" "1.35" "1.36.0" "1.36" "1.37.0" "1.37" "1.38.0" "1.38" "1.39.0" "1.39"
+- "1.40.0" "1.40" "1.41.0" "1.41" "1.42.0" "1.42" "1.43.0" "1.43" "1.44.0" "1.44"
+- "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"
+- "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"
+- "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"
+- "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"
+- "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"
+-)
+-
+-find_package(Boost COMPONENTS ${BOOST_REQUIRED_COMPONENTS})
+-
+-if(NOT Boost_FOUND)
+- message(FATAL_ERROR "Boost required to build " ${CMAKE_PROJECT_NAME})
++find_package(Gnuradio REQUIRED) # Side effect of MODULE_PATH getting prepended with system components
++list(REVERSE CMAKE_MODULE_PATH)
++set(MIN_GR_VERSION "3.8")
++if("${Gnuradio_VERSION}" VERSION_LESS MIN_GR_VERSION)
++ MESSAGE(FATAL_ERROR "GnuRadio version required: >=\"" ${MIN_GR_VERSION} "\" found: \"" ${Gnuradio_VERSION} "\"")
+ endif()
+
+-ADD_DEFINITIONS(-DBOOST_ALL_DYN_LINK)
++include(GrVersion)
+
+-########################################################################
+-# Install directories
+-########################################################################
+ include(GrPlatform) #define LIB_SUFFIX
++if(NOT CMAKE_MODULES_DIR)
++ set(CMAKE_MODULES_DIR lib${LIB_SUFFIX}/cmake)
++endif(NOT CMAKE_MODULES_DIR)
++
++set(GR_CMAKE_DIR ${CMAKE_MODULES_DIR}/osmosdr)
+ set(GR_RUNTIME_DIR bin)
+ set(GR_LIBRARY_DIR lib${LIB_SUFFIX})
+ set(GR_INCLUDE_DIR include)
+@@ -146,26 +142,69 @@ set(GR_LIBEXEC_DIR libexec)
+ set(GR_PKG_LIBEXEC_DIR ${GR_LIBEXEC_DIR}/${CMAKE_PROJECT_NAME})
+ set(GRC_BLOCKS_DIR ${GR_PKG_DATA_DIR}/grc/blocks)
+
++########################################################################
++# On Apple only, set install name and use rpath correctly, if not already set
++########################################################################
++if(APPLE)
++ if(NOT CMAKE_INSTALL_NAME_DIR)
++ set(CMAKE_INSTALL_NAME_DIR
++ ${CMAKE_INSTALL_PREFIX}/${GR_LIBRARY_DIR} CACHE
++ PATH "Library Install Name Destination Directory" FORCE)
++ endif(NOT CMAKE_INSTALL_NAME_DIR)
++ if(NOT CMAKE_INSTALL_RPATH)
++ set(CMAKE_INSTALL_RPATH
++ ${CMAKE_INSTALL_PREFIX}/${GR_LIBRARY_DIR} CACHE
++ PATH "Library Install RPath" FORCE)
++ endif(NOT CMAKE_INSTALL_RPATH)
++ if(NOT CMAKE_BUILD_WITH_INSTALL_RPATH)
++ set(CMAKE_BUILD_WITH_INSTALL_RPATH ON CACHE
++ BOOL "Do Build Using Library Install RPath" FORCE)
++ endif(NOT CMAKE_BUILD_WITH_INSTALL_RPATH)
++endif(APPLE)
++
+ ########################################################################
+ # Find build dependencies
+ ########################################################################
+ set(GR_REQUIRED_COMPONENTS RUNTIME PMT BLOCKS)
+-set(MIN_GR_VERSION "3.7.10")
+-find_package(Gnuradio REQUIRED)
+-if("${Gnuradio_VERSION}" VERSION_LESS MIN_GR_VERSION)
+- MESSAGE(FATAL_ERROR "GnuRadio version required: >=\"" ${MIN_GR_VERSION} "\" found: \"" ${Gnuradio_VERSION} "\"")
+-endif()
++
++find_package(gnuradio-blocks PATHS ${GR_PREFIX}/lib/cmake/gnuradio/)
++message(STATUS "Found Block Block: ${gnuradio-blocks_FOUND}")
++
++#[[find_package(gnuradio-pmt PATHS ${GR_PREFIX}/lib/cmake/gnuradio/)
++message(STATUS "Found PMT Block: ${gnuradio-pmt_FOUND}")
++
++find_package(gnuradio-runtime PATHS ${GR_PREFIX}/lib/cmake/gnuradio/)
++message(STATUS "Found Runtime Block: ${gnuradio-runtime_FOUND}")
++
++# Software Components part of GNU Radio - These should all be present for a default install
++message(STATUS " Searching for IQ Balance...")
++#find_package(Gnuradio COMPONENTS iqbalance REQUIRED)
++find_package(gnuradio-iqbalance PATHS ${GR_PREFIX}/lib/cmake/iqbalance)
++message (STATUS "Found IQ Balance: ${gnuradio-iqbalance_FOUND}")
++
++message(STATUS " Searching for UHD Drivers...")
++#find_package(Gnuradio COMPONENTS uhd REQUIRED)
++find_package(UHD REQUIRED ${GR_PREFIX}/lib/cmake/uhd)
++message (STATUS "Found UHD Driver: ${UHD_FOUND}")
++
++message(STATUS " Searching for UHD Block...")
++#find_package(Gnuradio COMPONENTS gnuradio-uhd REQUIRED)
++find_package(gnuradio-uhd PATHS ${GR_PREFIX}/lib/cmake/gnuradio/)
++message (STATUS "Found UHD Block: ${gnuradio-uhd_FOUND}")
++
++message(STATUS " Searching for Volk...")
++#find_package(Gnuradio COMPONENTS Volk REQUIRED)
++find_package(volk PATHS ${GR_PREFIX}/lib/cmake/volk)
++message (STATUS "Found Volk: ${volk_FOUND}") ]]#
+
+ find_package(GnuradioIQBalance)
+ find_package(UHD)
+ find_package(GnuradioUHD)
+-find_package(GnuradioFCD)
+-find_package(GnuradioFCDPP)
+ find_package(LibOsmoSDR)
+ find_package(LibRTLSDR)
+ find_package(LibMiriSDR)
+ if(ENABLE_NONFREE)
+-find_package(LibSDRplay)
++ find_package(LibSDRplay)
+ endif(ENABLE_NONFREE)
+ find_package(LibHackRF)
+ find_package(LibAIRSPY)
+@@ -175,23 +214,35 @@ find_package(SoapySDR NO_MODULE)
+ find_package(LibFreeSRP)
+ find_package(Doxygen)
+
+-if(NOT GNURADIO_RUNTIME_FOUND)
+- message(FATAL_ERROR "GnuRadio Runtime required to build " ${CMAKE_PROJECT_NAME})
+-endif()
++#get_cmake_property(_variableNames VARIABLES)
++#list (SORT _variableNames)
++#foreach (_variableName ${_variableNames})
++# message(STATUS "${_variableName}=${${_variableName}}")
++#endforeach()
++
++
++########################################################################
++# Setup doxygen option
++########################################################################
++if(DOXYGEN_FOUND)
++ option(ENABLE_DOXYGEN "Build docs using Doxygen" ON)
++else(DOXYGEN_FOUND)
++ option(ENABLE_DOXYGEN "Build docs using Doxygen" OFF)
++endif(DOXYGEN_FOUND)
+
+ ########################################################################
+ # Setup the include and linker paths
+ ########################################################################
+ include_directories(
+- ${CMAKE_SOURCE_DIR}/include
+- ${CMAKE_SOURCE_DIR}/lib
+- ${Boost_INCLUDE_DIRS}
+- ${GNURADIO_ALL_INCLUDE_DIRS}
++ ${CMAKE_SOURCE_DIR}/include
++ ${CMAKE_SOURCE_DIR}/lib
++ ${Boost_INCLUDE_DIRS}
++ ${GNURADIO_ALL_INCLUDE_DIRS}
+ )
+
+ link_directories(
+- ${Boost_LIBRARY_DIRS}
+- ${GNURADIO_ALL_LIBRARY_DIRS}
++ ${Boost_LIBRARY_DIRS}
++ ${GNURADIO_ALL_LIBRARY_DIRS}
+ )
+
+ # Set component parameters
+@@ -208,12 +259,13 @@ configure_file(
+
+ add_custom_target(uninstall
+ ${CMAKE_COMMAND} -P ${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake
+-)
++ )
++
+
+ ########################################################################
+ # Enable python component
+ ########################################################################
+-find_package(PythonLibs 2)
++find_package(PythonLibs)
+ find_package(SWIG)
+
+ if(SWIG_FOUND)
+@@ -226,10 +278,11 @@ endif(SWIG_FOUND)
+
+ include(GrComponent)
+ GR_REGISTER_COMPONENT("Python support" ENABLE_PYTHON
+- PYTHONLIBS_FOUND
+- SWIG_FOUND
+- SWIG_VERSION_CHECK
+-)
++ PYTHONLIBS_FOUND
++ SWIG_FOUND
++ SWIG_VERSION_CHECK
++ )
++
+
+ ########################################################################
+ # Add subdirectories
+@@ -244,6 +297,14 @@ if(ENABLE_PYTHON)
+ endif(ENABLE_PYTHON)
+ add_subdirectory(docs)
+
++########################################################################
++# Install cmake search helper for this library
++########################################################################
++
++install(FILES cmake/Modules/osmosdrConfig.cmake
++ DESTINATION ${CMAKE_MODULES_DIR}/osmosdr
++)
++
+ ########################################################################
+ # Create Pkg Config File
+ ########################################################################
+@@ -272,13 +333,13 @@ set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "GNU Radio block for various radio hardwar
+ set(CPACK_PACKAGE_VERSION ${VERSION})
+
+ CONFIGURE_FILE(
+- ${CMAKE_CURRENT_SOURCE_DIR}/gnuradio-osmosdr.pc.in
+- ${CMAKE_CURRENT_BINARY_DIR}/gnuradio-osmosdr.pc
+- at ONLY)
++ ${CMAKE_CURRENT_SOURCE_DIR}/gnuradio-osmosdr.pc.in
++ ${CMAKE_CURRENT_BINARY_DIR}/gnuradio-osmosdr.pc
++ @ONLY)
+
+ INSTALL(
+- FILES ${CMAKE_CURRENT_BINARY_DIR}/gnuradio-osmosdr.pc
+- DESTINATION ${GR_LIBRARY_DIR}/pkgconfig
++ FILES ${CMAKE_CURRENT_BINARY_DIR}/gnuradio-osmosdr.pc
++ DESTINATION ${GR_LIBRARY_DIR}/pkgconfig
+ )
+
+ ########################################################################
+@@ -286,11 +347,11 @@ INSTALL(
+ ########################################################################
+ GR_PRINT_COMPONENT_SUMMARY()
+ if(ENABLE_NONFREE)
+-MESSAGE(STATUS
+- "NONFREE components have been enabled. The resulting
++ MESSAGE(STATUS
++ "NONFREE components have been enabled. The resulting
+ binaries cannot be distributed under GPL terms.
+ "
+-)
++ )
+ endif(ENABLE_NONFREE)
+
+ MESSAGE(STATUS "Building for version: ${VERSION} / ${LIBVER}")
+diff --git README README
+index 67fa475..4d8363b 100644
+--- README
++++ README
+@@ -1,8 +1,6 @@
+ While primarily being developed for the OsmoSDR hardware, this block
+ as well supports:
+
+- * FUNcube Dongle through libgnuradio-fcd
+- * FUNcube Dongle Pro+ through gr-fcdproplus
+ * sysmocom OsmoSDR Devices through libosmosdr
+ * RTL2832U based DVB-T dongles through librtlsdr
+ * RTL-TCP spectrum server (see librtlsdr project)
+diff --git apps/osmocom_siggen_base.py apps/osmocom_siggen_base.py
+index b6e9a0c..f07f3f6 100644
+--- apps/osmocom_siggen_base.py
++++ apps/osmocom_siggen_base.py
+@@ -109,9 +109,9 @@ class gsm_source_c(gr.hier_block2):
+ [0,0,0],
+ ]
+ burst = sum(chunks,[])
+- burst = sum(map(list, zip(burst, (1,) * len(burst))), [])
++ burst = sum(list(map(list, list(zip(burst, (1,) * len(burst))))), [])
+ burst += [1,0] * (l-148)
+- return map(int, burst)
++ return list(map(int, burst))
+
+ def gen_gsm_frame(self):
+ return \
+@@ -186,7 +186,7 @@ class top_block(gr.top_block, pubsub):
+ try:
+ self._sink.get_sample_rates().start()
+ except RuntimeError:
+- print "Sink has no sample rates (wrong device arguments?)."
++ print("Sink has no sample rates (wrong device arguments?).")
+ sys.exit(1)
+
+ # Set the clock source:
+@@ -202,60 +202,60 @@ class top_block(gr.top_block, pubsub):
+ if(options.gain):
+ gain = self._sink.set_gain(options.gain)
+ if self._verbose:
+- print "Set gain to:", gain
++ print("Set gain to:", gain)
+
+ if self._verbose:
+ gain_names = self._sink.get_gain_names()
+ for name in gain_names:
+ range = self._sink.get_gain_range(name)
+- print "%s gain range: start %d stop %d step %d" % (name, range.start(), range.stop(), range.step())
++ print("%s gain range: start %d stop %d step %d" % (name, range.start(), range.stop(), range.step()))
+
+ if options.gains:
+ for tuple in options.gains.split(","):
+ name, gain = tuple.split(":")
+ gain = int(gain)
+- print "Setting gain %s to %d." % (name, gain)
++ print("Setting gain %s to %d." % (name, gain))
+ self._sink.set_gain(gain, name)
+
+ if self._verbose:
+ rates = self._sink.get_sample_rates()
+- print 'Supported sample rates %d-%d step %d.' % (rates.start(), rates.stop(), rates.step())
++ print('Supported sample rates %d-%d step %d.' % (rates.start(), rates.stop(), rates.step()))
+
+ # Set the antenna
+ if self._verbose:
+- print "setting antenna..."
++ print("setting antenna...")
+ if(options.antenna):
+ ant = self._sink.set_antenna(options.antenna, 0)
+ if self._verbose:
+- print "Set antenna to:", ant
++ print("Set antenna to:", ant)
+ try:
+ self.publish(FREQ_RANGE_KEY, self._sink.get_freq_range)
+ except:
+- print "Couldn't publish %s" % FREQ_RANGE_KEY
++ print("Couldn't publish %s" % FREQ_RANGE_KEY)
+
+ try:
+ for name in self.get_gain_names():
+ self.publish(GAIN_RANGE_KEY(name), (lambda self=self,name=name: self._sink.get_gain_range(name)))
+ except:
+- print "Couldn't publish %s" % FREQ_RANGE_KEY
++ print("Couldn't publish %s" % FREQ_RANGE_KEY)
+
+ try:
+ self.publish(BWIDTH_RANGE_KEY, self._sink.get_bandwidth_range)
+ except:
+ if self._verbose:
+- print "Couldn't publish %s" % BWIDTH_RANGE_KEY
++ print("Couldn't publish %s" % BWIDTH_RANGE_KEY)
+
+ try:
+ for name in self.get_gain_names():
+ self.publish(GAIN_KEY(name), (lambda self=self,name=name: self._sink.get_gain(name)))
+ except:
+ if self._verbose:
+- print "Couldn't publish GAIN_KEYs"
++ print("Couldn't publish GAIN_KEYs")
+ try:
+ self.publish(BWIDTH_KEY, self._sink.get_bandwidth)
+ except:
+ if self._verbose:
+- print "Couldn't publish %s" % BWIDTH_KEY
++ print("Couldn't publish %s" % BWIDTH_KEY)
+
+ def get_gain_names(self):
+ return self._sink.get_gain_names()
+@@ -277,7 +277,7 @@ class top_block(gr.top_block, pubsub):
+ return True # Waveform not yet set
+
+ if self._verbose:
+- print "Set sample rate to:", sr
++ print("Set sample rate to:", sr)
+
+ return True
+
+@@ -286,27 +286,27 @@ class top_block(gr.top_block, pubsub):
+ g = self[GAIN_RANGE_KEY(name)]
+ gain = float(g.start()+g.stop())/2
+ if self._verbose:
+- print "Using auto-calculated mid-point gain"
++ print("Using auto-calculated mid-point gain")
+ self[GAIN_KEY(name)] = gain
+ return
+
+ gain = self._sink.set_gain(gain, name)
+ if self._verbose:
+- print "Set " + name + " gain to:", gain
++ print("Set " + name + " gain to:", gain)
+
+ def set_bandwidth(self, bw):
+ try:
+ clipped_bw = self[BWIDTH_RANGE_KEY].clip(bw)
+ except:
+ if self._verbose:
+- print "couldn't clip bandwidth"
++ print("couldn't clip bandwidth")
+ return
+
+ if self._sink.get_bandwidth() != clipped_bw:
+ bw = self._sink.set_bandwidth(clipped_bw)
+
+ if self._verbose:
+- print "Set bandwidth to:", bw
++ print("Set bandwidth to:", bw)
+
+ def set_dc_offset(self, value):
+ correction = complex( self[DC_OFFSET_REAL], self[DC_OFFSET_IMAG] )
+@@ -315,9 +315,9 @@ class top_block(gr.top_block, pubsub):
+ self._sink.set_dc_offset( correction )
+
+ if self._verbose:
+- print "Set DC offset to", correction
++ print("Set DC offset to", correction)
+ except RuntimeError as ex:
+- print ex
++ print(ex)
+
+ def set_iq_balance(self, value):
+ correction = complex( self[IQ_BALANCE_MAG], self[IQ_BALANCE_PHA] )
+@@ -326,16 +326,16 @@ class top_block(gr.top_block, pubsub):
+ self._sink.set_iq_balance( correction )
+
+ if self._verbose:
+- print "Set IQ balance to", correction
++ print("Set IQ balance to", correction)
+ except RuntimeError as ex:
+- print ex
++ print(ex)
+
+ def set_freq(self, freq):
+ if freq is None:
+ f = self[FREQ_RANGE_KEY]
+ freq = float(f.start()+f.stop())/2.0
+ if self._verbose:
+- print "Using auto-calculated mid-point frequency"
++ print("Using auto-calculated mid-point frequency")
+ self[TX_FREQ_KEY] = freq
+ return
+
+@@ -343,22 +343,22 @@ class top_block(gr.top_block, pubsub):
+ if freq is not None:
+ self._freq = freq
+ if self._verbose:
+- print "Set center frequency to", freq
++ print("Set center frequency to", freq)
+ elif self._verbose:
+- print "Failed to set freq."
++ print("Failed to set freq.")
+ return freq
+
+ def set_freq_corr(self, ppm):
+ if ppm is None:
+ ppm = 0.0
+ if self._verbose:
+- print "Using frequency corrrection of", ppm
++ print("Using frequency corrrection of", ppm)
+ self[FREQ_CORR_KEY] = ppm
+ return
+
+ ppm = self._sink.set_freq_corr(ppm)
+ if self._verbose:
+- print "Set frequency correction to:", ppm
++ print("Set frequency correction to:", ppm)
+
+ def set_waveform_freq(self, freq):
+ if self[TYPE_KEY] == analog.GR_SIN_WAVE:
+@@ -433,24 +433,24 @@ class top_block(gr.top_block, pubsub):
+ self.unlock()
+
+ if self._verbose:
+- print "Set baseband modulation to:", waveforms[type]
++ print("Set baseband modulation to:", waveforms[type])
+ if type == analog.GR_SIN_WAVE:
+- print "Modulation frequency: %sHz" % (n2s(self[WAVEFORM_FREQ_KEY]),)
+- print "Initial phase:", self[WAVEFORM_OFFSET_KEY]
++ print("Modulation frequency: %sHz" % (n2s(self[WAVEFORM_FREQ_KEY]),))
++ print("Initial phase:", self[WAVEFORM_OFFSET_KEY])
+ elif type == "2tone":
+- print "Tone 1: %sHz" % (n2s(self[WAVEFORM_FREQ_KEY]),)
+- print "Tone 2: %sHz" % (n2s(self[WAVEFORM2_FREQ_KEY]),)
++ print("Tone 1: %sHz" % (n2s(self[WAVEFORM_FREQ_KEY]),))
++ print("Tone 2: %sHz" % (n2s(self[WAVEFORM2_FREQ_KEY]),))
+ elif type == "sweep":
+- print "Sweeping across %sHz to %sHz" % (n2s(-self[WAVEFORM_FREQ_KEY]/2.0),n2s(self[WAVEFORM_FREQ_KEY]/2.0))
+- print "Sweep rate: %sHz" % (n2s(self[WAVEFORM2_FREQ_KEY]),)
++ print("Sweeping across %sHz to %sHz" % (n2s(-self[WAVEFORM_FREQ_KEY]/2.0),n2s(self[WAVEFORM_FREQ_KEY]/2.0)))
++ print("Sweep rate: %sHz" % (n2s(self[WAVEFORM2_FREQ_KEY]),))
+ elif type == "gsm":
+- print "GSM Burst Sequence"
+- print "TX amplitude:", self[AMPLITUDE_KEY]
++ print("GSM Burst Sequence")
++ print("TX amplitude:", self[AMPLITUDE_KEY])
+
+ def set_amplitude(self, amplitude):
+ if amplitude < 0.0 or amplitude > 1.0:
+ if self._verbose:
+- print "Amplitude out of range:", amplitude
++ print("Amplitude out of range:", amplitude)
+ return False
+
+ if self[TYPE_KEY] in (analog.GR_SIN_WAVE, analog.GR_CONST_WAVE, analog.GR_GAUSSIAN, analog.GR_UNIFORM):
+@@ -466,7 +466,7 @@ class top_block(gr.top_block, pubsub):
+ return True # Waveform not yet set
+
+ if self._verbose:
+- print "Set amplitude to:", amplitude
++ print("Set amplitude to:", amplitude)
+ return True
+
+ def get_options():
+@@ -525,19 +525,19 @@ def get_options():
+ # the below does not run.
+ def test_main():
+ if gr.enable_realtime_scheduling() != gr.RT_OK:
+- print "Note: failed to enable realtime scheduling, continuing"
++ print("Note: failed to enable realtime scheduling, continuing")
+
+ # Grab command line options and create top block
+ try:
+ (options, args) = get_options()
+ tb = top_block(options, args)
+
+- except RuntimeError, e:
+- print e
++ except RuntimeError as e:
++ print(e)
+ sys.exit(1)
+
+ tb.start()
+- raw_input('Press Enter to quit: ')
++ input('Press Enter to quit: ')
+ tb.stop()
+ tb.wait()
+
+diff --git cmake/Modules/CMakeParseArgumentsCopy.cmake cmake/Modules/CMakeParseArgumentsCopy.cmake
+index 7ce4c49..66016cb 100644
+--- cmake/Modules/CMakeParseArgumentsCopy.cmake
++++ cmake/Modules/CMakeParseArgumentsCopy.cmake
+@@ -58,7 +58,7 @@
+ # the new option.
+ # E.g. my_install(TARGETS foo DESTINATION OPTIONAL) would result in
+ # MY_INSTALL_DESTINATION set to "OPTIONAL", but MY_INSTALL_DESTINATION would
+-# be empty and MY_INSTALL_OPTIONAL would be set to TRUE therefor.
++# be empty and MY_INSTALL_OPTIONAL would be set to TRUE therefore.
+
+ #=============================================================================
+ # Copyright 2010 Alexander Neundorf <neundorf at kde.org>
+diff --git cmake/Modules/GrSwig.cmake cmake/Modules/GrSwig.cmake
+deleted file mode 100644
+index f907a51..0000000
+--- cmake/Modules/GrSwig.cmake
++++ /dev/null
+@@ -1,248 +0,0 @@
+-# Copyright 2010-2011 Free Software Foundation, Inc.
+-#
+-# This file is part of GNU Radio
+-#
+-# GNU Radio is free software; you can redistribute it and/or modify
+-# it under the terms of the GNU General Public License as published by
+-# the Free Software Foundation; either version 3, or (at your option)
+-# any later version.
+-#
+-# GNU Radio is distributed in the hope that it will be useful,
+-# but WITHOUT ANY WARRANTY; without even the implied warranty of
+-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+-# GNU General Public License for more details.
+-#
+-# You should have received a copy of the GNU General Public License
+-# along with GNU Radio; see the file COPYING. If not, write to
+-# the Free Software Foundation, Inc., 51 Franklin Street,
+-# Boston, MA 02110-1301, USA.
+-
+-if(DEFINED __INCLUDED_GR_SWIG_CMAKE)
+- return()
+-endif()
+-set(__INCLUDED_GR_SWIG_CMAKE TRUE)
+-
+-include(GrPython)
+-
+-########################################################################
+-# Builds a swig documentation file to be generated into python docstrings
+-# Usage: GR_SWIG_MAKE_DOCS(output_file input_path input_path....)
*** DIFF OUTPUT TRUNCATED AT 1000 LINES ***
More information about the svn-ports-all
mailing list