project(QtXml)
# project definition
set(QtXml_TYPESYSTEM
${typesystem_SOURCE_DIR}/typesystem_xml.xml
)

set(QtXml_SRC
${CMAKE_CURRENT_BINARY_DIR}/${BINDING_NAME}/QtXml/qdomattr_wrapper.cpp
${CMAKE_CURRENT_BINARY_DIR}/${BINDING_NAME}/QtXml/qdomcdatasection_wrapper.cpp
${CMAKE_CURRENT_BINARY_DIR}/${BINDING_NAME}/QtXml/qdomcharacterdata_wrapper.cpp
${CMAKE_CURRENT_BINARY_DIR}/${BINDING_NAME}/QtXml/qdomcomment_wrapper.cpp
${CMAKE_CURRENT_BINARY_DIR}/${BINDING_NAME}/QtXml/qdomdocumentfragment_wrapper.cpp
${CMAKE_CURRENT_BINARY_DIR}/${BINDING_NAME}/QtXml/qdomdocumenttype_wrapper.cpp
${CMAKE_CURRENT_BINARY_DIR}/${BINDING_NAME}/QtXml/qdomdocument_wrapper.cpp
${CMAKE_CURRENT_BINARY_DIR}/${BINDING_NAME}/QtXml/qdomelement_wrapper.cpp
${CMAKE_CURRENT_BINARY_DIR}/${BINDING_NAME}/QtXml/qdomentityreference_wrapper.cpp
${CMAKE_CURRENT_BINARY_DIR}/${BINDING_NAME}/QtXml/qdomentity_wrapper.cpp
${CMAKE_CURRENT_BINARY_DIR}/${BINDING_NAME}/QtXml/qdomimplementation_wrapper.cpp
${CMAKE_CURRENT_BINARY_DIR}/${BINDING_NAME}/QtXml/qdomnamednodemap_wrapper.cpp
${CMAKE_CURRENT_BINARY_DIR}/${BINDING_NAME}/QtXml/qdomnodelist_wrapper.cpp
${CMAKE_CURRENT_BINARY_DIR}/${BINDING_NAME}/QtXml/qdomnode_wrapper.cpp
${CMAKE_CURRENT_BINARY_DIR}/${BINDING_NAME}/QtXml/qdomnotation_wrapper.cpp
${CMAKE_CURRENT_BINARY_DIR}/${BINDING_NAME}/QtXml/qdomprocessinginstruction_wrapper.cpp
${CMAKE_CURRENT_BINARY_DIR}/${BINDING_NAME}/QtXml/qdomtext_wrapper.cpp
${CMAKE_CURRENT_BINARY_DIR}/${BINDING_NAME}/QtXml/qtxml_globals_wrapper.cpp
${CMAKE_CURRENT_BINARY_DIR}/${BINDING_NAME}/QtXml/qtxml_module_wrapper.cpp
${CMAKE_CURRENT_BINARY_DIR}/${BINDING_NAME}/QtXml/qxmlattributes_wrapper.cpp
${CMAKE_CURRENT_BINARY_DIR}/${BINDING_NAME}/QtXml/qxmlcontenthandler_wrapper.cpp
${CMAKE_CURRENT_BINARY_DIR}/${BINDING_NAME}/QtXml/qxmldeclhandler_wrapper.cpp
${CMAKE_CURRENT_BINARY_DIR}/${BINDING_NAME}/QtXml/qxmldefaulthandler_wrapper.cpp
${CMAKE_CURRENT_BINARY_DIR}/${BINDING_NAME}/QtXml/qxmldtdhandler_wrapper.cpp
${CMAKE_CURRENT_BINARY_DIR}/${BINDING_NAME}/QtXml/qxmlentityresolver_wrapper.cpp
${CMAKE_CURRENT_BINARY_DIR}/${BINDING_NAME}/QtXml/qxmlerrorhandler_wrapper.cpp
${CMAKE_CURRENT_BINARY_DIR}/${BINDING_NAME}/QtXml/qxmlinputsource_wrapper.cpp
${CMAKE_CURRENT_BINARY_DIR}/${BINDING_NAME}/QtXml/qxmllexicalhandler_wrapper.cpp
${CMAKE_CURRENT_BINARY_DIR}/${BINDING_NAME}/QtXml/qxmllocator_wrapper.cpp
${CMAKE_CURRENT_BINARY_DIR}/${BINDING_NAME}/QtXml/qxmlnamespacesupport_wrapper.cpp
${CMAKE_CURRENT_BINARY_DIR}/${BINDING_NAME}/QtXml/qxmlparseexception_wrapper.cpp
${CMAKE_CURRENT_BINARY_DIR}/${BINDING_NAME}/QtXml/qxmlreader_wrapper.cpp
${CMAKE_CURRENT_BINARY_DIR}/${BINDING_NAME}/QtXml/qxmlsimplereader_wrapper.cpp
)

add_custom_command(OUTPUT ${QtXml_SRC}
COMMAND ${GENERATOR} ${GENERATOR_EXTRA_FLAGS}
        ${CMAKE_SOURCE_DIR}/data/global.h
        --include-paths=${QT_INCLUDE_DIR}:${QT_QTCORE_INCLUDE_DIR}:${QT_QTXML_INCLUDE_DIR}
        --typesystem-paths=${typesystem_SOURCE_DIR}
        --output-directory=${CMAKE_CURRENT_BINARY_DIR}
        --license-file=${CMAKE_SOURCE_DIR}/data/licensecomment.txt
        ${QtXml_TYPESYSTEM}
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
COMMENT "Running generator..."
)

include_directories(${CMAKE_CURRENT_SOURCE_DIR}
                    ${CMAKE_CURRENT_BINARY_DIR}/${BINDING_NAME}/QtXml
                    ${CMAKE_SOURCE_DIR}
                    ${QT_INCLUDE_DIR}
                    ${QT_QTCORE_INCLUDE_DIR}
                    ${QT_QTXML_INCLUDE_DIR}
                    ${PYTHON_INCLUDE_PATH}
                    ${Boost_INCLUDE_DIR}
                    ${pysidebase_SOURCE_DIR})
add_library(QtXml MODULE ${QtXml_SRC})
set_property(TARGET QtXml PROPERTY PREFIX "")
target_link_libraries(QtXml
                      ${Boost_PYTHON_LIBRARY}
                      ${PYTHON_LIBRARIES}
                      ${QT_QTCORE_LIBRARY}
                      ${QT_QTXML_LIBRARY}
                      pysidebase)

# install
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/QtXml.so
        DESTINATION ${SITE_PACKAGE}/${BINDING_NAME})

