From f02ebe37031fc8f21f15a62dee2b81f111de15e8 Mon Sep 17 00:00:00 2001 From: Tom Rondeau <trondeau@vt.edu> Date: Thu, 4 Apr 2013 23:33:45 -0400 Subject: blocks: split blocks swig into 3 files to be swigged individually. Cuts down on memory footprint of swig. Using blocks_swig.py.in to pull them all in to one file afterwards. --- gr-blocks/swig/CMakeLists.txt | 44 +++++++++++++++++++++++++++++++++++-------- 1 file changed, 36 insertions(+), 8 deletions(-) (limited to 'gr-blocks/swig/CMakeLists.txt') 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" +) -- cgit v1.2.3