-FIND_PACKAGE(PythonLibs)
+find_package (PythonLibs ${PYTHONBUILD_VERSION} REQUIRED)
+
INCLUDE_DIRECTORIES(${PYTHON_INCLUDE_PATH})
include_directories(
${PYTHON_INCLUDE_DIRS}
)
-SET_SOURCE_FILES_PROPERTIES(pymaa.i PROPERTIES CPLUSPLUS ON)
+set_source_files_properties (mraa.i PROPERTIES CPLUSPLUS ON)
+set_source_files_properties (mraa.i PROPERTIES SWIG_FLAGS "-I${CMAKE_BINARY_DIR}/src")
+swig_add_module (python-mraa python mraa.i ${mraa_LIB_SRCS})
+swig_link_libraries (python-mraa ${PYTHON_LIBRARIES})
+
+if (DOXYGEN_FOUND)
+ foreach (_file ${DOCCLASSES})
+ add_dependencies (${SWIG_MODULE_python-mraa_REAL_NAME} ${_file}class_doc_i)
+ endforeach ()
+ add_dependencies (${SWIG_MODULE_python-mraa_REAL_NAME} common_hpp_doc_i)
+
+ add_custom_target (pydoc
+ pydoc -w ${CMAKE_CURRENT_BINARY_DIR}/mraa.py ${CMAKE_CURRENT_BINARY_DIR}/
+ WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
+ COMMENT "Generating API documentation with pydoc" VERBATIM
+ )
+endif ()
+
+set_target_properties (${SWIG_MODULE_python-mraa_REAL_NAME} PROPERTIES
+ OUTPUT_NAME _mraa
+ COMPILE_FLAGS "${CMAKE_C_FLAGS} -DSWIGPYTHON=${SWIG_FOUND}"
+)
+
+execute_process (
+ COMMAND ${PYTHON_EXECUTABLE} -c
+ "import site, sys; sys.stdout.write(site.PREFIXES[-1])"
+ OUTPUT_VARIABLE PYTHON_PREFIX
+)
+file (TO_CMAKE_PATH "${PYTHON_PREFIX}" PYTHON_PREFIX)
+execute_process (
+ COMMAND ${PYTHON_EXECUTABLE} -c
+ "import site, sys; sys.stdout.write(site.getusersitepackages().replace(site.getuserbase(), site.PREFIXES[-1]))"
+ OUTPUT_VARIABLE PYTHON_SITE_DIR
+)
+file (TO_CMAKE_PATH "${PYTHON_SITE_DIR}" PYTHON_SITE_DIR)
+string (REGEX REPLACE "^${PYTHON_PREFIX}/" ""
+ PYTHON_SITE_DIR "${PYTHON_SITE_DIR}")
+
+install (FILES ${CMAKE_CURRENT_BINARY_DIR}/_mraa.so
+ ${CMAKE_CURRENT_BINARY_DIR}/mraa.py
+ DESTINATION ${PYTHON_SITE_DIR})
-SWIG_ADD_MODULE(pymaa python pymaa.i ${maa_LIB_SRCS})
-SWIG_LINK_LIBRARIES(pymaa ${PYTHON_LIBRARIES})
+add_subdirectory (docs)