summaryrefslogtreecommitdiff
path: root/gr-digital/swig/CMakeLists.txt
diff options
context:
space:
mode:
Diffstat (limited to 'gr-digital/swig/CMakeLists.txt')
-rw-r--r--gr-digital/swig/CMakeLists.txt87
1 files changed, 56 insertions, 31 deletions
diff --git a/gr-digital/swig/CMakeLists.txt b/gr-digital/swig/CMakeLists.txt
index 2f00dc14a3..fb13d3e402 100644
--- a/gr-digital/swig/CMakeLists.txt
+++ b/gr-digital/swig/CMakeLists.txt
@@ -1,4 +1,4 @@
-# Copyright 2011,2012 Free Software Foundation, Inc.
+# Copyright 2011-2016 Free Software Foundation, Inc.
#
# This file is part of GNU Radio
#
@@ -24,47 +24,72 @@ include(GrPython)
include(GrSwig)
set(GR_SWIG_INCLUDE_DIRS
- ${GR_DIGITAL_INCLUDE_DIRS}
- ${GR_BLOCKS_INCLUDE_DIRS}
- ${GR_ANALOG_INCLUDE_DIRS}
- ${GR_FFT_INCLUDE_DIRS}
- ${GR_FILTER_INCLUDE_DIRS}
- ${GNURADIO_RUNTIME_SWIG_INCLUDE_DIRS}
- ${VOLK_INCLUDE_DIRS}
- ${Boost_INCLUDE_DIRS}
+ ${GR_DIGITAL_INCLUDE_DIRS}
+ ${GR_BLOCKS_INCLUDE_DIRS}
+ ${GR_ANALOG_INCLUDE_DIRS}
+ ${GR_FFT_INCLUDE_DIRS}
+ ${GR_FILTER_INCLUDE_DIRS}
+ ${GNURADIO_RUNTIME_SWIG_INCLUDE_DIRS}
+ ${VOLK_INCLUDE_DIRS}
+ ${Boost_INCLUDE_DIRS}
)
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 digital_generated_includes)
-set(GR_SWIG_DOC_FILE ${CMAKE_CURRENT_BINARY_DIR}/digital_swig_doc.i)
-set(GR_SWIG_DOC_DIRS
+configure_file(
+ ${CMAKE_CURRENT_SOURCE_DIR}/digital_swig.py.in
+ ${CMAKE_CURRENT_BINARY_DIR}/digital_swig.py
+@ONLY)
+
+# 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 'digital_swigN.i' and add it to this list.
+#
+# Also add the line "from swig_blocksN import *" line to
+# digital_swig.py.in.
+set(GR_SWIG_BLOCK_IFILES
+ digital_swig0
+ digital_swig1
+ digital_swig2
+)
+
+foreach(swigfile ${GR_SWIG_BLOCK_IFILES})
+ set(GR_SWIG_DOC_FILE ${CMAKE_CURRENT_BINARY_DIR}/${swigfile}_doc.i)
+ set(GR_SWIG_DOC_DIRS
${CMAKE_CURRENT_SOURCE_DIR}/../include/gnuradio/digital
${CMAKE_CURRENT_BINARY_DIR}/../include/gnuradio/digital
-)
-set(GR_SWIG_DOCS_TARGET_DEPS runtime_swig_swig_doc)
+ )
+ set(GR_SWIG_DOCS_TARGET_DEPS runtime_swig_swig_doc)
+ set(GR_SWIG_TARGET_DEPS digital_generated_includes)
+ set(GR_SWIG_LIBRARIES gnuradio-digital
+ gnuradio-filter gnuradio-analog gnuradio-blocks)
+ GR_SWIG_MAKE(${swigfile} ${swigfile}.i)
-set(GR_SWIG_LIBRARIES gnuradio-digital
- gnuradio-filter gnuradio-analog gnuradio-blocks)
+ GR_SWIG_INSTALL(
+ TARGETS ${swigfile}
+ DESTINATION ${GR_PYTHON_DIR}/gnuradio/digital
+ COMPONENT "digital_python")
-GR_SWIG_MAKE(digital_swig digital_swig.i)
+ list(APPEND SWIGFILES ${swigfile}.i)
+ list(APPEND SWIGDOCFILES ${CMAKE_CURRENT_BINARY_DIR}/${swigfile}_doc.i)
+endforeach(swigfile)
-GR_SWIG_INSTALL(
- TARGETS digital_swig
- DESTINATION ${GR_PYTHON_DIR}/gnuradio/digital
- COMPONENT "digital_python"
+install(
+ FILES
+ ${SWIGFILES}
+ constellation.i
+ ofdm_equalizer.i
+ packet_header.i
+ ${SWIGDOCFILES}
+ DESTINATION ${GR_INCLUDE_DIR}/gnuradio/swig
+ COMPONENT "digital_swig"
)
-install(
- FILES
- digital_swig.i
- constellation.i
- ofdm_equalizer.i
- packet_header.i
- ${CMAKE_CURRENT_BINARY_DIR}/digital_swig_doc.i
- DESTINATION ${GR_INCLUDE_DIR}/gnuradio/swig
- COMPONENT "digital_swig"
+# Install the Python file that pulls in the swig built files.
+GR_PYTHON_INSTALL(
+ FILES ${CMAKE_CURRENT_BINARY_DIR}/digital_swig.py
+ DESTINATION ${GR_PYTHON_DIR}/gnuradio/digital
+ COMPONENT "digital_python"
)