add_definitions(
    -DQT_NO_URL_CAST_FROM_STRING
)
set(EXTRA_DECLARATIVE_LIBS
    KtCore KtGui KtNetwork KtScript
)

set(DECLARATIVE_PUBLIC_HEADERS
    QDeclarativeComponent
    QDeclarativeContext
    QDeclarativeEngine
    QDeclarativeError
    QDeclarativeExpression
    QDeclarativeExtensionInterface
    QDeclarativeExtensionPlugin
    QDeclarativeImageProvider
    QDeclarativeInfo
    QDeclarativeItem
    QDeclarativeParserStatus
    QDeclarativeProperty
    QDeclarativePropertyMap
    QDeclarativePropertyValueInterceptor
    QDeclarativePropertyValueSource
    QDeclarativeScriptString
    QDeclarativeView
)

include_directories(
    ${CMAKE_BINARY_DIR}/include
    ${CMAKE_BINARY_DIR}/privateinclude
    ${CMAKE_BINARY_DIR}/include/QtCore
    ${CMAKE_BINARY_DIR}/include/QtGui
    ${CMAKE_BINARY_DIR}/include/QtNetwork
    ${CMAKE_BINARY_DIR}/include/QtScript
    ${CMAKE_BINARY_DIR}/include/QtDeclarative
    ${CMAKE_SOURCE_DIR}/src/3rdparty/harfbuzz/src
)
set(DECLARATIVE_HEADERS
    ${CMAKE_CURRENT_SOURCE_DIR}/graphicsitems/qdeclarativeitemsmodule_p.h
    ${CMAKE_CURRENT_SOURCE_DIR}/graphicsitems/qdeclarativeanchors_p.h
    ${CMAKE_CURRENT_SOURCE_DIR}/graphicsitems/qdeclarativeanchors_p_p.h
    ${CMAKE_CURRENT_SOURCE_DIR}/graphicsitems/qdeclarativeevents_p_p.h
    ${CMAKE_CURRENT_SOURCE_DIR}/graphicsitems/qdeclarativeflickable_p.h
    ${CMAKE_CURRENT_SOURCE_DIR}/graphicsitems/qdeclarativeflickable_p_p.h
    ${CMAKE_CURRENT_SOURCE_DIR}/graphicsitems/qdeclarativeflipable_p.h
    ${CMAKE_CURRENT_SOURCE_DIR}/graphicsitems/qdeclarativegridview_p.h
    ${CMAKE_CURRENT_SOURCE_DIR}/graphicsitems/qdeclarativeimage_p.h
    ${CMAKE_CURRENT_SOURCE_DIR}/graphicsitems/qdeclarativeimagebase_p.h
    ${CMAKE_CURRENT_SOURCE_DIR}/graphicsitems/qdeclarativeborderimage_p.h
    ${CMAKE_CURRENT_SOURCE_DIR}/graphicsitems/qdeclarativepainteditem_p.h
    ${CMAKE_CURRENT_SOURCE_DIR}/graphicsitems/qdeclarativepainteditem_p_p.h
    ${CMAKE_CURRENT_SOURCE_DIR}/graphicsitems/qdeclarativeimage_p_p.h
    ${CMAKE_CURRENT_SOURCE_DIR}/graphicsitems/qdeclarativeborderimage_p_p.h
    ${CMAKE_CURRENT_SOURCE_DIR}/graphicsitems/qdeclarativeimagebase_p_p.h
    ${CMAKE_CURRENT_SOURCE_DIR}/graphicsitems/qdeclarativeanimatedimage_p.h
    ${CMAKE_CURRENT_SOURCE_DIR}/graphicsitems/qdeclarativeanimatedimage_p_p.h
    ${CMAKE_CURRENT_SOURCE_DIR}/graphicsitems/qdeclarativeitem.h
    ${CMAKE_CURRENT_SOURCE_DIR}/graphicsitems/qdeclarativeitem_p.h
    ${CMAKE_CURRENT_SOURCE_DIR}/graphicsitems/qdeclarativefocuspanel_p.h
    ${CMAKE_CURRENT_SOURCE_DIR}/graphicsitems/qdeclarativefocusscope_p.h
    ${CMAKE_CURRENT_SOURCE_DIR}/graphicsitems/qdeclarativepositioners_p.h
    ${CMAKE_CURRENT_SOURCE_DIR}/graphicsitems/qdeclarativepositioners_p_p.h
    ${CMAKE_CURRENT_SOURCE_DIR}/graphicsitems/qdeclarativeloader_p.h
    ${CMAKE_CURRENT_SOURCE_DIR}/graphicsitems/qdeclarativeloader_p_p.h
    ${CMAKE_CURRENT_SOURCE_DIR}/graphicsitems/qdeclarativemousearea_p.h
    ${CMAKE_CURRENT_SOURCE_DIR}/graphicsitems/qdeclarativemousearea_p_p.h
    ${CMAKE_CURRENT_SOURCE_DIR}/graphicsitems/qdeclarativepath_p.h
    ${CMAKE_CURRENT_SOURCE_DIR}/graphicsitems/qdeclarativepath_p_p.h
    ${CMAKE_CURRENT_SOURCE_DIR}/graphicsitems/qdeclarativepathview_p.h
    ${CMAKE_CURRENT_SOURCE_DIR}/graphicsitems/qdeclarativepathview_p_p.h
    ${CMAKE_CURRENT_SOURCE_DIR}/graphicsitems/qdeclarativerectangle_p.h
    ${CMAKE_CURRENT_SOURCE_DIR}/graphicsitems/qdeclarativerectangle_p_p.h
    ${CMAKE_CURRENT_SOURCE_DIR}/graphicsitems/qdeclarativerepeater_p.h
    ${CMAKE_CURRENT_SOURCE_DIR}/graphicsitems/qdeclarativerepeater_p_p.h
    ${CMAKE_CURRENT_SOURCE_DIR}/graphicsitems/qdeclarativescalegrid_p_p.h
    ${CMAKE_CURRENT_SOURCE_DIR}/graphicsitems/qdeclarativetranslate_p.h
    ${CMAKE_CURRENT_SOURCE_DIR}/graphicsitems/qdeclarativetextinput_p.h
    ${CMAKE_CURRENT_SOURCE_DIR}/graphicsitems/qdeclarativetextinput_p_p.h
    ${CMAKE_CURRENT_SOURCE_DIR}/graphicsitems/qdeclarativetextedit_p.h
    ${CMAKE_CURRENT_SOURCE_DIR}/graphicsitems/qdeclarativetextedit_p_p.h
    ${CMAKE_CURRENT_SOURCE_DIR}/graphicsitems/qdeclarativetext_p.h
    ${CMAKE_CURRENT_SOURCE_DIR}/graphicsitems/qdeclarativetext_p_p.h
    ${CMAKE_CURRENT_SOURCE_DIR}/graphicsitems/qdeclarativevisualitemmodel_p.h
    ${CMAKE_CURRENT_SOURCE_DIR}/graphicsitems/qdeclarativelistview_p.h
    ${CMAKE_CURRENT_SOURCE_DIR}/graphicsitems/qdeclarativelayoutitem_p.h
    ${CMAKE_CURRENT_SOURCE_DIR}/graphicsitems/qdeclarativeitemchangelistener_p.h
    ${CMAKE_CURRENT_SOURCE_DIR}/graphicsitems/qdeclarativegraphicswidget_p.h
    ${CMAKE_CURRENT_SOURCE_DIR}/graphicsitems/qdeclarativeimplicitsizeitem_p.h
    ${CMAKE_CURRENT_SOURCE_DIR}/graphicsitems/qdeclarativeimplicitsizeitem_p_p.h
    ${CMAKE_CURRENT_SOURCE_DIR}/qml/qdeclarativeparser_p.h
    ${CMAKE_CURRENT_SOURCE_DIR}/qml/qdeclarativeglobal_p.h
    ${CMAKE_CURRENT_SOURCE_DIR}/qml/qdeclarativeinstruction_p.h
    ${CMAKE_CURRENT_SOURCE_DIR}/qml/qdeclarativevmemetaobject_p.h
    ${CMAKE_CURRENT_SOURCE_DIR}/qml/qdeclarative.h
    ${CMAKE_CURRENT_SOURCE_DIR}/qml/qdeclarativebinding_p.h
    ${CMAKE_CURRENT_SOURCE_DIR}/qml/qdeclarativebinding_p_p.h
    ${CMAKE_CURRENT_SOURCE_DIR}/qml/qdeclarativeproperty.h
    ${CMAKE_CURRENT_SOURCE_DIR}/qml/qdeclarativecomponent.h
    ${CMAKE_CURRENT_SOURCE_DIR}/qml/qdeclarativecomponent_p.h
    ${CMAKE_CURRENT_SOURCE_DIR}/qml/qdeclarativecustomparser_p.h
    ${CMAKE_CURRENT_SOURCE_DIR}/qml/qdeclarativecustomparser_p_p.h
    ${CMAKE_CURRENT_SOURCE_DIR}/qml/qdeclarativepropertyvaluesource.h
    ${CMAKE_CURRENT_SOURCE_DIR}/qml/qdeclarativepropertyvalueinterceptor.h
    ${CMAKE_CURRENT_SOURCE_DIR}/qml/qdeclarativeboundsignal_p.h
    ${CMAKE_CURRENT_SOURCE_DIR}/qml/qdeclarativeparserstatus.h
    ${CMAKE_CURRENT_SOURCE_DIR}/qml/qdeclarativeproxymetaobject_p.h
    ${CMAKE_CURRENT_SOURCE_DIR}/qml/qdeclarativevme_p.h
    ${CMAKE_CURRENT_SOURCE_DIR}/qml/qdeclarativecompiler_p.h
    ${CMAKE_CURRENT_SOURCE_DIR}/qml/qdeclarativeengine_p.h
    ${CMAKE_CURRENT_SOURCE_DIR}/qml/qdeclarativeexpression_p.h
    ${CMAKE_CURRENT_SOURCE_DIR}/qml/qdeclarativeprivate.h
    ${CMAKE_CURRENT_SOURCE_DIR}/qml/qdeclarativerefcount_p.h
    ${CMAKE_CURRENT_SOURCE_DIR}/qml/qdeclarativemetatype_p.h
    ${CMAKE_CURRENT_SOURCE_DIR}/qml/qdeclarativeengine.h
    ${CMAKE_CURRENT_SOURCE_DIR}/qml/qdeclarativecontext.h
    ${CMAKE_CURRENT_SOURCE_DIR}/qml/qdeclarativeexpression.h
    ${CMAKE_CURRENT_SOURCE_DIR}/qml/qdeclarativestringconverters_p.h
    ${CMAKE_CURRENT_SOURCE_DIR}/qml/qdeclarativeinfo.h
    ${CMAKE_CURRENT_SOURCE_DIR}/qml/qdeclarativeproperty_p.h
    ${CMAKE_CURRENT_SOURCE_DIR}/qml/qdeclarativecontext_p.h
    ${CMAKE_CURRENT_SOURCE_DIR}/qml/qdeclarativeinclude_p.h
    ${CMAKE_CURRENT_SOURCE_DIR}/qml/qdeclarativetypeloader_p.h
    ${CMAKE_CURRENT_SOURCE_DIR}/qml/qdeclarativelist.h
    ${CMAKE_CURRENT_SOURCE_DIR}/qml/qdeclarativelist_p.h
    ${CMAKE_CURRENT_SOURCE_DIR}/qml/qdeclarativedata_p.h
    ${CMAKE_CURRENT_SOURCE_DIR}/qml/qdeclarativeerror.h
    ${CMAKE_CURRENT_SOURCE_DIR}/qml/qdeclarativescriptparser_p.h
    ${CMAKE_CURRENT_SOURCE_DIR}/qml/qdeclarativerewrite_p.h
    ${CMAKE_CURRENT_SOURCE_DIR}/qml/qpodvector_p.h
    ${CMAKE_CURRENT_SOURCE_DIR}/qml/qdeclarativevaluetype_p.h
    ${CMAKE_CURRENT_SOURCE_DIR}/qml/qdeclarativecompiledbindings_p.h
    ${CMAKE_CURRENT_SOURCE_DIR}/qml/qmetaobjectbuilder_p.h
    ${CMAKE_CURRENT_SOURCE_DIR}/qml/qdeclarativecleanup_p.h
    ${CMAKE_CURRENT_SOURCE_DIR}/qml/qdeclarativepropertycache_p.h
    ${CMAKE_CURRENT_SOURCE_DIR}/qml/qdeclarativenotifier_p.h
    ${CMAKE_CURRENT_SOURCE_DIR}/qml/qdeclarativeintegercache_p.h
    ${CMAKE_CURRENT_SOURCE_DIR}/qml/qdeclarativetypenotavailable_p.h
    ${CMAKE_CURRENT_SOURCE_DIR}/qml/qdeclarativetypenamecache_p.h
    ${CMAKE_CURRENT_SOURCE_DIR}/qml/qdeclarativescriptstring.h
    ${CMAKE_CURRENT_SOURCE_DIR}/qml/qdeclarativeobjectscriptclass_p.h
    ${CMAKE_CURRENT_SOURCE_DIR}/qml/qdeclarativecontextscriptclass_p.h
    ${CMAKE_CURRENT_SOURCE_DIR}/qml/qdeclarativeglobalscriptclass_p.h
    ${CMAKE_CURRENT_SOURCE_DIR}/qml/qdeclarativevaluetypescriptclass_p.h
    ${CMAKE_CURRENT_SOURCE_DIR}/qml/qdeclarativetypenamescriptclass_p.h
    ${CMAKE_CURRENT_SOURCE_DIR}/qml/qdeclarativelistscriptclass_p.h
    ${CMAKE_CURRENT_SOURCE_DIR}/qml/qdeclarativeworkerscript_p.h
    ${CMAKE_CURRENT_SOURCE_DIR}/qml/qdeclarativeguard_p.h
    ${CMAKE_CURRENT_SOURCE_DIR}/qml/qdeclarativeimageprovider.h
    ${CMAKE_CURRENT_SOURCE_DIR}/qml/qdeclarativedirparser_p.h
    ${CMAKE_CURRENT_SOURCE_DIR}/qml/qdeclarativeextensioninterface.h
    ${CMAKE_CURRENT_SOURCE_DIR}/qml/qdeclarativeimport_p.h
    ${CMAKE_CURRENT_SOURCE_DIR}/qml/qdeclarativeextensionplugin.h
    ${CMAKE_CURRENT_SOURCE_DIR}/qml/parser/qdeclarativejsast_p.h
    ${CMAKE_CURRENT_SOURCE_DIR}/qml/parser/qdeclarativejsastfwd_p.h
    ${CMAKE_CURRENT_SOURCE_DIR}/qml/parser/qdeclarativejsastvisitor_p.h
    ${CMAKE_CURRENT_SOURCE_DIR}/qml/parser/qdeclarativejsengine_p.h
    ${CMAKE_CURRENT_SOURCE_DIR}/qml/parser/qdeclarativejsgrammar_p.h
    ${CMAKE_CURRENT_SOURCE_DIR}/qml/parser/qdeclarativejslexer_p.h
    ${CMAKE_CURRENT_SOURCE_DIR}/qml/parser/qdeclarativejsmemorypool_p.h
    ${CMAKE_CURRENT_SOURCE_DIR}/qml/parser/qdeclarativejsnodepool_p.h
    ${CMAKE_CURRENT_SOURCE_DIR}/qml/parser/qdeclarativejsparser_p.h
    ${CMAKE_CURRENT_SOURCE_DIR}/qml/rewriter/textwriter_p.h
    ${CMAKE_CURRENT_SOURCE_DIR}/util/qdeclarativeapplication_p.h
    ${CMAKE_CURRENT_SOURCE_DIR}/util/qdeclarativeutilmodule_p.h
    ${CMAKE_CURRENT_SOURCE_DIR}/util/qdeclarativeview.h
    ${CMAKE_CURRENT_SOURCE_DIR}/util/qdeclarativeconnections_p.h
    ${CMAKE_CURRENT_SOURCE_DIR}/util/qdeclarativepackage_p.h
    ${CMAKE_CURRENT_SOURCE_DIR}/util/qdeclarativeanimation_p.h
    ${CMAKE_CURRENT_SOURCE_DIR}/util/qdeclarativeanimation_p_p.h
    ${CMAKE_CURRENT_SOURCE_DIR}/util/qdeclarativesystempalette_p.h
    ${CMAKE_CURRENT_SOURCE_DIR}/util/qdeclarativespringanimation_p.h
    ${CMAKE_CURRENT_SOURCE_DIR}/util/qdeclarativesmoothedanimation_p.h
    ${CMAKE_CURRENT_SOURCE_DIR}/util/qdeclarativesmoothedanimation_p_p.h
    ${CMAKE_CURRENT_SOURCE_DIR}/util/qdeclarativestate_p.h
    ${CMAKE_CURRENT_SOURCE_DIR}/util/qdeclarativestateoperations_p.h
    ${CMAKE_CURRENT_SOURCE_DIR}/util/qdeclarativepropertychanges_p.h
    ${CMAKE_CURRENT_SOURCE_DIR}/util/qdeclarativestate_p_p.h
    ${CMAKE_CURRENT_SOURCE_DIR}/util/qdeclarativetransitionmanager_p_p.h
    ${CMAKE_CURRENT_SOURCE_DIR}/util/qdeclarativestategroup_p.h
    ${CMAKE_CURRENT_SOURCE_DIR}/util/qdeclarativetransition_p.h
    ${CMAKE_CURRENT_SOURCE_DIR}/util/qdeclarativelistmodel_p.h
    ${CMAKE_CURRENT_SOURCE_DIR}/util/qdeclarativelistmodel_p_p.h
    ${CMAKE_CURRENT_SOURCE_DIR}/util/qdeclarativelistaccessor_p.h
    ${CMAKE_CURRENT_SOURCE_DIR}/util/qdeclarativeopenmetaobject_p.h
    ${CMAKE_CURRENT_SOURCE_DIR}/util/qdeclarativenullablevalue_p_p.h
    ${CMAKE_CURRENT_SOURCE_DIR}/util/qdeclarativetimeline_p_p.h
    ${CMAKE_CURRENT_SOURCE_DIR}/util/qdeclarativetimer_p.h
    ${CMAKE_CURRENT_SOURCE_DIR}/util/qdeclarativebind_p.h
    ${CMAKE_CURRENT_SOURCE_DIR}/util/qdeclarativepropertymap.h
    ${CMAKE_CURRENT_SOURCE_DIR}/util/qdeclarativepixmapcache_p.h
    ${CMAKE_CURRENT_SOURCE_DIR}/util/qdeclarativebehavior_p.h
    ${CMAKE_CURRENT_SOURCE_DIR}/util/qdeclarativestyledtext_p.h
    ${CMAKE_CURRENT_SOURCE_DIR}/util/qdeclarativelistmodelworkeragent_p.h
    ${CMAKE_CURRENT_SOURCE_DIR}/util/qlistmodelinterface_p.h
    ${CMAKE_CURRENT_SOURCE_DIR}/qdeclarativecommon_p.h
)

set(DECLARATIVE_SOURCES
    ${CMAKE_CURRENT_SOURCE_DIR}/graphicsitems/qdeclarativeitemsmodule.cpp
    ${CMAKE_CURRENT_SOURCE_DIR}/graphicsitems/qdeclarativeanchors.cpp
    ${CMAKE_CURRENT_SOURCE_DIR}/graphicsitems/qdeclarativeevents.cpp
    ${CMAKE_CURRENT_SOURCE_DIR}/graphicsitems/qdeclarativeflickable.cpp
    ${CMAKE_CURRENT_SOURCE_DIR}/graphicsitems/qdeclarativeflipable.cpp
    ${CMAKE_CURRENT_SOURCE_DIR}/graphicsitems/qdeclarativegridview.cpp
    ${CMAKE_CURRENT_SOURCE_DIR}/graphicsitems/qdeclarativeimage.cpp
    ${CMAKE_CURRENT_SOURCE_DIR}/graphicsitems/qdeclarativeborderimage.cpp
    ${CMAKE_CURRENT_SOURCE_DIR}/graphicsitems/qdeclarativeimagebase.cpp
    ${CMAKE_CURRENT_SOURCE_DIR}/graphicsitems/qdeclarativeanimatedimage.cpp
    ${CMAKE_CURRENT_SOURCE_DIR}/graphicsitems/qdeclarativepainteditem.cpp
    ${CMAKE_CURRENT_SOURCE_DIR}/graphicsitems/qdeclarativeitem.cpp
    ${CMAKE_CURRENT_SOURCE_DIR}/graphicsitems/qdeclarativefocuspanel.cpp
    ${CMAKE_CURRENT_SOURCE_DIR}/graphicsitems/qdeclarativefocusscope.cpp
    ${CMAKE_CURRENT_SOURCE_DIR}/graphicsitems/qdeclarativepositioners.cpp
    ${CMAKE_CURRENT_SOURCE_DIR}/graphicsitems/qdeclarativeloader.cpp
    ${CMAKE_CURRENT_SOURCE_DIR}/graphicsitems/qdeclarativemousearea.cpp
    ${CMAKE_CURRENT_SOURCE_DIR}/graphicsitems/qdeclarativepath.cpp
    ${CMAKE_CURRENT_SOURCE_DIR}/graphicsitems/qdeclarativepathview.cpp
    ${CMAKE_CURRENT_SOURCE_DIR}/graphicsitems/qdeclarativerectangle.cpp
    ${CMAKE_CURRENT_SOURCE_DIR}/graphicsitems/qdeclarativerepeater.cpp
    ${CMAKE_CURRENT_SOURCE_DIR}/graphicsitems/qdeclarativescalegrid.cpp
    ${CMAKE_CURRENT_SOURCE_DIR}/graphicsitems/qdeclarativetranslate.cpp
    ${CMAKE_CURRENT_SOURCE_DIR}/graphicsitems/qdeclarativetextinput.cpp
    ${CMAKE_CURRENT_SOURCE_DIR}/graphicsitems/qdeclarativetext.cpp
    ${CMAKE_CURRENT_SOURCE_DIR}/graphicsitems/qdeclarativetextedit.cpp
    ${CMAKE_CURRENT_SOURCE_DIR}/graphicsitems/qdeclarativevisualitemmodel.cpp
    ${CMAKE_CURRENT_SOURCE_DIR}/graphicsitems/qdeclarativelistview.cpp
    ${CMAKE_CURRENT_SOURCE_DIR}/graphicsitems/qdeclarativelayoutitem.cpp
    ${CMAKE_CURRENT_SOURCE_DIR}/graphicsitems/qdeclarativegraphicswidget.cpp
    ${CMAKE_CURRENT_SOURCE_DIR}/graphicsitems/qdeclarativeimplicitsizeitem.cpp
    ${CMAKE_CURRENT_SOURCE_DIR}/qml/qdeclarativeparser.cpp
    ${CMAKE_CURRENT_SOURCE_DIR}/qml/qdeclarativeinstruction.cpp
    ${CMAKE_CURRENT_SOURCE_DIR}/qml/qdeclarativevmemetaobject.cpp
    ${CMAKE_CURRENT_SOURCE_DIR}/qml/qdeclarativeengine.cpp
    ${CMAKE_CURRENT_SOURCE_DIR}/qml/qdeclarativeexpression.cpp
    ${CMAKE_CURRENT_SOURCE_DIR}/qml/qdeclarativebinding.cpp
    ${CMAKE_CURRENT_SOURCE_DIR}/qml/qdeclarativeproperty.cpp
    ${CMAKE_CURRENT_SOURCE_DIR}/qml/qdeclarativecomponent.cpp
    ${CMAKE_CURRENT_SOURCE_DIR}/qml/qdeclarativecontext.cpp
    ${CMAKE_CURRENT_SOURCE_DIR}/qml/qdeclarativeinclude.cpp
    ${CMAKE_CURRENT_SOURCE_DIR}/qml/qdeclarativecustomparser.cpp
    ${CMAKE_CURRENT_SOURCE_DIR}/qml/qdeclarativepropertyvaluesource.cpp
    ${CMAKE_CURRENT_SOURCE_DIR}/qml/qdeclarativepropertyvalueinterceptor.cpp
    ${CMAKE_CURRENT_SOURCE_DIR}/qml/qdeclarativeproxymetaobject.cpp
    ${CMAKE_CURRENT_SOURCE_DIR}/qml/qdeclarativevme.cpp
    ${CMAKE_CURRENT_SOURCE_DIR}/qml/qdeclarativecompiler.cpp
    ${CMAKE_CURRENT_SOURCE_DIR}/qml/qdeclarativecompileddata.cpp
    ${CMAKE_CURRENT_SOURCE_DIR}/qml/qdeclarativeboundsignal.cpp
    ${CMAKE_CURRENT_SOURCE_DIR}/qml/qdeclarativerefcount.cpp
    ${CMAKE_CURRENT_SOURCE_DIR}/qml/qdeclarativemetatype.cpp
    ${CMAKE_CURRENT_SOURCE_DIR}/qml/qdeclarativestringconverters.cpp
    ${CMAKE_CURRENT_SOURCE_DIR}/qml/qdeclarativeparserstatus.cpp
    ${CMAKE_CURRENT_SOURCE_DIR}/qml/qdeclarativetypeloader.cpp
    ${CMAKE_CURRENT_SOURCE_DIR}/qml/qdeclarativeinfo.cpp
    ${CMAKE_CURRENT_SOURCE_DIR}/qml/qdeclarativeerror.cpp
    ${CMAKE_CURRENT_SOURCE_DIR}/qml/qdeclarativescriptparser.cpp
    ${CMAKE_CURRENT_SOURCE_DIR}/qml/qdeclarativerewrite.cpp
    ${CMAKE_CURRENT_SOURCE_DIR}/qml/qdeclarativevaluetype.cpp
    ${CMAKE_CURRENT_SOURCE_DIR}/qml/qdeclarativecompiledbindings.cpp
    ${CMAKE_CURRENT_SOURCE_DIR}/qml/qmetaobjectbuilder.cpp
    ${CMAKE_CURRENT_SOURCE_DIR}/qml/qdeclarativecleanup.cpp
    ${CMAKE_CURRENT_SOURCE_DIR}/qml/qdeclarativepropertycache.cpp
    ${CMAKE_CURRENT_SOURCE_DIR}/qml/qdeclarativenotifier.cpp
    ${CMAKE_CURRENT_SOURCE_DIR}/qml/qdeclarativeintegercache.cpp
    ${CMAKE_CURRENT_SOURCE_DIR}/qml/qdeclarativetypenotavailable.cpp
    ${CMAKE_CURRENT_SOURCE_DIR}/qml/qdeclarativetypenamecache.cpp
    ${CMAKE_CURRENT_SOURCE_DIR}/qml/qdeclarativescriptstring.cpp
    ${CMAKE_CURRENT_SOURCE_DIR}/qml/qdeclarativeobjectscriptclass.cpp
    ${CMAKE_CURRENT_SOURCE_DIR}/qml/qdeclarativecontextscriptclass.cpp
    ${CMAKE_CURRENT_SOURCE_DIR}/qml/qdeclarativeglobalscriptclass.cpp
    ${CMAKE_CURRENT_SOURCE_DIR}/qml/qdeclarativevaluetypescriptclass.cpp
    ${CMAKE_CURRENT_SOURCE_DIR}/qml/qdeclarativetypenamescriptclass.cpp
    ${CMAKE_CURRENT_SOURCE_DIR}/qml/qdeclarativelistscriptclass.cpp
    ${CMAKE_CURRENT_SOURCE_DIR}/qml/qdeclarativeworkerscript.cpp
    ${CMAKE_CURRENT_SOURCE_DIR}/qml/qdeclarativeimageprovider.cpp
    ${CMAKE_CURRENT_SOURCE_DIR}/qml/qdeclarativedirparser.cpp
    ${CMAKE_CURRENT_SOURCE_DIR}/qml/qdeclarativeextensionplugin.cpp
    ${CMAKE_CURRENT_SOURCE_DIR}/qml/qdeclarativeimport.cpp
    ${CMAKE_CURRENT_SOURCE_DIR}/qml/qdeclarativelist.cpp
    ${CMAKE_CURRENT_SOURCE_DIR}/qml/parser/qdeclarativejsast.cpp
    ${CMAKE_CURRENT_SOURCE_DIR}/qml/parser/qdeclarativejsastvisitor.cpp
    ${CMAKE_CURRENT_SOURCE_DIR}/qml/parser/qdeclarativejsengine_p.cpp
    ${CMAKE_CURRENT_SOURCE_DIR}/qml/parser/qdeclarativejsgrammar.cpp
    ${CMAKE_CURRENT_SOURCE_DIR}/qml/parser/qdeclarativejslexer.cpp
    ${CMAKE_CURRENT_SOURCE_DIR}/qml/parser/qdeclarativejsparser.cpp
    ${CMAKE_CURRENT_SOURCE_DIR}/qml/rewriter/textwriter.cpp
    ${CMAKE_CURRENT_SOURCE_DIR}/util/qdeclarativeapplication.cpp
    ${CMAKE_CURRENT_SOURCE_DIR}/util/qdeclarativeutilmodule.cpp
    ${CMAKE_CURRENT_SOURCE_DIR}/util/qdeclarativeview.cpp
    ${CMAKE_CURRENT_SOURCE_DIR}/util/qdeclarativeconnections.cpp
    ${CMAKE_CURRENT_SOURCE_DIR}/util/qdeclarativepackage.cpp
    ${CMAKE_CURRENT_SOURCE_DIR}/util/qdeclarativeanimation.cpp
    ${CMAKE_CURRENT_SOURCE_DIR}/util/qdeclarativesystempalette.cpp
    ${CMAKE_CURRENT_SOURCE_DIR}/util/qdeclarativespringanimation.cpp
    ${CMAKE_CURRENT_SOURCE_DIR}/util/qdeclarativesmoothedanimation.cpp
    ${CMAKE_CURRENT_SOURCE_DIR}/util/qdeclarativestate.cpp
    ${CMAKE_CURRENT_SOURCE_DIR}/util/qdeclarativetransitionmanager.cpp
    ${CMAKE_CURRENT_SOURCE_DIR}/util/qdeclarativestateoperations.cpp
    ${CMAKE_CURRENT_SOURCE_DIR}/util/qdeclarativepropertychanges.cpp
    ${CMAKE_CURRENT_SOURCE_DIR}/util/qdeclarativestategroup.cpp
    ${CMAKE_CURRENT_SOURCE_DIR}/util/qdeclarativetransition.cpp
    ${CMAKE_CURRENT_SOURCE_DIR}/util/qdeclarativelistmodel.cpp
    ${CMAKE_CURRENT_SOURCE_DIR}/util/qdeclarativelistaccessor.cpp
    ${CMAKE_CURRENT_SOURCE_DIR}/util/qdeclarativeopenmetaobject.cpp
    ${CMAKE_CURRENT_SOURCE_DIR}/util/qdeclarativetimeline.cpp
    ${CMAKE_CURRENT_SOURCE_DIR}/util/qdeclarativetimer.cpp
    ${CMAKE_CURRENT_SOURCE_DIR}/util/qdeclarativebind.cpp
    ${CMAKE_CURRENT_SOURCE_DIR}/util/qdeclarativepropertymap.cpp
    ${CMAKE_CURRENT_SOURCE_DIR}/util/qdeclarativepixmapcache.cpp
    ${CMAKE_CURRENT_SOURCE_DIR}/util/qdeclarativebehavior.cpp
    ${CMAKE_CURRENT_SOURCE_DIR}/util/qdeclarativestyledtext.cpp
    ${CMAKE_CURRENT_SOURCE_DIR}/util/qdeclarativelistmodelworkeragent.cpp
    ${CMAKE_CURRENT_SOURCE_DIR}/util/qlistmodelinterface.cpp
)

katie_generate_misc("${DECLARATIVE_HEADERS}" QtDeclarative)
katie_generate_public("${DECLARATIVE_PUBLIC_HEADERS}" QtDeclarative)
katie_generate_package(KtDeclarative "KtCore KtGui KtNetwork KtScript")
katie_setup_target(KtDeclarative ${DECLARATIVE_SOURCES} ${DECLARATIVE_HEADERS})

add_library(KtDeclarative ${KATIE_TYPE} ${KtDeclarative_SOURCES})
target_link_libraries(KtDeclarative PRIVATE ${EXTRA_DECLARATIVE_LIBS})
set_target_properties(KtDeclarative PROPERTIES
    VERSION ${KATIE_MAJOR}.${KATIE_MINOR}
    SOVERSION ${KATIE_VERSION}
    EXPORT_NAME Declarative
)

install(
    TARGETS KtDeclarative
    EXPORT KatieTargets
    DESTINATION ${KATIE_LIBRARIES_PATH}
    COMPONENT Runtime
)

install(
    DIRECTORY ${CMAKE_BINARY_DIR}/include/QtDeclarative
    DESTINATION ${KATIE_HEADERS_PATH}
    COMPONENT Devel
)

katie_optimize_headers(${KATIE_HEADERS_PATH}/QtDeclarative)
