install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/__init__.py
        DESTINATION ${SITE_PACKAGE}/${BINDING_NAME})

macro(execute_generator module sources)
add_custom_command(OUTPUT ${${sources}}
COMMAND ${GENERATOR} ${GENERATOR_EXTRA_FLAGS}
        ${CMAKE_BINARY_DIR}/data/global.h
        --include-paths=${QT_INCLUDE_DIR}
        --typesystem-paths=${typesystem_SOURCE_DIR}
        --output-directory=${CMAKE_CURRENT_BINARY_DIR}
        --license-file=${CMAKE_SOURCE_DIR}/data/licensecomment.txt
        ${typesystem_SOURCE_DIR}/typesystem_${module}.xml
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
COMMENT "Running generator for ${module}..."
)
endmacro(execute_generator)

# Check QtGui support
macro(CHECK_QT_GUI_MACRO macro_display_name qt_macro module_sources global_sources)
    set(SRC_FILE ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/test${qt_macro}.cxx)
    file(WRITE ${SRC_FILE}
      "#include <Qt/QtGui>\n"
      "int main(void) { \n"
      "#ifdef ${qt_macro}\n"
      "#error not supported.\n"
      "#endif\n"
      "}\n")

    try_compile(Q_WORKS ${CMAKE_BINARY_DIR}
      ${SRC_FILE}
      CMAKE_FLAGS
        -DINCLUDE_DIRECTORIES:STRING=${QT_QTGUI_INCLUDE_DIR}\;${QT_INCLUDE_DIR}
        -DLINK_LIBRARIES:PATH=${QT_QTGUI_LIBRARY_RELEASE}
        -DCMAKE_INSTALL_RPATH=${CMAKE_INSTALL_RPATH}
        -DCMAKE_BUILD_WITH_INSTALL_RPATH=YES
        -DCMAKE_CXX_LINK_EXECUTABLE=${CMAKE_CXX_LINK_EXECUTABLE}
      OUTPUT_VARIABLE OUTPUT)

    if(Q_WORKS)
        message(STATUS "Testing support to ${macro_display_name} -- enabled")
        LIST(APPEND ${global_sources}
                    ${${module_sources}})
    else(Q_WORKS)
        message(STATUS "Testing support to ${macro_display_name} -- disabled")
    endif(Q_WORKS)
endmacro(CHECK_QT_GUI_MACRO)


# Only add subdirectory if the associated Qt module is found.
macro(HAS_QT_MODULE var name)
IF (${var})
    add_subdirectory(${name})
    list(APPEND PYSIDE_MODULE_LIST '${name}')
    execute_process(COMMAND ${CMAKE_COMMAND} -E create_symlink "${CMAKE_CURRENT_BINARY_DIR}/${name}/${name}.so"
                                                               "${TEST_INSTALL_DIR}/${name}.so")
else (${var})
    message(STATUS "${name} NOT found. ${name} support disabled.")
endif (${var})
endmacro(HAS_QT_MODULE)

execute_process(COMMAND ${CMAKE_COMMAND} -E create_symlink "${CMAKE_CURRENT_SOURCE_DIR}/__init__.py"
                                                           "${TEST_INSTALL_DIR}/__init__.py")
set(PYSIDE_MODULE_LIST "")

#if (${QTVERSION} GREATER 4.5.0)
#    set(QT_MULTIMEDIA_FOUND ON)
#endif (${QTVERSION} GREATER 4.5.0)
set(QT_MULTIMEDIA_FOUND OFF)

HAS_QT_MODULE(QT_QTCORE_FOUND QtCore)
HAS_QT_MODULE(QT_QTGUI_FOUND QtGui)
HAS_QT_MODULE(QT_QTWEBKIT_FOUND QtWebKit)
HAS_QT_MODULE(QT_QTNETWORK_FOUND QtNetwork)
HAS_QT_MODULE(QT_QTXML_FOUND QtXml)
HAS_QT_MODULE(QT_QTXMLPATTERNS_FOUND QtXmlPatterns)
HAS_QT_MODULE(QT_QTOPENGL_FOUND QtOpenGL)
HAS_QT_MODULE(QT_QTSVG_FOUND QtSvg)
HAS_QT_MODULE(QT_QTSQL_FOUND QtSql)
HAS_QT_MODULE(QT_QTHELP_FOUND QtHelp)
HAS_QT_MODULE(QT_QTSCRIPT_FOUND QtScript)
HAS_QT_MODULE(QT_QTSCRIPT_FOUND QtScriptTools)
HAS_QT_MODULE(QT_QTUITOOLS_FOUND QtUiTools)
HAS_QT_MODULE(QT_PHONON_FOUND phonon)
HAS_QT_MODULE(QT_MULTIMEDIA_FOUND QtMultimedia)

if(ENABLE_MAEMO5)
    message(STATUS "Testing support to QtMaemo5 -- enabled")
    add_subdirectory(QtMaemo5)
else(ENABLE_MAEMO5)
    message(STATUS "Testing support to QtMaemo5 -- disabled")
endif(ENABLE_MAEMO5)


string(REPLACE ";" "," PYSIDE_MODULES "${PYSIDE_MODULE_LIST}")
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/__init__.py.in
               ${CMAKE_CURRENT_SOURCE_DIR}/__init__.py @ONLY)
