commit-gnuradio
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Commit-gnuradio] [gnuradio] 04/06: trellis: split swig into 2 parts (a


From: git
Subject: [Commit-gnuradio] [gnuradio] 04/06: trellis: split swig into 2 parts (a la blocks/swig) to allow for building on "low memory" systems (e.g., RPi).
Date: Fri, 28 Oct 2016 18:55:46 +0000 (UTC)

This is an automated email from the git hooks/post-receive script.

jcorgan pushed a commit to branch master
in repository gnuradio.

commit dee09a218218797998927b2688a7d053a53d1893
Author: Michael Dickens <address@hidden>
Date:   Wed Oct 26 14:19:15 2016 -0400

    trellis: split swig into 2 parts (a la blocks/swig) to allow for building 
on "low memory" systems (e.g., RPi).
---
 gr-trellis/swig/CMakeLists.txt                     |  64 +++++++++----
 gr-trellis/swig/trellis_swig.py.in                 |  23 +++++
 gr-trellis/swig/trellis_swig0.i                    | 103 +--------------------
 .../swig/{trellis_swig0.i => trellis_swig1.i}      |  83 +----------------
 4 files changed, 72 insertions(+), 201 deletions(-)

diff --git a/gr-trellis/swig/CMakeLists.txt b/gr-trellis/swig/CMakeLists.txt
index d03d099..a493c67 100644
--- a/gr-trellis/swig/CMakeLists.txt
+++ b/gr-trellis/swig/CMakeLists.txt
@@ -1,4 +1,4 @@
-# Copyright 2012 Free Software Foundation, Inc.
+# Copyright 2012,2016 Free Software Foundation, Inc.
 #
 # This file is part of GNU Radio
 #
@@ -24,10 +24,10 @@ include(GrPython)
 include(GrSwig)
 
 set(GR_SWIG_INCLUDE_DIRS
-    ${GR_TRELLIS_INCLUDE_DIRS}
-    ${GR_DIGITAL_INCLUDE_DIRS}
-    ${GNURADIO_RUNTIME_SWIG_INCLUDE_DIRS}
-    ${Boost_INCLUDE_DIRS}
+  ${GR_TRELLIS_INCLUDE_DIRS}
+  ${GR_DIGITAL_INCLUDE_DIRS}
+  ${GNURADIO_RUNTIME_SWIG_INCLUDE_DIRS}
+  ${Boost_INCLUDE_DIRS}
 )
 
 set(GR_SWIG_LIBRARIES gnuradio-trellis gnuradio-digital)
@@ -36,27 +36,53 @@ if(ENABLE_GR_CTRLPORT)
   list(APPEND GR_SWIG_FLAGS "-DGR_CTRLPORT")
 endif(ENABLE_GR_CTRLPORT)
 
-# Setup swig docs to depend on includes and pull in from build directory
-set(GR_SWIG_TARGET_DEPS trellis_generated_includes)
-set(GR_SWIG_DOC_FILE ${CMAKE_CURRENT_BINARY_DIR}/trellis_swig_doc.i)
-set(GR_SWIG_DOC_DIRS
-    ${CMAKE_CURRENT_SOURCE_DIR}/../include/gnuradio/trellis
-    ${CMAKE_CURRENT_BINARY_DIR}/../include/gnuradio/trellis
+configure_file(
+  ${CMAKE_CURRENT_SOURCE_DIR}/trellis_swig.py.in
+  ${CMAKE_CURRENT_BINARY_DIR}/trellis_swig.py
address@hidden)
+
+# We split up the swig files into multiple sections to minimize the
+# memory overhead. If a .i file grows too large, create a new file
+# named 'trellis_swigN.i' and add it to this list.
+#
+# Also add the line "from swig_trellisN import *" line to
+# trellis_swig.py.in.
+set(GR_SWIG_TRELLIS_IFILES
+  trellis_swig0
+  trellis_swig1
 )
-set(GR_SWIG_DOCS_TARGET_DEPS runtime_swig_swig_doc)
 
-GR_SWIG_MAKE(trellis_swig trellis_swig.i)
+foreach(swigfile ${GR_SWIG_TRELLIS_IFILES})
+  set(GR_SWIG_DOC_FILE ${CMAKE_CURRENT_BINARY_DIR}/${swigfile}_doc.i)
+  set(GR_SWIG_DOC_DIRS
+    ${CMAKE_CURRENT_SOURCE_DIR}/../include/gnuradio/trellis
+    ${CMAKE_CURRENT_BINARY_DIR}/../include/gnuradio/trellis
+  )
+  set(GR_SWIG_DOCS_TARGET_DEPS runtime_swig_swig_doc)
+  set(GR_SWIG_TARGET_DEPS trellis_generated_includes)
+  set(GR_SWIG_LIBRARIES gnuradio-trellis gnuradio-digital)
+  GR_SWIG_MAKE(${swigfile} ${swigfile}.i)
 
-GR_SWIG_INSTALL(
-    TARGETS trellis_swig
+  GR_SWIG_INSTALL(
+    TARGETS ${swigfile}
     DESTINATION ${GR_PYTHON_DIR}/gnuradio/trellis
-    COMPONENT "trellis_python"
-)
+    COMPONENT "trellis_python")
+
+  list(APPEND SWIGFILES ${swigfile}.i)
+  list(APPEND SWIGDOCFILES ${CMAKE_CURRENT_BINARY_DIR}/${swigfile}_doc.i)
+endforeach(swigfile)
 
 install(
     FILES
-    trellis_swig.i
-    ${CMAKE_CURRENT_BINARY_DIR}/trellis_swig_doc.i
+    ${SWIGFILES}
+    ${SWIGDOCFILES}
     DESTINATION ${GR_INCLUDE_DIR}/gnuradio/swig
     COMPONENT "trellis_swig"
 )
+
+# Install the Python file that pulls in the swig built files.
+GR_PYTHON_INSTALL(
+    FILES ${CMAKE_CURRENT_BINARY_DIR}/trellis_swig.py
+    DESTINATION ${GR_PYTHON_DIR}/gnuradio/trellis
+    COMPONENT "trellis_python"
+)
diff --git a/gr-trellis/swig/trellis_swig.py.in 
b/gr-trellis/swig/trellis_swig.py.in
new file mode 100644
index 0000000..fac5f63
--- /dev/null
+++ b/gr-trellis/swig/trellis_swig.py.in
@@ -0,0 +1,23 @@
+#
+# Copyright 2016 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.
+#
+
+from trellis_swig0 import *
+from trellis_swig1 import *
diff --git a/gr-trellis/swig/trellis_swig0.i b/gr-trellis/swig/trellis_swig0.i
index 8c71a5e..9f309c5 100644
--- a/gr-trellis/swig/trellis_swig0.i
+++ b/gr-trellis/swig/trellis_swig0.i
@@ -1,5 +1,5 @@
 /*
- * Copyright 2012 Free Software Foundation, Inc.
+ * Copyright 2012,2016 Free Software Foundation, Inc.
  *
  * This file is part of GNU Radio
  *
@@ -25,7 +25,7 @@
 %include "gnuradio.i"
 
 //load generated python docstrings
-%include "trellis_swig_doc.i"
+%include "trellis_swig0_doc.i"
 
 %include "gnuradio/digital/metric_type.h"
 %include "gnuradio/digital/constellation.h"
@@ -60,39 +60,6 @@
 #include "gnuradio/trellis/metrics_i.h"
 #include "gnuradio/trellis/metrics_f.h"
 #include "gnuradio/trellis/metrics_c.h"
-#include "gnuradio/trellis/pccc_decoder_b.h"
-#include "gnuradio/trellis/pccc_decoder_s.h"
-#include "gnuradio/trellis/pccc_decoder_i.h"
-#include "gnuradio/trellis/pccc_decoder_combined_fb.h"
-#include "gnuradio/trellis/pccc_decoder_combined_fs.h"
-#include "gnuradio/trellis/pccc_decoder_combined_fi.h"
-#include "gnuradio/trellis/pccc_decoder_combined_cb.h"
-#include "gnuradio/trellis/pccc_decoder_combined_cs.h"
-#include "gnuradio/trellis/pccc_decoder_combined_ci.h"
-#include "gnuradio/trellis/viterbi_b.h"
-#include "gnuradio/trellis/viterbi_s.h"
-#include "gnuradio/trellis/viterbi_i.h"
-#include "gnuradio/trellis/viterbi_combined_sb.h"
-#include "gnuradio/trellis/viterbi_combined_ss.h"
-#include "gnuradio/trellis/viterbi_combined_si.h"
-#include "gnuradio/trellis/viterbi_combined_ib.h"
-#include "gnuradio/trellis/viterbi_combined_is.h"
-#include "gnuradio/trellis/viterbi_combined_ii.h"
-#include "gnuradio/trellis/viterbi_combined_fb.h"
-#include "gnuradio/trellis/viterbi_combined_fs.h"
-#include "gnuradio/trellis/viterbi_combined_fi.h"
-#include "gnuradio/trellis/viterbi_combined_cb.h"
-#include "gnuradio/trellis/viterbi_combined_cs.h"
-#include "gnuradio/trellis/viterbi_combined_ci.h"
-#include "gnuradio/trellis/sccc_decoder_b.h"
-#include "gnuradio/trellis/sccc_decoder_s.h"
-#include "gnuradio/trellis/sccc_decoder_i.h"
-#include "gnuradio/trellis/sccc_decoder_combined_fb.h"
-#include "gnuradio/trellis/sccc_decoder_combined_fs.h"
-#include "gnuradio/trellis/sccc_decoder_combined_fi.h"
-#include "gnuradio/trellis/sccc_decoder_combined_cb.h"
-#include "gnuradio/trellis/sccc_decoder_combined_cs.h"
-#include "gnuradio/trellis/sccc_decoder_combined_ci.h"
 %}
 
 %include "gnuradio/trellis/constellation_metrics_cf.h"
@@ -121,39 +88,6 @@
 %include "gnuradio/trellis/metrics_i.h"
 %include "gnuradio/trellis/metrics_f.h"
 %include "gnuradio/trellis/metrics_c.h"
-%include "gnuradio/trellis/pccc_decoder_b.h"
-%include "gnuradio/trellis/pccc_decoder_s.h"
-%include "gnuradio/trellis/pccc_decoder_i.h"
-%include "gnuradio/trellis/pccc_decoder_combined_fb.h"
-%include "gnuradio/trellis/pccc_decoder_combined_fs.h"
-%include "gnuradio/trellis/pccc_decoder_combined_fi.h"
-%include "gnuradio/trellis/pccc_decoder_combined_cb.h"
-%include "gnuradio/trellis/pccc_decoder_combined_cs.h"
-%include "gnuradio/trellis/pccc_decoder_combined_ci.h"
-%include "gnuradio/trellis/viterbi_b.h"
-%include "gnuradio/trellis/viterbi_s.h"
-%include "gnuradio/trellis/viterbi_i.h"
-%include "gnuradio/trellis/viterbi_combined_sb.h"
-%include "gnuradio/trellis/viterbi_combined_ss.h"
-%include "gnuradio/trellis/viterbi_combined_si.h"
-%include "gnuradio/trellis/viterbi_combined_ib.h"
-%include "gnuradio/trellis/viterbi_combined_is.h"
-%include "gnuradio/trellis/viterbi_combined_ii.h"
-%include "gnuradio/trellis/viterbi_combined_fb.h"
-%include "gnuradio/trellis/viterbi_combined_fs.h"
-%include "gnuradio/trellis/viterbi_combined_fi.h"
-%include "gnuradio/trellis/viterbi_combined_cb.h"
-%include "gnuradio/trellis/viterbi_combined_cs.h"
-%include "gnuradio/trellis/viterbi_combined_ci.h"
-%include "gnuradio/trellis/sccc_decoder_b.h"
-%include "gnuradio/trellis/sccc_decoder_s.h"
-%include "gnuradio/trellis/sccc_decoder_i.h"
-%include "gnuradio/trellis/sccc_decoder_combined_fb.h"
-%include "gnuradio/trellis/sccc_decoder_combined_fs.h"
-%include "gnuradio/trellis/sccc_decoder_combined_fi.h"
-%include "gnuradio/trellis/sccc_decoder_combined_cb.h"
-%include "gnuradio/trellis/sccc_decoder_combined_cs.h"
-%include "gnuradio/trellis/sccc_decoder_combined_ci.h"
 
 GR_SWIG_BLOCK_MAGIC2(trellis, constellation_metrics_cf);
 GR_SWIG_BLOCK_MAGIC2(trellis, permutation);
@@ -181,36 +115,3 @@ GR_SWIG_BLOCK_MAGIC2(trellis, metrics_s);
 GR_SWIG_BLOCK_MAGIC2(trellis, metrics_i);
 GR_SWIG_BLOCK_MAGIC2(trellis, metrics_f);
 GR_SWIG_BLOCK_MAGIC2(trellis, metrics_c);
-GR_SWIG_BLOCK_MAGIC2(trellis, pccc_decoder_b);
-GR_SWIG_BLOCK_MAGIC2(trellis, pccc_decoder_s);
-GR_SWIG_BLOCK_MAGIC2(trellis, pccc_decoder_i);
-GR_SWIG_BLOCK_MAGIC2(trellis, pccc_decoder_combined_fb);
-GR_SWIG_BLOCK_MAGIC2(trellis, pccc_decoder_combined_fs);
-GR_SWIG_BLOCK_MAGIC2(trellis, pccc_decoder_combined_fi);
-GR_SWIG_BLOCK_MAGIC2(trellis, pccc_decoder_combined_cb);
-GR_SWIG_BLOCK_MAGIC2(trellis, pccc_decoder_combined_cs);
-GR_SWIG_BLOCK_MAGIC2(trellis, pccc_decoder_combined_ci);
-GR_SWIG_BLOCK_MAGIC2(trellis, viterbi_b);
-GR_SWIG_BLOCK_MAGIC2(trellis, viterbi_s);
-GR_SWIG_BLOCK_MAGIC2(trellis, viterbi_i);
-GR_SWIG_BLOCK_MAGIC2(trellis, viterbi_combined_sb);
-GR_SWIG_BLOCK_MAGIC2(trellis, viterbi_combined_ss);
-GR_SWIG_BLOCK_MAGIC2(trellis, viterbi_combined_si);
-GR_SWIG_BLOCK_MAGIC2(trellis, viterbi_combined_ib);
-GR_SWIG_BLOCK_MAGIC2(trellis, viterbi_combined_is);
-GR_SWIG_BLOCK_MAGIC2(trellis, viterbi_combined_ii);
-GR_SWIG_BLOCK_MAGIC2(trellis, viterbi_combined_fb);
-GR_SWIG_BLOCK_MAGIC2(trellis, viterbi_combined_fs);
-GR_SWIG_BLOCK_MAGIC2(trellis, viterbi_combined_fi);
-GR_SWIG_BLOCK_MAGIC2(trellis, viterbi_combined_cb);
-GR_SWIG_BLOCK_MAGIC2(trellis, viterbi_combined_cs);
-GR_SWIG_BLOCK_MAGIC2(trellis, viterbi_combined_ci);
-GR_SWIG_BLOCK_MAGIC2(trellis, sccc_decoder_b);
-GR_SWIG_BLOCK_MAGIC2(trellis, sccc_decoder_s);
-GR_SWIG_BLOCK_MAGIC2(trellis, sccc_decoder_i);
-GR_SWIG_BLOCK_MAGIC2(trellis, sccc_decoder_combined_fb);
-GR_SWIG_BLOCK_MAGIC2(trellis, sccc_decoder_combined_fs);
-GR_SWIG_BLOCK_MAGIC2(trellis, sccc_decoder_combined_fi);
-GR_SWIG_BLOCK_MAGIC2(trellis, sccc_decoder_combined_cb);
-GR_SWIG_BLOCK_MAGIC2(trellis, sccc_decoder_combined_cs);
-GR_SWIG_BLOCK_MAGIC2(trellis, sccc_decoder_combined_ci);
diff --git a/gr-trellis/swig/trellis_swig0.i b/gr-trellis/swig/trellis_swig1.i
similarity index 62%
copy from gr-trellis/swig/trellis_swig0.i
copy to gr-trellis/swig/trellis_swig1.i
index 8c71a5e..6481aee 100644
--- a/gr-trellis/swig/trellis_swig0.i
+++ b/gr-trellis/swig/trellis_swig1.i
@@ -1,5 +1,5 @@
 /*
- * Copyright 2012 Free Software Foundation, Inc.
+ * Copyright 2016 Free Software Foundation, Inc.
  *
  * This file is part of GNU Radio
  *
@@ -25,41 +25,14 @@
 %include "gnuradio.i"
 
 //load generated python docstrings
-%include "trellis_swig_doc.i"
+%include "trellis_swig1_doc.i"
 
 %include "gnuradio/digital/metric_type.h"
-%include "gnuradio/digital/constellation.h"
 %include "gnuradio/trellis/siso_type.h"
 %include "gnuradio/trellis/fsm.h"
 %include "gnuradio/trellis/interleaver.h"
 
 %{
-#include "gnuradio/trellis/constellation_metrics_cf.h"
-#include "gnuradio/trellis/permutation.h"
-#include "gnuradio/trellis/siso_combined_f.h"
-#include "gnuradio/trellis/siso_f.h"
-#include "gnuradio/trellis/encoder_bb.h"
-#include "gnuradio/trellis/encoder_bs.h"
-#include "gnuradio/trellis/encoder_bi.h"
-#include "gnuradio/trellis/encoder_ss.h"
-#include "gnuradio/trellis/encoder_si.h"
-#include "gnuradio/trellis/encoder_ii.h"
-#include "gnuradio/trellis/sccc_encoder_bb.h"
-#include "gnuradio/trellis/sccc_encoder_bs.h"
-#include "gnuradio/trellis/sccc_encoder_bi.h"
-#include "gnuradio/trellis/sccc_encoder_ss.h"
-#include "gnuradio/trellis/sccc_encoder_si.h"
-#include "gnuradio/trellis/sccc_encoder_ii.h"
-#include "gnuradio/trellis/pccc_encoder_bb.h"
-#include "gnuradio/trellis/pccc_encoder_bs.h"
-#include "gnuradio/trellis/pccc_encoder_bi.h"
-#include "gnuradio/trellis/pccc_encoder_ss.h"
-#include "gnuradio/trellis/pccc_encoder_si.h"
-#include "gnuradio/trellis/pccc_encoder_ii.h"
-#include "gnuradio/trellis/metrics_s.h"
-#include "gnuradio/trellis/metrics_i.h"
-#include "gnuradio/trellis/metrics_f.h"
-#include "gnuradio/trellis/metrics_c.h"
 #include "gnuradio/trellis/pccc_decoder_b.h"
 #include "gnuradio/trellis/pccc_decoder_s.h"
 #include "gnuradio/trellis/pccc_decoder_i.h"
@@ -95,32 +68,6 @@
 #include "gnuradio/trellis/sccc_decoder_combined_ci.h"
 %}
 
-%include "gnuradio/trellis/constellation_metrics_cf.h"
-%include "gnuradio/trellis/permutation.h"
-%include "gnuradio/trellis/siso_combined_f.h"
-%include "gnuradio/trellis/siso_f.h"
-%include "gnuradio/trellis/encoder_bb.h"
-%include "gnuradio/trellis/encoder_bs.h"
-%include "gnuradio/trellis/encoder_bi.h"
-%include "gnuradio/trellis/encoder_ss.h"
-%include "gnuradio/trellis/encoder_si.h"
-%include "gnuradio/trellis/encoder_ii.h"
-%include "gnuradio/trellis/sccc_encoder_bb.h"
-%include "gnuradio/trellis/sccc_encoder_bs.h"
-%include "gnuradio/trellis/sccc_encoder_bi.h"
-%include "gnuradio/trellis/sccc_encoder_ss.h"
-%include "gnuradio/trellis/sccc_encoder_si.h"
-%include "gnuradio/trellis/sccc_encoder_ii.h"
-%include "gnuradio/trellis/pccc_encoder_bb.h"
-%include "gnuradio/trellis/pccc_encoder_bs.h"
-%include "gnuradio/trellis/pccc_encoder_bi.h"
-%include "gnuradio/trellis/pccc_encoder_ss.h"
-%include "gnuradio/trellis/pccc_encoder_si.h"
-%include "gnuradio/trellis/pccc_encoder_ii.h"
-%include "gnuradio/trellis/metrics_s.h"
-%include "gnuradio/trellis/metrics_i.h"
-%include "gnuradio/trellis/metrics_f.h"
-%include "gnuradio/trellis/metrics_c.h"
 %include "gnuradio/trellis/pccc_decoder_b.h"
 %include "gnuradio/trellis/pccc_decoder_s.h"
 %include "gnuradio/trellis/pccc_decoder_i.h"
@@ -155,32 +102,6 @@
 %include "gnuradio/trellis/sccc_decoder_combined_cs.h"
 %include "gnuradio/trellis/sccc_decoder_combined_ci.h"
 
-GR_SWIG_BLOCK_MAGIC2(trellis, constellation_metrics_cf);
-GR_SWIG_BLOCK_MAGIC2(trellis, permutation);
-GR_SWIG_BLOCK_MAGIC2(trellis, siso_combined_f);
-GR_SWIG_BLOCK_MAGIC2(trellis, siso_f);
-GR_SWIG_BLOCK_MAGIC2(trellis, encoder_bb);
-GR_SWIG_BLOCK_MAGIC2(trellis, encoder_bs);
-GR_SWIG_BLOCK_MAGIC2(trellis, encoder_bi);
-GR_SWIG_BLOCK_MAGIC2(trellis, encoder_ss);
-GR_SWIG_BLOCK_MAGIC2(trellis, encoder_si);
-GR_SWIG_BLOCK_MAGIC2(trellis, encoder_ii);
-GR_SWIG_BLOCK_MAGIC2(trellis, sccc_encoder_bb);
-GR_SWIG_BLOCK_MAGIC2(trellis, sccc_encoder_bs);
-GR_SWIG_BLOCK_MAGIC2(trellis, sccc_encoder_bi);
-GR_SWIG_BLOCK_MAGIC2(trellis, sccc_encoder_ss);
-GR_SWIG_BLOCK_MAGIC2(trellis, sccc_encoder_si);
-GR_SWIG_BLOCK_MAGIC2(trellis, sccc_encoder_ii);
-GR_SWIG_BLOCK_MAGIC2(trellis, pccc_encoder_bb);
-GR_SWIG_BLOCK_MAGIC2(trellis, pccc_encoder_bs);
-GR_SWIG_BLOCK_MAGIC2(trellis, pccc_encoder_bi);
-GR_SWIG_BLOCK_MAGIC2(trellis, pccc_encoder_ss);
-GR_SWIG_BLOCK_MAGIC2(trellis, pccc_encoder_si);
-GR_SWIG_BLOCK_MAGIC2(trellis, pccc_encoder_ii);
-GR_SWIG_BLOCK_MAGIC2(trellis, metrics_s);
-GR_SWIG_BLOCK_MAGIC2(trellis, metrics_i);
-GR_SWIG_BLOCK_MAGIC2(trellis, metrics_f);
-GR_SWIG_BLOCK_MAGIC2(trellis, metrics_c);
 GR_SWIG_BLOCK_MAGIC2(trellis, pccc_decoder_b);
 GR_SWIG_BLOCK_MAGIC2(trellis, pccc_decoder_s);
 GR_SWIG_BLOCK_MAGIC2(trellis, pccc_decoder_i);



reply via email to

[Prev in Thread] Current Thread [Next in Thread]