LINK_DIRECTORIES( ${GLIB2_LIBRARY_DIRS} ${LIBXML2_LIBRARY_DIRS} ${SQLITE3_LIBRARY_DIRS} ) INCLUDE( ${SWIG_USE_FILE} ) SET(CMAKE_SWIG_FLAGS -Werror -Wall -modern) FILE(GLOB SWIG_MODULE_opensync_EXTRA_DEPS opensync-*.i) IF ( OPENSYNC_PYTHONBINDINGS AND PYTHON_LIBRARY ) INCLUDE_DIRECTORIES( ${PYTHON_INCLUDE_PATH} ) # SWIG 1.3.31 is broken - SVN version of SWIG got fixed by andrewb (ticket #498) IF (CMAKE_COMPILER_IS_GNUCC) ADD_DEFINITIONS( -fno-strict-aliasing ) ENDIF (CMAKE_COMPILER_IS_GNUCC) SWIG_ADD_MODULE( opensync python opensync.i ) SWIG_LINK_LIBRARIES( opensync opensync ${PYTHON_LIBRARIES} ) # this is a modified version of the python module generated by SWIG # we edit the python source to make the opensync.Error class an exception, allowing it to be raised # FIXME: find a way (if it exists) of getting SWIG to do this for us ADD_CUSTOM_COMMAND(TARGET ${SWIG_MODULE_opensync_REAL_NAME} POST_BUILD COMMAND sed ARGS "s/^class Error(object):/class Error(Exception):/" opensync.py > opensync_hack.py COMMENT "Munging SWIG-generated Python class" VERBATIM) INSTALL( FILES ${CMAKE_CURRENT_BINARY_DIR}/_opensync${CMAKE_SHARED_MODULE_SUFFIX} DESTINATION ${LIB_INSTALL_DIR}/python${PYTHON_VERSION}/site-packages/ ) INSTALL( FILES ${CMAKE_CURRENT_BINARY_DIR}/opensync_hack.py DESTINATION ${LIB_INSTALL_DIR}/python${PYTHON_VERSION}/site-packages/ RENAME opensync.py ) ENDIF ( OPENSYNC_PYTHONBINDINGS AND PYTHON_LIBRARY )