diff --git a/CMakeLists.txt b/CMakeLists.txt index f3e0f46..33c622d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -33,10 +33,6 @@ set (maa_VERSION_MINOR ${VERSION_MINOR}) set (maa_VERSION_PATCH ${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 "") option (test "Build all tests." OFF) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 74051a3..feddc48 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -40,13 +40,33 @@ set_target_properties( install (FILES ${maa_LIB_HEADERS} DESTINATION include/maa) install (FILES ${maa_LIB_KERNEL} DESTINATION include/maa/linux) -macro(maa_CREATE_INSTALL_PKGCONFIG generated_file install_location) - configure_file(${generated_file}.cmake ${CMAKE_CURRENT_BINARY_DIR}/${generated_file} @ONLY) - install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${generated_file} DESTINATION ${install_location}) -endmacro(maa_CREATE_INSTALL_PKGCONFIG) -maa_create_install_pkgconfig(maa.pc lib${LIB_SUFFIX}/pkgconfig) +macro (maa_CREATE_INSTALL_PKGCONFIG generated_file install_location) + configure_file (${generated_file}.cmake ${CMAKE_CURRENT_BINARY_DIR}/${generated_file} @ONLY) + install (FILES ${CMAKE_CURRENT_BINARY_DIR}/${generated_file} DESTINATION ${install_location}) +endmacro (maa_CREATE_INSTALL_PKGCONFIG) +maa_create_install_pkgconfig (maa.pc lib${LIB_SUFFIX}/pkgconfig) install (TARGETS maa DESTINATION lib) -add_subdirectory (python) -add_subdirectory (javascript) +if (DOXYGEN_FOUND) + 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 () diff --git a/src/python/doxy2swig.py b/src/doxy2swig.py similarity index 100% rename from src/python/doxy2swig.py rename to src/doxy2swig.py diff --git a/src/javascript/CMakeLists.txt b/src/javascript/CMakeLists.txt index f6c3ef2..cdb177e 100644 --- a/src/javascript/CMakeLists.txt +++ b/src/javascript/CMakeLists.txt @@ -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}/node ${NODE_ROOT_DIR}/deps/v8/include ${NODE_ROOT_DIR}/deps/uv/include ) -include_directories( +include_directories ( ${NODE_INCLUDE_DIRS} /usr/include/node ${CMAKE_CURRENT_SOURCE_DIR}/.. ) -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 SWIG_FLAGS "-node") +set_source_files_properties (maajs.i PROPERTIES CPLUSPLUS ON) -SWIG_ADD_MODULE(maajs javascript maajs.i ${maa_LIB_SRCS}) -SWIG_LINK_LIBRARIES(maajs ${NODE_LIBRARIES}) +swig_add_module (maajs javascript maajs.i ${maa_LIB_SRCS}) +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 "" SUFFIX ".node" ) diff --git a/src/javascript/maajs.i b/src/javascript/maajs.i index c776ba5..e5b31a5 100644 --- a/src/javascript/maajs.i +++ b/src/javascript/maajs.i @@ -1,8 +1,19 @@ -%module maajs +%module (docstring="Javascript interface to libmaa") maajs %{ #include "maa.h" %} %include +%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 diff --git a/src/python/CMakeLists.txt b/src/python/CMakeLists.txt index eb3645b..42cbabc 100644 --- a/src/python/CMakeLists.txt +++ b/src/python/CMakeLists.txt @@ -6,24 +6,11 @@ include_directories( ${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_link_libraries (pymaa ${PYTHON_LIBRARIES}) if (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 (${SWIG_MODULE_pymaa_REAL_NAME} ${_file}doc_i) endforeach () diff --git a/src/python/pymaa.i b/src/python/pymaa.i index 62b9aed..bbbd5a3 100644 --- a/src/python/pymaa.i +++ b/src/python/pymaa.i @@ -5,10 +5,10 @@ %feature("autodoc", "1"); #ifdef DOXYGEN -%include maa_doc.i -%include gpio_doc.i -%include i2c_doc.i -%include pwm_doc.i +%include ../maa_doc.i +%include ../gpio_doc.i +%include ../i2c_doc.i +%include ../pwm_doc.i #endif %include ../maa.i