From 28fc9f97c9d586b9f5490ac24511de2fa8195e2a Mon Sep 17 00:00:00 2001 From: Brendan Le Foll Date: Fri, 30 May 2014 10:28:21 +0100 Subject: [PATCH] swig: use C++ generated class doc and include directly from maa.i Signed-off-by: Brendan Le Foll --- src/CMakeLists.txt | 14 +++++++++++++- src/javascript/CMakeLists.txt | 3 ++- src/javascript/maajs.i | 7 ------- src/maa.i | 9 +++++++++ src/python/CMakeLists.txt | 6 ++++-- src/python/pymaa.i | 7 ------- 6 files changed, 28 insertions(+), 18 deletions(-) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index ae940fe..0a6bd77 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -37,7 +37,18 @@ install (TARGETS maa DESTINATION lib) if (DOXYGEN_FOUND) set (CMAKE_SWIG_FLAGS -DDOXYGEN=${DOXYGEN_FOUND}) - set (DOCFILES maa pwm i2c gpio aio spi) + set (DOCCLASSES aio gpio i2c pwm spi) + foreach (_file ${DOCCLASSES}) + add_custom_command (OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${_file}_class_doc.i + COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/doxy2swig.py -n + ${CMAKE_BINARY_DIR}/xml/classmaa_1_1_${_file}.xml + ${CMAKE_CURRENT_BINARY_DIR}/${_file}_class_doc.i + DEPENDS ${CMAKE_BINARY_DIR}/xml/classmaa_1_1_${_file}.xml + ) + add_custom_target (${_file}class_doc_i DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/${_file}_class_doc.i) + add_dependencies (${_file}class_doc_i doc) + endforeach () + set (DOCFILES maa ${DOCCLASSES}) foreach (_file ${DOCFILES}) add_custom_command (OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${_file}_doc.i COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/doxy2swig.py -n @@ -54,6 +65,7 @@ if (BUILDSWIG) find_package (SWIG) if (SWIG_FOUND) include (${SWIG_USE_FILE}) + set_source_files_properties (maa.i PROPERTIES SWIG_FLAGS "-I${CMAKE_BINARY_DIR}/src") if (BUILDSWIGPYTHON) add_subdirectory (python) diff --git a/src/javascript/CMakeLists.txt b/src/javascript/CMakeLists.txt index 22569a6..c4298cf 100644 --- a/src/javascript/CMakeLists.txt +++ b/src/javascript/CMakeLists.txt @@ -13,7 +13,8 @@ include_directories ( ) set (CMAKE_CXX_FLAGS -DBUILDING_NODE_EXTENSION) -set_source_files_properties (maajs.i PROPERTIES SWIG_FLAGS "-node") +# SWIG treats SWIG_FLAGS as a list and not a string so semicolon seperation is required +set_source_files_properties (maajs.i PROPERTIES SWIG_FLAGS "-node;-I${CMAKE_BINARY_DIR}/src") set_source_files_properties (maajs.i PROPERTIES CPLUSPLUS ON) swig_add_module (maajs javascript maajs.i ${maa_LIB_SRCS}) diff --git a/src/javascript/maajs.i b/src/javascript/maajs.i index 4bf3c16..1cc2e90 100644 --- a/src/javascript/maajs.i +++ b/src/javascript/maajs.i @@ -2,11 +2,4 @@ %feature("autodoc", "3"); -#ifdef DOXYGEN -%include ../maa_doc.i -%include ../gpio_doc.i -%include ../i2c_doc.i -%include ../pwm_doc.i -#endif - %include ../maa.i diff --git a/src/maa.i b/src/maa.i index f5e2e65..79ef841 100644 --- a/src/maa.i +++ b/src/maa.i @@ -1,3 +1,12 @@ +#ifdef DOXYGEN + %include maa_doc.i + %include gpio_class_doc.i + %include i2c_class_doc.i + %include pwm_class_doc.i + %include aio_class_doc.i + %include spi_class_doc.i +#endif + %{ #include "maa.h" #include "gpio.hpp" diff --git a/src/python/CMakeLists.txt b/src/python/CMakeLists.txt index fd2d9a6..37b43f7 100644 --- a/src/python/CMakeLists.txt +++ b/src/python/CMakeLists.txt @@ -7,15 +7,17 @@ include_directories( ) set_source_files_properties (pymaa.i PROPERTIES CPLUSPLUS ON) +set_source_files_properties (pymaa.i PROPERTIES SWIG_FLAGS "-I${CMAKE_BINARY_DIR}/src") swig_add_module (pymaa python pymaa.i ${maa_LIB_SRCS}) swig_link_libraries (pymaa ${PYTHON_LIBRARIES}) set (CMAKE_C_FLAGS -DSWIGPYTHON=${SWIG_FOUND}) if (DOXYGEN_FOUND) - foreach (_file ${DOCFILES}) - add_dependencies (${SWIG_MODULE_pymaa_REAL_NAME} ${_file}doc_i) + foreach (_file ${DOCCLASSES}) + add_dependencies (${SWIG_MODULE_pymaa_REAL_NAME} ${_file}class_doc_i) endforeach () + add_dependencies (${SWIG_MODULE_pymaa_REAL_NAME} maadoc_i) add_custom_target (pydoc pydoc -w ${CMAKE_CURRENT_BINARY_DIR}/pymaa.py ${CMAKE_CURRENT_BINARY_DIR}/ diff --git a/src/python/pymaa.i b/src/python/pymaa.i index 2a76c59..0c66b30 100644 --- a/src/python/pymaa.i +++ b/src/python/pymaa.i @@ -2,12 +2,5 @@ %feature("autodoc", "3"); -#ifdef DOXYGEN -%include ../maa_doc.i -%include ../gpio_doc.i -%include ../i2c_doc.i -%include ../pwm_doc.i -#endif - %include ../maa.i -- 2.7.4