summaryrefslogtreecommitdiff
path: root/gr-blocks/swig/CMakeLists.txt
diff options
context:
space:
mode:
Diffstat (limited to 'gr-blocks/swig/CMakeLists.txt')
-rw-r--r--gr-blocks/swig/CMakeLists.txt44
1 files changed, 36 insertions, 8 deletions
diff --git a/gr-blocks/swig/CMakeLists.txt b/gr-blocks/swig/CMakeLists.txt
index 84ab5b660f..64fca9fe3c 100644
--- a/gr-blocks/swig/CMakeLists.txt
+++ b/gr-blocks/swig/CMakeLists.txt
@@ -31,23 +31,51 @@ set(GR_SWIG_INCLUDE_DIRS
${Boost_INCLUDE_DIRS}
)
-set(GR_SWIG_DOC_FILE ${CMAKE_CURRENT_BINARY_DIR}/blocks_swig_doc.i)
+configure_file(
+ ${CMAKE_CURRENT_SOURCE_DIR}/blocks_swig.py.in
+ ${CMAKE_CURRENT_BINARY_DIR}/blocks_swig.py
+@ONLY)
+
set(GR_SWIG_DOC_DIRS ${CMAKE_CURRENT_SOURCE_DIR}/../lib)
set(GR_SWIG_TARGET_DEPS blocks_generated_includes)
set(GR_SWIG_LIBRARIES gnuradio-blocks)
-GR_SWIG_MAKE(blocks_swig blocks_swig.i)
+# 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 'blocks_swigN.i' and add it to this list.
+#
+# Also add the line "from swig_blocksN import *" line to
+# blocks_swig.py.in.
+set(GR_SWIG_BLOCK_IFILES
+ blocks_swig0
+ blocks_swig1
+ blocks_swig2
+)
+
+foreach(swigfile ${GR_SWIG_BLOCK_IFILES})
+ set(GR_SWIG_DOC_FILE ${CMAKE_CURRENT_BINARY_DIR}/${swigfile}_doc.i)
+ GR_SWIG_MAKE(${swigfile} ${swigfile}.i)
-GR_SWIG_INSTALL(
- TARGETS blocks_swig
+ GR_SWIG_INSTALL(
+ TARGETS ${swigfile}
DESTINATION ${GR_PYTHON_DIR}/gnuradio/blocks
- COMPONENT "blocks_python"
-)
+ COMPONENT "blocks_python")
+
+ list(APPEND SWIGFILES ${swigfile}.i)
+ list(APPEND SWIGDOCFILES ${CMAKE_CURRENT_BINARY_DIR}/${swigfile}_doc.i)
+endforeach(swigfile)
install(
FILES
- blocks_swig.i
- ${CMAKE_CURRENT_BINARY_DIR}/blocks_swig_doc.i
+ ${SWIGFILES}
+ ${SWIGDOCFILES}
DESTINATION ${GR_INCLUDE_DIR}/gnuradio/swig
COMPONENT "blocks_swig"
)
+
+# Install the Python file that pulls in the swig built files.
+GR_PYTHON_INSTALL(
+ FILES ${CMAKE_CURRENT_BINARY_DIR}/blocks_swig.py
+ DESTINATION ${GR_PYTHON_DIR}/gnuradio/blocks
+ COMPONENT "blocks_python"
+)