X-Git-Url: http://developer.intra2net.com/git/?a=blobdiff_plain;f=bindings%2FCMakeLists.txt;h=8f14c1a22bb47e71340a7e246e81cdab8c9fe5d4;hb=f9e62be7d02503877cc042833ae24ce1093bf38b;hp=28061a6bb6821f3fddc54b074c0d253b88ee8f6c;hpb=bcf4a08bf629f8c6364b9057ab68228709ccab29;p=libftdi diff --git a/bindings/CMakeLists.txt b/bindings/CMakeLists.txt index 28061a6..8f14c1a 100644 --- a/bindings/CMakeLists.txt +++ b/bindings/CMakeLists.txt @@ -10,10 +10,41 @@ if(PYTHON_BINDINGS AND SWIG_FOUND AND PYTHONLIBS_FOUND AND PYTHONINTERP_FOUND) INCLUDE_DIRECTORIES(${PYTHON_INCLUDE_PATH}) LINK_DIRECTORIES(${CMAKE_CURRENT_BINARY_DIR}/../src) - SWIG_ADD_MODULE(ftdi1 python ftdi1.i) - SWIG_LINK_LIBRARIES(ftdi1 ftdi1 ${PYTHON_LIBRARIES}) + if(DOCUMENTATION AND DOXYGEN_FOUND) + set(SWIG_MODULE_ftdi1_EXTRA_DEPS ${CMAKE_CURRENT_BINARY_DIR}/ftdi1_doc.i) + set(CMAKE_SWIG_FLAGS -DDOXYGEN=${DOXYGEN_FOUND}) - execute_process ( COMMAND ${PYTHON_EXECUTABLE} -c "import sys; print '%d.%d' % ( sys.version_info[0], sys.version_info[1] )" + # Run doxygen to only generate the xml + add_custom_command( + OUTPUT ${CMAKE_BINARY_DIR}/doc/xml/ftdi_8c.xml + COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_BINARY_DIR}/doc + COMMAND ${DOXYGEN_EXECUTABLE} ${CMAKE_BINARY_DIR}/Doxyfile.xml + WORKING_DIRECTORY ${CMAKE_BINARY_DIR} + DEPENDS ${c_headers};${c_sources};${cpp_sources};${cpp_headers} + ) + add_custom_target(doc_xml ALL DEPENDS ${CMAKE_BINARY_DIR}/doc/xml/ftdi_8c.xml) + + # generate .i from doxygen .xml + add_custom_command( + OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/ftdi1_doc.i + COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/doxy2swig.py -n + ${CMAKE_BINARY_DIR}/doc/xml/ftdi_8c.xml + ${CMAKE_CURRENT_BINARY_DIR}/ftdi1_doc.i + DEPENDS doc_xml + ) + + endif(DOCUMENTATION AND DOXYGEN_FOUND) + + swig_add_module ( ftdi1 python ftdi1.i ) + swig_link_libraries ( ftdi1 ftdi1 ) + + # do not link python modules on debian + # http://www.debian.org/doc/packaging-manuals/python-policy/ch-module_packages.html + if ( NOT UNIX OR ( UNIX AND NOT EXISTS "/etc/debian_version" ) ) + swig_link_libraries ( ftdi1 ${PYTHON_LIBRARIES} ) + endif () + + execute_process ( COMMAND ${PYTHON_EXECUTABLE} -c "import sys; print( '%d.%d' % ( sys.version_info[0], sys.version_info[1] ) )" OUTPUT_VARIABLE PYTHON_VERSION OUTPUT_STRIP_TRAILING_WHITESPACE )