summaryrefslogtreecommitdiff
path: root/gr-howto-write-a-block-cmake/swig
diff options
context:
space:
mode:
authorJosh Blum2011-08-17 12:30:09 -0700
committerJosh Blum2011-08-17 12:30:09 -0700
commitfb2f45cdddc41d5aba177204aa419cea3a0aea49 (patch)
treee2d3195b9782e047518fe1ea9f848346b480cfd4 /gr-howto-write-a-block-cmake/swig
parente6ed4fa7bb0d253adbf0cf2ae4da7c301b3c971f (diff)
parent626018eb037808cdc32b5eb1907ae9d5f80d3e55 (diff)
downloadgnuradio-fb2f45cdddc41d5aba177204aa419cea3a0aea49.tar.gz
gnuradio-fb2f45cdddc41d5aba177204aa419cea3a0aea49.tar.bz2
gnuradio-fb2f45cdddc41d5aba177204aa419cea3a0aea49.zip
Merge branch 'next' into digital
Diffstat (limited to 'gr-howto-write-a-block-cmake/swig')
-rw-r--r--gr-howto-write-a-block-cmake/swig/CMakeLists.txt55
-rw-r--r--gr-howto-write-a-block-cmake/swig/howto_square2_ff.i9
-rw-r--r--gr-howto-write-a-block-cmake/swig/howto_square_ff.i16
-rw-r--r--gr-howto-write-a-block-cmake/swig/howto_swig.i21
4 files changed, 101 insertions, 0 deletions
diff --git a/gr-howto-write-a-block-cmake/swig/CMakeLists.txt b/gr-howto-write-a-block-cmake/swig/CMakeLists.txt
new file mode 100644
index 000000000..40f2b1051
--- /dev/null
+++ b/gr-howto-write-a-block-cmake/swig/CMakeLists.txt
@@ -0,0 +1,55 @@
+# Copyright 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.
+
+########################################################################
+# Include swig generation macros
+########################################################################
+FIND_PACKAGE(SWIG)
+FIND_PACKAGE(PythonLibs)
+IF(NOT SWIG_FOUND OR NOT PYTHONLIBS_FOUND)
+ RETURN()
+ENDIF()
+INCLUDE(GrSwig)
+
+########################################################################
+# Setup swig generation
+########################################################################
+FOREACH(incdir ${GNURADIO_CORE_INCLUDE_DIRS})
+ LIST(APPEND GR_SWIG_INCLUDE_DIRS ${incdir}/swig)
+ENDFOREACH(incdir)
+
+SET(GR_SWIG_LIBRARIES gnuradio-howto)
+
+GR_SWIG_MAKE(howto_swig howto_swig.i)
+
+########################################################################
+# Install the build swig module
+########################################################################
+GR_SWIG_INSTALL(TARGETS howto_swig DESTINATION ${GR_PYTHON_DIR}/howto)
+
+########################################################################
+# Install swig .i files for development
+########################################################################
+INSTALL(
+ FILES
+ howto_swig.i
+ howto_square_ff.i
+ howto_square2_ff.i
+ DESTINATION include/howto/swig
+)
diff --git a/gr-howto-write-a-block-cmake/swig/howto_square2_ff.i b/gr-howto-write-a-block-cmake/swig/howto_square2_ff.i
new file mode 100644
index 000000000..683a93d61
--- /dev/null
+++ b/gr-howto-write-a-block-cmake/swig/howto_square2_ff.i
@@ -0,0 +1,9 @@
+GR_SWIG_BLOCK_MAGIC(howto,square2_ff);
+
+howto_square2_ff_sptr howto_make_square2_ff ();
+
+class howto_square2_ff : public gr_sync_block
+{
+private:
+ howto_square2_ff ();
+};
diff --git a/gr-howto-write-a-block-cmake/swig/howto_square_ff.i b/gr-howto-write-a-block-cmake/swig/howto_square_ff.i
new file mode 100644
index 000000000..f8ae76986
--- /dev/null
+++ b/gr-howto-write-a-block-cmake/swig/howto_square_ff.i
@@ -0,0 +1,16 @@
+/*
+ * First arg is the package prefix.
+ * Second arg is the name of the class minus the prefix.
+ *
+ * This does some behind-the-scenes magic so we can
+ * access howto_square_ff from python as howto.square_ff
+ */
+GR_SWIG_BLOCK_MAGIC(howto,square_ff);
+
+howto_square_ff_sptr howto_make_square_ff ();
+
+class howto_square_ff : public gr_block
+{
+private:
+ howto_square_ff ();
+};
diff --git a/gr-howto-write-a-block-cmake/swig/howto_swig.i b/gr-howto-write-a-block-cmake/swig/howto_swig.i
new file mode 100644
index 000000000..d0bbcdc11
--- /dev/null
+++ b/gr-howto-write-a-block-cmake/swig/howto_swig.i
@@ -0,0 +1,21 @@
+/* -*- c++ -*- */
+
+%include "gnuradio.i" // the common stuff
+
+%{
+#include "howto_square_ff.h"
+#include "howto_square2_ff.h"
+%}
+
+%include "howto_square_ff.i"
+%include "howto_square2_ff.i"
+
+#if SWIGGUILE
+%scheme %{
+(load-extension-global "libguile-gnuradio-howto_swig" "scm_init_gnuradio_howto_swig_module")
+%}
+
+%goops %{
+(use-modules (gnuradio gnuradio_core_runtime))
+%}
+#endif