doxygen: generic and more reliable doxygen/swig autodoc integration
Signed-off-by: Brendan Le Foll <brendan.le.foll@intel.com>
This commit is contained in:
@@ -33,10 +33,6 @@ set (maa_VERSION_MINOR ${VERSION_MINOR})
|
|||||||
set (maa_VERSION_PATCH ${VERSION_PATCH})
|
set (maa_VERSION_PATCH ${VERSION_PATCH})
|
||||||
set (maa_VERSION_STRING ${maa_VERSION_MAJOR}.${maa_VERSION_MINOR}.${maa_VERSION_PATCH})
|
set (maa_VERSION_STRING ${maa_VERSION_MAJOR}.${maa_VERSION_MINOR}.${maa_VERSION_PATCH})
|
||||||
|
|
||||||
set (SWIG_EXECUTABLE /usr/bin/swig)
|
|
||||||
find_package (SWIG REQUIRED)
|
|
||||||
include (${SWIG_USE_FILE})
|
|
||||||
|
|
||||||
set (CMAKE_SWIG_FLAGS "")
|
set (CMAKE_SWIG_FLAGS "")
|
||||||
|
|
||||||
option (test "Build all tests." OFF)
|
option (test "Build all tests." OFF)
|
||||||
|
|||||||
@@ -40,13 +40,33 @@ set_target_properties(
|
|||||||
install (FILES ${maa_LIB_HEADERS} DESTINATION include/maa)
|
install (FILES ${maa_LIB_HEADERS} DESTINATION include/maa)
|
||||||
install (FILES ${maa_LIB_KERNEL} DESTINATION include/maa/linux)
|
install (FILES ${maa_LIB_KERNEL} DESTINATION include/maa/linux)
|
||||||
|
|
||||||
macro(maa_CREATE_INSTALL_PKGCONFIG generated_file install_location)
|
macro (maa_CREATE_INSTALL_PKGCONFIG generated_file install_location)
|
||||||
configure_file(${generated_file}.cmake ${CMAKE_CURRENT_BINARY_DIR}/${generated_file} @ONLY)
|
configure_file (${generated_file}.cmake ${CMAKE_CURRENT_BINARY_DIR}/${generated_file} @ONLY)
|
||||||
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${generated_file} DESTINATION ${install_location})
|
install (FILES ${CMAKE_CURRENT_BINARY_DIR}/${generated_file} DESTINATION ${install_location})
|
||||||
endmacro(maa_CREATE_INSTALL_PKGCONFIG)
|
endmacro (maa_CREATE_INSTALL_PKGCONFIG)
|
||||||
maa_create_install_pkgconfig(maa.pc lib${LIB_SUFFIX}/pkgconfig)
|
maa_create_install_pkgconfig (maa.pc lib${LIB_SUFFIX}/pkgconfig)
|
||||||
|
|
||||||
install (TARGETS maa DESTINATION lib)
|
install (TARGETS maa DESTINATION lib)
|
||||||
|
|
||||||
add_subdirectory (python)
|
if (DOXYGEN_FOUND)
|
||||||
add_subdirectory (javascript)
|
set (CMAKE_SWIG_FLAGS -DDOXYGEN=${DOXYGEN_FOUND})
|
||||||
|
set (DOCFILES maa pwm i2c gpio)
|
||||||
|
foreach (_file ${DOCFILES})
|
||||||
|
add_custom_command (OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${_file}_doc.i
|
||||||
|
COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/doxy2swig.py -n
|
||||||
|
${CMAKE_BINARY_DIR}/xml/${_file}_8h.xml
|
||||||
|
${CMAKE_CURRENT_BINARY_DIR}/${_file}_doc.i
|
||||||
|
DEPENDS ${CMAKE_BINARY_DIR}/xml/${_file}_8h.xml
|
||||||
|
)
|
||||||
|
add_custom_target (${_file}doc_i DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/${_file}_doc.i)
|
||||||
|
add_dependencies (${_file}doc_i doc)
|
||||||
|
endforeach ()
|
||||||
|
endif ()
|
||||||
|
|
||||||
|
find_package (SWIG)
|
||||||
|
if (SWIG_FOUND)
|
||||||
|
include (${SWIG_USE_FILE})
|
||||||
|
|
||||||
|
add_subdirectory (python)
|
||||||
|
add_subdirectory (javascript)
|
||||||
|
endif ()
|
||||||
|
|||||||
@@ -1,25 +1,31 @@
|
|||||||
FIND_PATH(NODE_ROOT_DIR "node/node.h")
|
find_path (NODE_ROOT_DIR "node/node.h")
|
||||||
|
|
||||||
set(NODE_INCLUDE_DIRS
|
set (NODE_INCLUDE_DIRS
|
||||||
${NODE_ROOT_DIR}/src
|
${NODE_ROOT_DIR}/src
|
||||||
${NODE_ROOT_DIR}/node
|
${NODE_ROOT_DIR}/node
|
||||||
${NODE_ROOT_DIR}/deps/v8/include
|
${NODE_ROOT_DIR}/deps/v8/include
|
||||||
${NODE_ROOT_DIR}/deps/uv/include
|
${NODE_ROOT_DIR}/deps/uv/include
|
||||||
)
|
)
|
||||||
|
|
||||||
include_directories(
|
include_directories (
|
||||||
${NODE_INCLUDE_DIRS}
|
${NODE_INCLUDE_DIRS}
|
||||||
/usr/include/node
|
/usr/include/node
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/..
|
${CMAKE_CURRENT_SOURCE_DIR}/..
|
||||||
)
|
)
|
||||||
|
|
||||||
SET_SOURCE_FILES_PROPERTIES(maajs.i PROPERTIES SWIG_FLAGS "-node")
|
set_source_files_properties (maajs.i PROPERTIES SWIG_FLAGS "-node")
|
||||||
SET_SOURCE_FILES_PROPERTIES(maajs.i PROPERTIES CPLUSPLUS ON)
|
set_source_files_properties (maajs.i PROPERTIES CPLUSPLUS ON)
|
||||||
|
|
||||||
SWIG_ADD_MODULE(maajs javascript maajs.i ${maa_LIB_SRCS})
|
swig_add_module (maajs javascript maajs.i ${maa_LIB_SRCS})
|
||||||
SWIG_LINK_LIBRARIES(maajs ${NODE_LIBRARIES})
|
swig_link_libraries (maajs ${NODE_LIBRARIES})
|
||||||
|
|
||||||
set_target_properties(maajs PROPERTIES
|
if (DOXYGEN_FOUND)
|
||||||
|
foreach (_file ${DOCFILES})
|
||||||
|
add_dependencies (${SWIG_MODULE_maajs_REAL_NAME} ${_file}doc_i)
|
||||||
|
endforeach ()
|
||||||
|
endif ()
|
||||||
|
|
||||||
|
set_target_properties (maajs PROPERTIES
|
||||||
PREFIX ""
|
PREFIX ""
|
||||||
SUFFIX ".node"
|
SUFFIX ".node"
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -1,8 +1,19 @@
|
|||||||
%module maajs
|
%module (docstring="Javascript interface to libmaa") maajs
|
||||||
%{
|
%{
|
||||||
#include "maa.h"
|
#include "maa.h"
|
||||||
%}
|
%}
|
||||||
|
|
||||||
%include <node.i>
|
%include <node.i>
|
||||||
|
|
||||||
|
%rename("%(strip:[maa_])s") "";
|
||||||
|
|
||||||
|
%feature("autodoc", "1");
|
||||||
|
|
||||||
|
#ifdef DOXYGEN
|
||||||
|
%include ../maa_doc.i
|
||||||
|
%include ../gpio_doc.i
|
||||||
|
%include ../i2c_doc.i
|
||||||
|
%include ../pwm_doc.i
|
||||||
|
#endif
|
||||||
|
|
||||||
%include ../maa.i
|
%include ../maa.i
|
||||||
|
|||||||
@@ -6,24 +6,11 @@ include_directories(
|
|||||||
${PYTHON_INCLUDE_DIRS}
|
${PYTHON_INCLUDE_DIRS}
|
||||||
)
|
)
|
||||||
|
|
||||||
if (DOXYGEN_FOUND)
|
|
||||||
set (CMAKE_SWIG_FLAGS -DDOXYGEN=${DOXYGEN_FOUND})
|
|
||||||
endif ()
|
|
||||||
|
|
||||||
swig_add_module (pymaa python pymaa.i ${maa_LIB_SRCS})
|
swig_add_module (pymaa python pymaa.i ${maa_LIB_SRCS})
|
||||||
swig_link_libraries (pymaa ${PYTHON_LIBRARIES})
|
swig_link_libraries (pymaa ${PYTHON_LIBRARIES})
|
||||||
|
|
||||||
if (DOXYGEN_FOUND)
|
if (DOXYGEN_FOUND)
|
||||||
set (DOCFILES maa pwm i2c gpio)
|
|
||||||
foreach (_file ${DOCFILES})
|
foreach (_file ${DOCFILES})
|
||||||
add_custom_command (OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${_file}_doc.i
|
|
||||||
COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/doxy2swig.py -n
|
|
||||||
${CMAKE_BINARY_DIR}/xml/${_file}_8h.xml
|
|
||||||
${CMAKE_CURRENT_BINARY_DIR}/${_file}_doc.i
|
|
||||||
DEPENDS ${CMAKE_BINARY_DIR}/xml/${_file}_8h.xml
|
|
||||||
)
|
|
||||||
|
|
||||||
add_custom_target (${_file}doc_i DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/${_file}_doc.i)
|
|
||||||
add_dependencies (${SWIG_MODULE_pymaa_REAL_NAME} ${_file}doc_i)
|
add_dependencies (${SWIG_MODULE_pymaa_REAL_NAME} ${_file}doc_i)
|
||||||
endforeach ()
|
endforeach ()
|
||||||
|
|
||||||
|
|||||||
@@ -5,10 +5,10 @@
|
|||||||
%feature("autodoc", "1");
|
%feature("autodoc", "1");
|
||||||
|
|
||||||
#ifdef DOXYGEN
|
#ifdef DOXYGEN
|
||||||
%include maa_doc.i
|
%include ../maa_doc.i
|
||||||
%include gpio_doc.i
|
%include ../gpio_doc.i
|
||||||
%include i2c_doc.i
|
%include ../i2c_doc.i
|
||||||
%include pwm_doc.i
|
%include ../pwm_doc.i
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
%include ../maa.i
|
%include ../maa.i
|
||||||
|
|||||||
Reference in New Issue
Block a user