summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--cmake/Modules/GrSwig.cmake75
-rw-r--r--cmake/Modules/GrSwigDocs.cmake78
-rw-r--r--docs/doxygen/swig_doc.py10
-rw-r--r--gnuradio-core/CMakeLists.txt1
-rw-r--r--gnuradio-core/src/lib/swig/CMakeLists.txt40
-rw-r--r--gnuradio-core/src/lib/swig/gnuradio_core_filter.i2
-rw-r--r--gnuradio-core/src/lib/swig/gnuradio_core_general.i2
-rw-r--r--gnuradio-core/src/lib/swig/gnuradio_core_gengen.i2
-rw-r--r--gnuradio-core/src/lib/swig/gnuradio_core_hier.i2
-rw-r--r--gnuradio-core/src/lib/swig/gnuradio_core_io.i2
-rw-r--r--gnuradio-core/src/lib/swig/gnuradio_core_runtime.i2
-rw-r--r--gr-digital/swig/CMakeLists.txt4
-rw-r--r--gr-digital/swig/digital_swig.i3
13 files changed, 116 insertions, 107 deletions
diff --git a/cmake/Modules/GrSwig.cmake b/cmake/Modules/GrSwig.cmake
index 51d9203dd..47e18085b 100644
--- a/cmake/Modules/GrSwig.cmake
+++ b/cmake/Modules/GrSwig.cmake
@@ -25,6 +25,71 @@ set(__INCLUDED_GR_SWIG_CMAKE TRUE)
include(GrPython)
########################################################################
+# Builds a swig documentation file to be generated into python docstrings
+# Usage: GR_SWIG_MAKE_DOCS(output_file input_path input_path....)
+#
+# Set the following variable to specify extra dependent targets:
+# - GR_SWIG_DOCS_SOURCE_DEPS
+# - GR_SWIG_DOCS_TARGET_DEPS
+########################################################################
+function(GR_SWIG_MAKE_DOCS output_file)
+ find_package(Doxygen)
+ if(DOXYGEN_FOUND)
+
+ #setup the input files variable list, quote formated
+ set(input_files)
+ unset(INPUT_PATHS)
+ foreach(input_path ${ARGN})
+ if (IS_DIRECTORY ${input_path}) #when input path is a directory
+ file(GLOB input_path_h_files ${input_path}/*.h)
+ else() #otherwise its just a file, no glob
+ set(input_path_h_files ${input_path})
+ endif()
+ list(APPEND input_files ${input_path_h_files})
+ set(INPUT_PATHS "${INPUT_PATHS} \"${input_path}\"")
+ endforeach(input_path)
+
+ #determine the output directory
+ get_filename_component(name ${output_file} NAME_WE)
+ get_filename_component(OUTPUT_DIRECTORY ${output_file} PATH)
+ set(OUTPUT_DIRECTORY ${OUTPUT_DIRECTORY}/${name}_swig_docs)
+ make_directory(${OUTPUT_DIRECTORY})
+
+ #generate the Doxyfile used by doxygen
+ configure_file(
+ ${CMAKE_SOURCE_DIR}/docs/doxygen/Doxyfile.swig_doc.in
+ ${OUTPUT_DIRECTORY}/Doxyfile
+ @ONLY)
+
+ #Create a dummy custom command that depends on other targets
+ include(GrMiscUtils)
+ GR_GEN_TARGET_DEPS(_${name}_tag tag_deps ${GR_SWIG_DOCS_TARGET_DEPS})
+
+ #call doxygen on the Doxyfile + input headers
+ add_custom_command(
+ OUTPUT ${OUTPUT_DIRECTORY}/xml/index.xml
+ DEPENDS ${input_files} ${GR_SWIG_DOCS_SOURCE_DEPS} ${tag_deps}
+ COMMAND ${DOXYGEN_EXECUTABLE} ${OUTPUT_DIRECTORY}/Doxyfile
+ COMMENT "Generating doxygen xml for ${name} docs"
+ )
+
+ #call the swig_doc script on the xml files
+ add_custom_command(
+ OUTPUT ${output_file}
+ DEPENDS ${input_files} ${OUTPUT_DIRECTORY}/xml/index.xml
+ COMMAND ${PYTHON_EXECUTABLE} ${PYTHON_DASH_B}
+ ${CMAKE_SOURCE_DIR}/docs/doxygen/swig_doc.py
+ ${OUTPUT_DIRECTORY}/xml
+ ${output_file}
+ WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/docs/doxygen
+ )
+
+ else(DOXYGEN_FOUND)
+ file(WRITE ${output_file} "\n") #no doxygen -> empty file
+ endif(DOXYGEN_FOUND)
+endfunction(GR_SWIG_MAKE_DOCS)
+
+########################################################################
# Build a swig target for the common gnuradio use case. Usage:
# GR_SWIG_MAKE(target ifile ifile ifile...)
#
@@ -34,10 +99,20 @@ include(GrPython)
# - GR_SWIG_LIBRARIES
# - GR_SWIG_SOURCE_DEPS
# - GR_SWIG_TARGET_DEPS
+# - GR_SWIG_DOC_FILE
+# - GR_SWIG_DOC_DIRS
########################################################################
macro(GR_SWIG_MAKE name)
set(ifiles ${ARGN})
+ #do swig doc generation if specified
+ if (GR_SWIG_DOC_FILE)
+ set(GR_SWIG_DOCS_SOURCE_DEPS ${GR_SWIG_SOURCE_DEPS})
+ set(GR_SWIG_DOCS_TAREGT_DEPS ${GR_SWIG_TARGET_DEPS})
+ GR_SWIG_MAKE_DOCS(${GR_SWIG_DOC_FILE} ${GR_SWIG_DOC_DIRS})
+ list(APPEND GR_SWIG_SOURCE_DEPS ${GR_SWIG_DOC_FILE})
+ endif()
+
#append additional include directories
find_package(PythonLibs)
list(APPEND GR_SWIG_INCLUDE_DIRS ${PYTHON_INCLUDE_PATH}) #deprecated name (now dirs)
diff --git a/cmake/Modules/GrSwigDocs.cmake b/cmake/Modules/GrSwigDocs.cmake
deleted file mode 100644
index 223fcf274..000000000
--- a/cmake/Modules/GrSwigDocs.cmake
+++ /dev/null
@@ -1,78 +0,0 @@
-# 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.
-
-if(DEFINED __INCLUDED_GR_SWIG_DOCS_CMAKE)
- return()
-endif()
-set(__INCLUDED_GR_SWIG_DOCS_CMAKE TRUE)
-
-include(GrPython)
-
-########################################################################
-# Builds a swig documentation file to be generated into python docstrings
-# Usage: GR_SWIG_MAKE_DOCS(output_file input_path input_path....)
-#
-# Set the following variable to specify extra dependent targets:
-# - GR_SWIG_DOCS_EXTRA_DEPS
-########################################################################
-function(GR_SWIG_MAKE_DOCS output_file)
- find_package(Doxygen)
- if(DOXYGEN_FOUND)
-
- #setup the input files variable list, quote formated
- set(input_files ${ARGN})
- unset(INPUT_PATHS)
- foreach(input_path ${ARGN})
- set(INPUT_PATHS "${INPUT_PATHS} \"${input_path}\"")
- endforeach(input_path)
-
- #determine the output directory
- get_filename_component(OUTPUT_DIRECTORY ${output_file} PATH)
- set(OUTPUT_DIRECTORY ${OUTPUT_DIRECTORY}/swig_docs)
- make_directory(${OUTPUT_DIRECTORY})
-
- #generate the Doxyfile used by doxygen
- configure_file(
- ${CMAKE_SOURCE_DIR}/docs/doxygen/Doxyfile.swig_doc.in
- ${OUTPUT_DIRECTORY}/Doxyfile
- @ONLY)
-
- #call doxygen on the Doxyfile + input headers
- add_custom_command(
- OUTPUT ${OUTPUT_DIRECTORY}/xml/index.xml
- DEPENDS ${input_files} ${GR_SWIG_DOCS_EXTRA_DEPS}
- COMMAND ${DOXYGEN_EXECUTABLE} ${OUTPUT_DIRECTORY}/Doxyfile
- COMMENT "Generating doxygen xml for swig docs"
- )
-
- #call the swig_doc script on the xml files
- add_custom_command(
- OUTPUT ${output_file}
- DEPENDS ${input_files} ${OUTPUT_DIRECTORY}/xml/index.xml
- COMMAND ${PYTHON_EXECUTABLE} ${PYTHON_DASH_B}
- ${CMAKE_SOURCE_DIR}/docs/doxygen/swig_doc.py
- ${OUTPUT_DIRECTORY}/xml
- ${output_file}
- WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/docs/doxygen
- )
-
- else(DOXYGEN_FOUND)
- file(WRITE ${output_file} "\n") #no doxygen -> empty file
- endif(DOXYGEN_FOUND)
-endfunction(GR_SWIG_MAKE_DOCS)
diff --git a/docs/doxygen/swig_doc.py b/docs/doxygen/swig_doc.py
index 4a7eb52d1..5034099e3 100644
--- a/docs/doxygen/swig_doc.py
+++ b/docs/doxygen/swig_doc.py
@@ -241,12 +241,12 @@ if __name__ == "__main__":
# gnuradio.gr.msq_queue.insert_tail and delete_head create errors unless docstrings are defined!
# This is presumably a bug in SWIG.
- msg_q = di.get_member(u'gr_msg_queue', DoxyClass)
- insert_tail = msg_q.get_member(u'insert_tail', DoxyFunction)
- delete_head = msg_q.get_member(u'delete_head', DoxyFunction)
+ #msg_q = di.get_member(u'gr_msg_queue', DoxyClass)
+ #insert_tail = msg_q.get_member(u'insert_tail', DoxyFunction)
+ #delete_head = msg_q.get_member(u'delete_head', DoxyFunction)
output = []
- output.append(make_func_entry(insert_tail, name='gr_py_msg_queue__insert_tail'))
- output.append(make_func_entry(delete_head, name='gr_py_msg_queue__delete_head'))
+ #output.append(make_func_entry(insert_tail, name='gr_py_msg_queue__insert_tail'))
+ #output.append(make_func_entry(delete_head, name='gr_py_msg_queue__delete_head'))
custom_output = "\n\n".join(output)
# Generate the docstrings interface file.
diff --git a/gnuradio-core/CMakeLists.txt b/gnuradio-core/CMakeLists.txt
index 1d609a283..101f4c3a3 100644
--- a/gnuradio-core/CMakeLists.txt
+++ b/gnuradio-core/CMakeLists.txt
@@ -60,7 +60,6 @@ GR_SET_GLOBAL(GNURADIO_CORE_INCLUDE_DIRS
${CMAKE_CURRENT_SOURCE_DIR}/src/lib/reed-solomon
${CMAKE_CURRENT_SOURCE_DIR}/src/lib/viterbi
${CMAKE_CURRENT_SOURCE_DIR}/src/lib/io
- ${CMAKE_CURRENT_SOURCE_DIR}/src/lib/g72x
${CMAKE_CURRENT_BINARY_DIR}/src/lib/swig
${CMAKE_CURRENT_SOURCE_DIR}/src/lib/swig
${CMAKE_CURRENT_SOURCE_DIR}/src/lib/hier
diff --git a/gnuradio-core/src/lib/swig/CMakeLists.txt b/gnuradio-core/src/lib/swig/CMakeLists.txt
index aa289a18a..bb7ce9a81 100644
--- a/gnuradio-core/src/lib/swig/CMakeLists.txt
+++ b/gnuradio-core/src/lib/swig/CMakeLists.txt
@@ -45,23 +45,23 @@ set(GR_SWIG_LIBRARIES gnuradio-core)
set(GR_SWIG_TARGET_DEPS gengen_generated filter_generated)
-GR_SWIG_MAKE(gnuradio_core_runtime gnuradio_core_runtime.i)
-GR_SWIG_MAKE(gnuradio_core_general gnuradio_core_general.i)
-GR_SWIG_MAKE(gnuradio_core_gengen gnuradio_core_gengen.i)
-GR_SWIG_MAKE(gnuradio_core_filter gnuradio_core_filter.i)
-GR_SWIG_MAKE(gnuradio_core_io gnuradio_core_io.i)
-GR_SWIG_MAKE(gnuradio_core_hier gnuradio_core_hier.i)
-
-GR_SWIG_INSTALL(TARGETS
- gnuradio_core_runtime
- gnuradio_core_general
- gnuradio_core_gengen
- gnuradio_core_filter
- gnuradio_core_io
- gnuradio_core_hier
- DESTINATION ${GR_PYTHON_DIR}/gnuradio/gr
- COMPONENT "core_python"
-)
+foreach(what runtime general gengen filter io hier)
+ SET(GR_SWIG_DOC_FILE ${CMAKE_CURRENT_BINARY_DIR}/${what}_swig_doc.i)
+ SET(GR_SWIG_DOC_DIRS ${CMAKE_CURRENT_SOURCE_DIR}/../${what} ${CMAKE_CURRENT_BINARY_DIR}/../${what})
+ GR_SWIG_MAKE(gnuradio_core_${what} gnuradio_core_${what}.i)
+ GR_SWIG_INSTALL(
+ TARGETS gnuradio_core_${what}
+ DESTINATION ${GR_PYTHON_DIR}/gnuradio/gr
+ COMPONENT "core_python"
+ )
+ install(
+ FILES
+ gnuradio_core_${what}.i
+ ${CMAKE_CURRENT_BINARY_DIR}/${what}_swig_doc.i
+ DESTINATION ${GR_INCLUDE_DIR}/gnuradio/swig
+ COMPONENT "core_swig"
+ )
+endforeach(what)
########################################################################
# Install various files
@@ -70,12 +70,6 @@ install(FILES
gnuradio.i
gr_swig_block_magic.i
gr_shared_ptr.i
- gnuradio_core_runtime.i
- gnuradio_core_general.i
- gnuradio_core_gengen.i
- gnuradio_core_filter.i
- gnuradio_core_io.i
- gnuradio_core_hier.i
DESTINATION ${GR_INCLUDE_DIR}/gnuradio/swig
COMPONENT "core_swig"
)
diff --git a/gnuradio-core/src/lib/swig/gnuradio_core_filter.i b/gnuradio-core/src/lib/swig/gnuradio_core_filter.i
index e825467db..952bf93b4 100644
--- a/gnuradio-core/src/lib/swig/gnuradio_core_filter.i
+++ b/gnuradio-core/src/lib/swig/gnuradio_core_filter.i
@@ -19,6 +19,8 @@
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*/
+%include "filter_swig_doc.i"
+
#ifndef SWIGIMPORTED
%module(directors="1") gnuradio_core_filter
#endif
diff --git a/gnuradio-core/src/lib/swig/gnuradio_core_general.i b/gnuradio-core/src/lib/swig/gnuradio_core_general.i
index b34d4f936..e39a0197a 100644
--- a/gnuradio-core/src/lib/swig/gnuradio_core_general.i
+++ b/gnuradio-core/src/lib/swig/gnuradio_core_general.i
@@ -19,6 +19,8 @@
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*/
+%include "general_swig_doc.i"
+
#define GR_CORE_API
#ifndef SWIGIMPORTED
diff --git a/gnuradio-core/src/lib/swig/gnuradio_core_gengen.i b/gnuradio-core/src/lib/swig/gnuradio_core_gengen.i
index 496ced077..8753cd36b 100644
--- a/gnuradio-core/src/lib/swig/gnuradio_core_gengen.i
+++ b/gnuradio-core/src/lib/swig/gnuradio_core_gengen.i
@@ -19,6 +19,8 @@
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*/
+%include "gengen_swig_doc.i"
+
#ifndef SWIGIMPORTED
%module(directors="1") gnuradio_core_gengen
#endif
diff --git a/gnuradio-core/src/lib/swig/gnuradio_core_hier.i b/gnuradio-core/src/lib/swig/gnuradio_core_hier.i
index 0b8161c5d..bb9c71f53 100644
--- a/gnuradio-core/src/lib/swig/gnuradio_core_hier.i
+++ b/gnuradio-core/src/lib/swig/gnuradio_core_hier.i
@@ -19,6 +19,8 @@
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*/
+%include "hier_swig_doc.i"
+
#ifndef SWIGIMPORTED
%module(directors="1") gnuradio_hier_hier
#endif
diff --git a/gnuradio-core/src/lib/swig/gnuradio_core_io.i b/gnuradio-core/src/lib/swig/gnuradio_core_io.i
index 0d989ea87..d2fa0aede 100644
--- a/gnuradio-core/src/lib/swig/gnuradio_core_io.i
+++ b/gnuradio-core/src/lib/swig/gnuradio_core_io.i
@@ -19,6 +19,8 @@
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*/
+%include "io_swig_doc.i"
+
#ifndef SWIGIMPORTED
%module(directors="1") gnuradio_core_io
#endif
diff --git a/gnuradio-core/src/lib/swig/gnuradio_core_runtime.i b/gnuradio-core/src/lib/swig/gnuradio_core_runtime.i
index 579c51ce5..7fcac5069 100644
--- a/gnuradio-core/src/lib/swig/gnuradio_core_runtime.i
+++ b/gnuradio-core/src/lib/swig/gnuradio_core_runtime.i
@@ -20,6 +20,8 @@
* Boston, MA 02110-1301, USA.
*/
+%include "runtime_swig_doc.i"
+
#ifndef SWIGIMPORTED
%module(directors="1") gnuradio_core_runtime
#endif
diff --git a/gr-digital/swig/CMakeLists.txt b/gr-digital/swig/CMakeLists.txt
index 3f97da5e3..94a714d05 100644
--- a/gr-digital/swig/CMakeLists.txt
+++ b/gr-digital/swig/CMakeLists.txt
@@ -23,6 +23,9 @@
include(GrPython)
include(GrSwig)
+set(GR_SWIG_DOC_FILE ${CMAKE_CURRENT_BINARY_DIR}/digital_swig_doc.i)
+set(GR_SWIG_DOC_DIRS ${GR_DIGITAL_INCLUDE_DIRS})
+
set(GR_SWIG_INCLUDE_DIRS
${GR_DIGITAL_INCLUDE_DIRS}
${GNURADIO_CORE_SWIG_INCLUDE_DIRS}
@@ -41,6 +44,7 @@ GR_SWIG_INSTALL(
install(
FILES
digital_swig.i
+ ${CMAKE_CURRENT_BINARY_DIR}/digital_swig_doc.i
digital_binary_slicer_fb.i
digital_clock_recovery_mm_cc.i
digital_clock_recovery_mm_ff.i
diff --git a/gr-digital/swig/digital_swig.i b/gr-digital/swig/digital_swig.i
index 3e3a63b61..86b5cab13 100644
--- a/gr-digital/swig/digital_swig.i
+++ b/gr-digital/swig/digital_swig.i
@@ -21,6 +21,9 @@
%include "gnuradio.i"
+//load generated python docstrings
+%include "digital_swig_doc.i"
+
%include <gri_control_loop.i>
%{