summaryrefslogtreecommitdiffstats
path: root/Source/WebKit/PlatformQt.cmake
diff options
context:
space:
mode:
authorKonstantin Tokarev <annulen@yandex.ru>2016-08-25 19:20:41 +0300
committerKonstantin Tokarev <annulen@yandex.ru>2017-02-02 12:30:55 +0000
commit6882a04fb36642862b11efe514251d32070c3d65 (patch)
treeb7959826000b061fd5ccc7512035c7478742f7b0 /Source/WebKit/PlatformQt.cmake
parentab6df191029eeeb0b0f16f127d553265659f739e (diff)
Imported QtWebKit TP3 (git b57bc6801f1876c3220d5a4bfea33d620d477443)
Change-Id: I3b1d8a2808782c9f34d50240000e20cb38d3680f Reviewed-by: Konstantin Tokarev <annulen@yandex.ru>
Diffstat (limited to 'Source/WebKit/PlatformQt.cmake')
-rw-r--r--Source/WebKit/PlatformQt.cmake645
1 files changed, 645 insertions, 0 deletions
diff --git a/Source/WebKit/PlatformQt.cmake b/Source/WebKit/PlatformQt.cmake
new file mode 100644
index 000000000..a403cb826
--- /dev/null
+++ b/Source/WebKit/PlatformQt.cmake
@@ -0,0 +1,645 @@
+include(ECMGenerateHeaders)
+include(ECMGeneratePkgConfigFile)
+include(ECMGeneratePriFile)
+
+macro(generate_header _file _var _content)
+ file(GENERATE OUTPUT ${_file} CONTENT ${_content})
+ list(APPEND ${_var} ${_file})
+ set_source_files_properties(${_file} PROPERTIES GENERATED TRUE)
+endmacro()
+
+list(APPEND WebKit_INCLUDE_DIRECTORIES
+ "${WEBCORE_DIR}"
+ "${DERIVED_SOURCES_DIR}"
+ "${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}"
+ "${DERIVED_SOURCES_WEBCORE_DIR}"
+ "${JAVASCRIPTCORE_DIR}"
+
+ # Copied from WebCore/CMakeLists.txt
+ "${WEBCORE_DIR}/Modules/airplay"
+ "${WEBCORE_DIR}/Modules/battery"
+ "${WEBCORE_DIR}/Modules/encryptedmedia"
+ "${WEBCORE_DIR}/Modules/fetch"
+ "${WEBCORE_DIR}/Modules/geolocation"
+ "${WEBCORE_DIR}/Modules/indexeddb"
+ "${WEBCORE_DIR}/Modules/indexeddb/client"
+ "${WEBCORE_DIR}/Modules/indexeddb/legacy"
+ "${WEBCORE_DIR}/Modules/indexeddb/server"
+ "${WEBCORE_DIR}/Modules/indexeddb/shared"
+ "${WEBCORE_DIR}/Modules/indieui"
+ "${WEBCORE_DIR}/Modules/mediacontrols/"
+ "${WEBCORE_DIR}/Modules/mediasession"
+ "${WEBCORE_DIR}/Modules/mediasource"
+ "${WEBCORE_DIR}/Modules/mediastream"
+ "${WEBCORE_DIR}/Modules/navigatorcontentutils"
+ "${WEBCORE_DIR}/Modules/notifications"
+ "${WEBCORE_DIR}/Modules/plugins"
+ "${WEBCORE_DIR}/Modules/proximity"
+ "${WEBCORE_DIR}/Modules/quota"
+ "${WEBCORE_DIR}/Modules/speech"
+ "${WEBCORE_DIR}/Modules/streams"
+ "${WEBCORE_DIR}/Modules/vibration"
+ "${WEBCORE_DIR}/Modules/webaudio"
+ "${WEBCORE_DIR}/Modules/webdatabase"
+ "${WEBCORE_DIR}/Modules/websockets"
+ "${WEBCORE_DIR}/accessibility"
+ "${WEBCORE_DIR}/bindings"
+ "${WEBCORE_DIR}/bindings/generic"
+ "${WEBCORE_DIR}/bindings/js"
+ "${WEBCORE_DIR}/bridge"
+ "${WEBCORE_DIR}/bridge/c"
+ "${WEBCORE_DIR}/bridge/jsc"
+ "${WEBCORE_DIR}/contentextensions"
+ "${WEBCORE_DIR}/crypto"
+ "${WEBCORE_DIR}/crypto/algorithms"
+ "${WEBCORE_DIR}/crypto/keys"
+ "${WEBCORE_DIR}/crypto/parameters"
+ "${WEBCORE_DIR}/css"
+ "${WEBCORE_DIR}/cssjit"
+ "${WEBCORE_DIR}/dom"
+ "${WEBCORE_DIR}/dom/default"
+ "${WEBCORE_DIR}/editing"
+ "${WEBCORE_DIR}/fileapi"
+ "${WEBCORE_DIR}/history"
+ "${WEBCORE_DIR}/html"
+ "${WEBCORE_DIR}/html/canvas"
+ "${WEBCORE_DIR}/html/forms"
+ "${WEBCORE_DIR}/html/parser"
+ "${WEBCORE_DIR}/html/shadow"
+ "${WEBCORE_DIR}/html/track"
+ "${WEBCORE_DIR}/inspector"
+ "${WEBCORE_DIR}/loader"
+ "${WEBCORE_DIR}/loader/appcache"
+ "${WEBCORE_DIR}/loader/archive"
+ "${WEBCORE_DIR}/loader/archive/mhtml"
+ "${WEBCORE_DIR}/loader/cache"
+ "${WEBCORE_DIR}/loader/icon"
+ "${WEBCORE_DIR}/mathml"
+ "${WEBCORE_DIR}/page"
+ "${WEBCORE_DIR}/page/animation"
+ "${WEBCORE_DIR}/page/csp"
+ "${WEBCORE_DIR}/page/scrolling"
+ "${WEBCORE_DIR}/platform"
+ "${WEBCORE_DIR}/platform/animation"
+ "${WEBCORE_DIR}/platform/audio"
+ "${WEBCORE_DIR}/platform/graphics"
+ "${WEBCORE_DIR}/platform/graphics/cpu/arm"
+ "${WEBCORE_DIR}/platform/graphics/cpu/arm/filters"
+ "${WEBCORE_DIR}/platform/graphics/displaylists"
+ "${WEBCORE_DIR}/platform/graphics/filters"
+ "${WEBCORE_DIR}/platform/graphics/filters/texmap"
+ "${WEBCORE_DIR}/platform/graphics/harfbuzz"
+ "${WEBCORE_DIR}/platform/graphics/harfbuzz/ng"
+ "${WEBCORE_DIR}/platform/graphics/opentype"
+ "${WEBCORE_DIR}/platform/graphics/texmap"
+ "${WEBCORE_DIR}/platform/graphics/transforms"
+ "${WEBCORE_DIR}/platform/image-decoders"
+ "${WEBCORE_DIR}/platform/image-decoders/bmp"
+ "${WEBCORE_DIR}/platform/image-decoders/gif"
+ "${WEBCORE_DIR}/platform/image-decoders/ico"
+ "${WEBCORE_DIR}/platform/image-decoders/jpeg"
+ "${WEBCORE_DIR}/platform/image-decoders/png"
+ "${WEBCORE_DIR}/platform/image-decoders/webp"
+ "${WEBCORE_DIR}/platform/mediastream"
+ "${WEBCORE_DIR}/platform/mock"
+ "${WEBCORE_DIR}/platform/mock/mediasource"
+ "${WEBCORE_DIR}/platform/network"
+ "${WEBCORE_DIR}/platform/sql"
+ "${WEBCORE_DIR}/platform/text"
+ "${WEBCORE_DIR}/platform/text/icu"
+ "${WEBCORE_DIR}/plugins"
+ "${WEBCORE_DIR}/rendering"
+ "${WEBCORE_DIR}/rendering/line"
+ "${WEBCORE_DIR}/rendering/mathml"
+ "${WEBCORE_DIR}/rendering/shapes"
+ "${WEBCORE_DIR}/rendering/style"
+ "${WEBCORE_DIR}/rendering/svg"
+ "${WEBCORE_DIR}/replay"
+ "${WEBCORE_DIR}/storage"
+ "${WEBCORE_DIR}/style"
+ "${WEBCORE_DIR}/svg"
+ "${WEBCORE_DIR}/svg/animation"
+ "${WEBCORE_DIR}/svg/graphics"
+ "${WEBCORE_DIR}/svg/graphics/filters"
+ "${WEBCORE_DIR}/svg/properties"
+ "${WEBCORE_DIR}/testing/js"
+ "${WEBCORE_DIR}/websockets"
+ "${WEBCORE_DIR}/workers"
+ "${WEBCORE_DIR}/xml"
+ "${WEBCORE_DIR}/xml/parser"
+
+ "${WEBCORE_DIR}/bridge/qt"
+ "${WEBCORE_DIR}/history/qt"
+ "${WEBCORE_DIR}/platform"
+ "${WEBCORE_DIR}/platform/animation"
+ "${WEBCORE_DIR}/platform/qt"
+ "${WEBCORE_DIR}/platform/audio/qt"
+ "${WEBCORE_DIR}/platform/graphics"
+ "${WEBCORE_DIR}/platform/graphics/qt"
+ "${WEBCORE_DIR}/platform/graphics/gpu/qt"
+ "${WEBCORE_DIR}/platform/graphics/surfaces/qt"
+ "${WEBCORE_DIR}/platform/network"
+ "${WEBCORE_DIR}/platform/network/qt"
+ "${WEBCORE_DIR}/platform/text/qt"
+ "${WEBCORE_DIR}/rendering"
+ "${WEBCORE_DIR}/rendering/style"
+
+ "${WEBKIT_DIR}/.."
+ "${WEBKIT_DIR}/Storage"
+ "${WEBKIT_DIR}/qt"
+ "${WEBKIT_DIR}/qt/Api"
+ "${WEBKIT_DIR}/qt/WebCoreSupport"
+ "${WEBKIT_DIR}/win/Plugins"
+
+ "${WTF_DIR}"
+)
+
+# This files are not really port-independent
+list(REMOVE_ITEM WebKit_SOURCES
+ WebCoreSupport/WebViewGroup.cpp
+)
+
+list(APPEND WebKit_SOURCES
+ qt/Api/qhttpheader.cpp
+ qt/Api/qwebdatabase.cpp
+ qt/Api/qwebelement.cpp
+ qt/Api/qwebhistory.cpp
+ qt/Api/qwebhistoryinterface.cpp
+ qt/Api/qwebkitglobal.cpp
+ qt/Api/qwebplugindatabase.cpp
+ qt/Api/qwebpluginfactory.cpp
+ qt/Api/qwebscriptworld.cpp
+ qt/Api/qwebsecurityorigin.cpp
+ qt/Api/qwebsettings.cpp
+
+ qt/WebCoreSupport/ChromeClientQt.cpp
+ qt/WebCoreSupport/ContextMenuClientQt.cpp
+ qt/WebCoreSupport/DragClientQt.cpp
+ qt/WebCoreSupport/EditorClientQt.cpp
+ qt/WebCoreSupport/FrameLoaderClientQt.cpp
+ qt/WebCoreSupport/FrameNetworkingContextQt.cpp
+ qt/WebCoreSupport/HistorySerialization.cpp
+ qt/WebCoreSupport/IconDatabaseClientQt.cpp
+ qt/WebCoreSupport/InitWebCoreQt.cpp
+ qt/WebCoreSupport/InspectorClientQt.cpp
+ qt/WebCoreSupport/InspectorServerQt.cpp
+ qt/WebCoreSupport/NotificationPresenterClientQt.cpp
+ qt/WebCoreSupport/PlatformStrategiesQt.cpp
+ qt/WebCoreSupport/PopupMenuQt.cpp
+ qt/WebCoreSupport/ProgressTrackerClientQt.cpp
+ qt/WebCoreSupport/QWebFrameAdapter.cpp
+ qt/WebCoreSupport/QWebPageAdapter.cpp
+ qt/WebCoreSupport/QtPlatformPlugin.cpp
+ qt/WebCoreSupport/QtPluginWidgetAdapter.cpp
+ qt/WebCoreSupport/QtPrintContext.cpp
+ qt/WebCoreSupport/SearchPopupMenuQt.cpp
+ qt/WebCoreSupport/TextCheckerClientQt.cpp
+ qt/WebCoreSupport/TextureMapperLayerClientQt.cpp
+ qt/WebCoreSupport/UndoStepQt.cpp
+ qt/WebCoreSupport/VisitedLinkStoreQt.cpp
+ qt/WebCoreSupport/WebDatabaseProviderQt.cpp
+ qt/WebCoreSupport/WebEventConversion.cpp
+
+ win/Plugins/PluginDatabase.cpp
+ win/Plugins/PluginDebug.cpp
+ win/Plugins/PluginPackage.cpp
+ win/Plugins/PluginStream.cpp
+ win/Plugins/PluginView.cpp
+)
+
+# Note: Qt5Network_INCLUDE_DIRS includes Qt5Core_INCLUDE_DIRS
+list(APPEND WebKit_SYSTEM_INCLUDE_DIRECTORIES
+ ${Qt5Gui_INCLUDE_DIRS}
+ ${Qt5Gui_PRIVATE_INCLUDE_DIRS}
+ ${Qt5Network_INCLUDE_DIRS}
+ ${Qt5Positioning_INCLUDE_DIRS}
+)
+# Build the include path with duplicates removed
+list(REMOVE_DUPLICATES WebKit_SYSTEM_INCLUDE_DIRECTORIES)
+
+list(APPEND WebKit_LIBRARIES
+ PRIVATE
+ ${ICU_LIBRARIES}
+ ${Qt5Positioning_LIBRARIES}
+ ${X11_X11_LIB}
+ ${X11_Xcomposite_LIB}
+ ${X11_Xrender_LIB}
+ PUBLIC
+ ${Qt5Core_LIBRARIES}
+ ${Qt5Gui_LIBRARIES}
+ ${Qt5Network_LIBRARIES}
+)
+
+if (ENABLE_GEOLOCATION)
+ list(APPEND WebKit_SOURCES
+ qt/WebCoreSupport/GeolocationClientQt.cpp
+ qt/WebCoreSupport/GeolocationPermissionClientQt.cpp
+ )
+endif ()
+
+if (USE_QT_MULTIMEDIA)
+ qt_wrap_cpp(WebKit WebKit_SOURCES
+ qt/Api/qwebfullscreenvideohandler.h
+ )
+ list(APPEND WebKit_SOURCES
+ qt/WebCoreSupport/FullScreenVideoQt.cpp
+ )
+endif ()
+
+if (ENABLE_TEST_SUPPORT)
+ list(APPEND WebKit_SOURCES
+ qt/WebCoreSupport/DumpRenderTreeSupportQt.cpp
+ qt/WebCoreSupport/QtTestSupport.cpp
+ )
+ if (SHARED_CORE)
+ list(APPEND WebKit_LIBRARIES PUBLIC WebCoreTestSupport)
+ install(TARGETS WebCoreTestSupport EXPORT WebKitTargets
+ DESTINATION "${LIB_INSTALL_DIR}")
+ else ()
+ list(APPEND WebKit_LIBRARIES PRIVATE WebCoreTestSupport)
+ endif ()
+endif ()
+
+if (ENABLE_NETSCAPE_PLUGIN_API)
+ list(APPEND WebKit_SOURCES
+ win/Plugins/PluginMainThreadScheduler.cpp
+ win/Plugins/npapi.cpp
+ )
+
+ if (UNIX AND NOT APPLE)
+ list(APPEND WebKit_SOURCES
+ qt/Plugins/PluginPackageQt.cpp
+ qt/Plugins/PluginViewQt.cpp
+ )
+ endif ()
+
+ if (PLUGIN_BACKEND_XLIB)
+ list(APPEND WebKit_SOURCES
+ qt/Plugins/QtX11ImageConversion.cpp
+ )
+ endif ()
+
+ if (WIN32)
+ list(APPEND WebKit_INCLUDE_DIRECTORIES
+ ${WEBCORE_DIR}/platform/win
+ )
+
+ list(APPEND WebKit_SOURCES
+ win/Plugins/PluginDatabaseWin.cpp
+ win/Plugins/PluginMessageThrottlerWin.cpp
+ win/Plugins/PluginPackageWin.cpp
+ win/Plugins/PluginViewWin.cpp
+ )
+ endif ()
+else ()
+ list(APPEND WebKit_SOURCES
+ qt/Plugins/PluginPackageNone.cpp
+ qt/Plugins/PluginViewNone.cpp
+ )
+endif ()
+
+# Resources have to be included directly in the final binary.
+# The linker won't pick them from a static library since they aren't referenced.
+if (NOT SHARED_CORE)
+ qt5_add_resources(WebKit_SOURCES
+ "${WEBCORE_DIR}/WebCore.qrc"
+ )
+
+ if (ENABLE_INSPECTOR_UI)
+ include("${CMAKE_SOURCE_DIR}/Source/WebInspectorUI/PlatformQt.cmake")
+ list(APPEND WebKit_SOURCES
+ "${DERIVED_SOURCES_WEBINSPECTORUI_DIR}/qrc_WebInspector.cpp"
+ )
+ endif ()
+endif ()
+
+WEBKIT_CREATE_FORWARDING_HEADERS(QtWebKit DIRECTORIES qt/Api)
+
+ecm_generate_headers(
+ QtWebKit_FORWARDING_HEADERS
+ HEADER_NAMES
+ QWebDatabase
+ QWebElement,QWebElementCollection
+ QWebHistory,QWebHistoryItem
+ QWebHistoryInterface
+ QWebKitPlatformPlugin,QWebHapticFeedbackPlayer,QWebFullScreenVideoHandler,QWebNotificationData,QWebNotificationPresenter,QWebSelectData,QWebSelectMethod,QWebSpellChecker,QWebTouchModifier
+ QWebPluginFactory
+ QWebSecurityOrigin
+ QWebSettings
+ COMMON_HEADER
+ QtWebKit
+ RELATIVE
+ qt/Api
+ OUTPUT_DIR
+ "${DERIVED_SOURCES_DIR}/ForwardingHeaders/QtWebKit"
+ REQUIRED_HEADERS
+ QtWebKit_HEADERS
+)
+
+set(WebKit_PUBLIC_HEADERS
+ qt/Api/qwebkitglobal.h
+ ${QtWebKit_HEADERS}
+ ${QtWebKit_FORWARDING_HEADERS}
+)
+
+generate_header("${DERIVED_SOURCES_DIR}/ForwardingHeaders/QtWebKit/qtwebkitversion.h"
+ WebKit_PUBLIC_HEADERS
+ "#ifndef QT_QTWEBKIT_VERSION_H
+#define QT_QTWEBKIT_VERSION_H
+
+#define QTWEBKIT_VERSION_STR \"${PROJECT_VERSION_STRING}\"
+#define QTWEBKIT_VERSION 0x05f00${PROJECT_VERSION_MICRO}
+
+#endif
+")
+
+generate_header("${DERIVED_SOURCES_DIR}/ForwardingHeaders/QtWebKit/QtWebKitVersion"
+ WebKit_PUBLIC_HEADERS
+ "#include \"qtwebkitversion.h\"")
+
+generate_header("${DERIVED_SOURCES_DIR}/ForwardingHeaders/QtWebKit/QtWebKitDepends"
+ WebKit_PUBLIC_HEADERS
+ "#ifdef __cplusplus /* create empty PCH in C mode */
+#include <QtCore/QtCore>
+#include <QtGui/QtGui>
+#include <QtNetwork/QtNetwork>
+#endif
+")
+
+install(
+ FILES
+ ${WebKit_PUBLIC_HEADERS}
+ DESTINATION
+ ${KDE_INSTALL_INCLUDEDIR}/QtWebKit
+)
+
+file(GLOB WebKit_PRIVATE_HEADERS qt/Api/*_p.h)
+install(
+ FILES
+ ${WebKit_PRIVATE_HEADERS}
+ DESTINATION
+ ${KDE_INSTALL_INCLUDEDIR}/QtWebKit/${PROJECT_VERSION}/QtWebKit/private
+)
+
+ecm_generate_pkgconfig_file(
+ BASE_NAME Qt5WebKit
+ DEPS "Qt5Core Qt5Gui Qt5Network"
+ FILENAME_VAR WebKit_PKGCONFIG_FILENAME
+ INSTALL
+)
+
+ecm_generate_pri_file(
+ BASE_NAME webkit
+ LIB_NAME QtWebKit
+ INCLUDE_INSTALL_DIR ${KDE_INSTALL_INCLUDEDIR}
+ INCLUDE_INSTALL_DIR2 "${KDE_INSTALL_INCLUDEDIR}/QtWebKit"
+ DEPS "core gui network"
+ RUNTIME_DEPS "sensors positioning qml quick webchannel sql core_private gui_private"
+ DEFINES QT_WEBKIT_LIB
+ SET_RPATH ON
+ QT_MODULES webkit
+ FILENAME_VAR WebKit_PRI_FILENAME
+)
+install(FILES ${WebKit_PRI_FILENAME} DESTINATION ${ECM_MKSPECS_INSTALL_DIR})
+
+if (QT_STATIC_BUILD)
+ set(WebKit_LIBRARY_TYPE STATIC)
+else ()
+ set(WebKit_LIBRARY_TYPE SHARED)
+endif ()
+
+set(WebKit_OUTPUT_NAME Qt5WebKit)
+
+
+############ WebKitWidgets ############
+
+set(WebKitWidgets_INCLUDE_DIRECTORIES
+ "${WEBKIT_DIR}/qt/WidgetApi"
+ "${WEBKIT_DIR}/qt/WidgetSupport"
+)
+
+set(WebKitWidgets_SOURCES
+ qt/WidgetApi/qgraphicswebview.cpp
+ qt/WidgetApi/qwebframe.cpp
+ qt/WidgetApi/qwebinspector.cpp
+ qt/WidgetApi/qwebpage.cpp
+ qt/WidgetApi/qwebpage_p.cpp
+ qt/WidgetApi/qwebview.cpp
+ qt/WidgetApi/qwebviewaccessible.cpp
+
+ qt/WidgetSupport/InitWebKitQt.cpp
+ qt/WidgetSupport/InspectorClientWebPage.cpp
+ qt/WidgetSupport/PageClientQt.cpp
+ qt/WidgetSupport/QGraphicsWidgetPluginImpl.cpp
+ qt/WidgetSupport/QStyleFacadeImp.cpp
+ qt/WidgetSupport/QWebUndoCommand.cpp
+ qt/WidgetSupport/QWidgetPluginImpl.cpp
+ qt/WidgetSupport/QtFallbackWebPopup.cpp
+ qt/WidgetSupport/QtWebComboBox.cpp
+)
+
+set(WebKitWidgets_SYSTEM_INCLUDE_DIRECTORIES
+ ${Qt5Gui_INCLUDE_DIRS}
+ ${Qt5Network_INCLUDE_DIRS}
+ ${Qt5Widgets_INCLUDE_DIRS}
+)
+
+set(WebKitWidgets_LIBRARIES
+ PRIVATE
+ ${Qt5MultimediaWidgets_LIBRARIES}
+ ${Qt5PrintSupport_LIBRARIES}
+ PUBLIC
+ ${Qt5Widgets_LIBRARIES}
+ WebKit
+)
+
+if (USE_QT_MULTIMEDIA)
+ list(APPEND WebKitWidgets_SOURCES
+ qt/WidgetSupport/DefaultFullScreenVideoHandler.cpp
+ qt/WidgetSupport/FullScreenVideoWidget.cpp
+ )
+ list(APPEND WebKitWidgets_SYSTEM_INCLUDE_DIRECTORIES
+ ${Qt5MultimediaWidgets_INCLUDE_DIRS}
+ )
+endif ()
+
+WEBKIT_CREATE_FORWARDING_HEADERS(QtWebKitWidgets DIRECTORIES qt/WidgetApi)
+
+ecm_generate_headers(
+ QtWebKitWidgets_FORWARDING_HEADERS
+ HEADER_NAMES
+ QGraphicsWebView
+ QWebFrame,QWebHitTestResult
+ QWebInspector
+ QWebPage
+ QWebView
+ COMMON_HEADER
+ QtWebKitWidgets
+ RELATIVE
+ qt/WidgetApi
+ OUTPUT_DIR
+ "${DERIVED_SOURCES_DIR}/ForwardingHeaders/QtWebKitWidgets"
+ REQUIRED_HEADERS
+ QtWebKitWidgets_HEADERS
+)
+
+set(WebKitWidgets_PUBLIC_HEADERS
+ ${QtWebKitWidgets_HEADERS}
+ ${QtWebKitWidgets_FORWARDING_HEADERS}
+)
+
+generate_header("${DERIVED_SOURCES_DIR}/ForwardingHeaders/QtWebKitWidgets/qtwebkitwidgetsversion.h"
+ WebKitWidgets_PUBLIC_HEADERS
+ "#ifndef QT_QTWEBKITWIDGETS_VERSION_H
+#define QT_QTWEBKITWIDGETS_VERSION_H
+
+#define QTWEBKITWIDGETS_VERSION_STR \"${PROJECT_VERSION_STRING}\"
+#define QTWEBKITWIDGETS_VERSION 0x05f00${PROJECT_VERSION_MICRO}
+
+#endif
+")
+
+generate_header("${DERIVED_SOURCES_DIR}/ForwardingHeaders/QtWebKitWidgets/QtWebKitWidgetsVersion"
+ WebKitWidgets_PUBLIC_HEADERS
+ "#include \"qtwebkitwidgetsversion.h\"")
+
+generate_header("${DERIVED_SOURCES_DIR}/ForwardingHeaders/QtWebKitWidgets/QtWebKitWidgetsDepends"
+ WebKitWidgets_PUBLIC_HEADERS
+ "#ifdef __cplusplus /* create empty PCH in C mode */
+#include <QtCore/QtCore>
+#include <QtGui/QtGui>
+#include <QtWidgets/QtWidgets>
+#include <QtNetwork/QtNetwork>
+#include <QtWebKit/QtWebKit>
+#endif
+")
+
+install(
+ FILES
+ ${WebKitWidgets_PUBLIC_HEADERS}
+ DESTINATION
+ ${KDE_INSTALL_INCLUDEDIR}/QtWebKitWidgets
+)
+
+file(GLOB WebKitWidgets_PRIVATE_HEADERS qt/WidgetApi/*_p.h)
+install(
+ FILES
+ ${WebKitWidgets_PRIVATE_HEADERS}
+ DESTINATION
+ ${KDE_INSTALL_INCLUDEDIR}/QtWebKitWidgets/${PROJECT_VERSION}/QtWebKitWidgets/private
+)
+
+ecm_generate_pkgconfig_file(
+ BASE_NAME Qt5WebKitWidgets
+ DEPS "Qt5Core Qt5Gui Qt5Network Qt5Widgets Qt5WebKit"
+ FILENAME_VAR WebKitWidgets_PKGCONFIG_FILENAME
+ INSTALL
+)
+
+ecm_generate_pri_file(
+ BASE_NAME webkitwidgets
+ LIB_NAME QtWebKitWidgets
+ INCLUDE_INSTALL_DIR ${KDE_INSTALL_INCLUDEDIR}
+ INCLUDE_INSTALL_DIR2 "${KDE_INSTALL_INCLUDEDIR}/QtWebKitWidgets"
+ DEPS "core gui network widgets webkit"
+ RUNTIME_DEPS "sensors positioning widgets_private printsupport opengl sql core_private gui_private"
+ DEFINES QT_WEBKITWIDGETS_LIB
+ SET_RPATH ON
+ QT_MODULES webkitwidgets
+ FILENAME_VAR WebKitWidgets_PRI_FILENAME
+)
+install(FILES ${WebKitWidgets_PRI_FILENAME} DESTINATION ${ECM_MKSPECS_INSTALL_DIR})
+
+if (WIN32)
+ if (CMAKE_SIZEOF_VOID_P EQUAL 8)
+ enable_language(ASM_MASM)
+ list(APPEND WebKit_SOURCES
+ win/plugins/PaintHooks.asm
+ )
+ endif ()
+
+ # Make sure incremental linking is turned off, as it creates unacceptably long link times.
+ string(REPLACE "INCREMENTAL:YES" "INCREMENTAL:NO" replace_CMAKE_SHARED_LINKER_FLAGS ${CMAKE_SHARED_LINKER_FLAGS})
+ set(CMAKE_SHARED_LINKER_FLAGS "${replace_CMAKE_SHARED_LINKER_FLAGS} /INCREMENTAL:NO")
+ string(REPLACE "INCREMENTAL:YES" "INCREMENTAL:NO" replace_CMAKE_EXE_LINKER_FLAGS ${CMAKE_EXE_LINKER_FLAGS})
+ set(CMAKE_EXE_LINKER_FLAGS "${replace_CMAKE_EXE_LINKER_FLAGS} /INCREMENTAL:NO")
+
+ string(REPLACE "INCREMENTAL:YES" "INCREMENTAL:NO" replace_CMAKE_SHARED_LINKER_FLAGS_DEBUG ${CMAKE_SHARED_LINKER_FLAGS_DEBUG})
+ set(CMAKE_SHARED_LINKER_FLAGS_DEBUG "${replace_CMAKE_SHARED_LINKER_FLAGS_DEBUG} /INCREMENTAL:NO")
+ string(REPLACE "INCREMENTAL:YES" "INCREMENTAL:NO" replace_CMAKE_EXE_LINKER_FLAGS_DEBUG ${CMAKE_EXE_LINKER_FLAGS_DEBUG})
+ set(CMAKE_EXE_LINKER_FLAGS_DEBUG "${replace_CMAKE_EXE_LINKER_FLAGS_DEBUG} /INCREMENTAL:NO")
+
+ string(REPLACE "INCREMENTAL:YES" "INCREMENTAL:NO" replace_CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO ${CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO})
+ set(CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO "${replace_CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO} /INCREMENTAL:NO")
+ string(REPLACE "INCREMENTAL:YES" "INCREMENTAL:NO" replace_CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO ${CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO})
+ set(CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO "${replace_CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO} /INCREMENTAL:NO")
+
+ set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} /SUBSYSTEM:WINDOWS")
+ set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /SUBSYSTEM:WINDOWS")
+
+ list(APPEND WebKit_INCLUDE_DIRECTORIES
+ ${DERIVED_SOURCES_WEBKIT_DIR}
+ )
+
+ set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} /NODEFAULTLIB:MSVCRT /NODEFAULTLIB:MSVCRTD")
+
+ set(WebKit_POST_BUILD_COMMAND "${DERIVED_SOURCES_WEBKIT_DIR}/postBuild.cmd")
+ file(WRITE "${WebKit_POST_BUILD_COMMAND}" "@xcopy /y /d /i /f \"${CMAKE_CURRENT_SOURCE_DIR}/qt/Api/*.h\" \"${DERIVED_SOURCES_DIR}/ForwardingHeaders/QtWebkit\" >nul 2>nul\n")
+ file(APPEND "${WebKit_POST_BUILD_COMMAND}" "@xcopy /y /d /i /f \"${CMAKE_CURRENT_SOURCE_DIR}/qt/WidgetApi/*.h\" \"${DERIVED_SOURCES_DIR}/ForwardingHeaders/QtWebkitWidgets\" >nul 2>nul\n")
+ add_custom_command(TARGET WebKit POST_BUILD
+ COMMAND ${WebKit_POST_BUILD_COMMAND}
+ VERBATIM
+ DEPENDS ${WebKit_POST_BUILD_COMMAND}
+ )
+
+ ADD_PRECOMPILED_HEADER("WebKitWidgetsPrefix.h" "qt/WebKitWidgetsPrefix.cpp" WebKitWidgets_SOURCES)
+endif ()
+
+if (QT_STATIC_BUILD)
+ set(WebKitWidgets_LIBRARY_TYPE STATIC)
+else ()
+ set(WebKitWidgets_LIBRARY_TYPE SHARED)
+endif ()
+
+set(WebKitWidgets_OUTPUT_NAME Qt5WebKitWidgets)
+set(WebKitWidgets_PRIVATE_HEADERS_LOCATION Headers/${PROJECT_VERSION}/QtWebKitWidgets/Private)
+
+WEBKIT_FRAMEWORK(WebKitWidgets)
+add_dependencies(WebKitWidgets WebKit)
+set_target_properties(WebKitWidgets PROPERTIES VERSION ${PROJECT_VERSION} SOVERSION ${PROJECT_VERSION_MAJOR})
+install(TARGETS WebKitWidgets EXPORT Qt5WebKitWidgetsTargets
+ DESTINATION "${LIB_INSTALL_DIR}"
+ INCLUDES DESTINATION "${KDE_INSTALL_INCLUDEDIR}/QtWebKitWidgets"
+)
+
+if (USE_LINKER_VERSION_SCRIPT)
+ set(VERSION_SCRIPT "${CMAKE_BINARY_DIR}/QtWebKitWidgets.version")
+ add_custom_command(TARGET WebKitWidgets PRE_LINK
+ COMMAND ${PERL_EXECUTABLE} ${TOOLS_DIR}/qt/generate-version-script.pl ${Qt5_VERSION} > ${VERSION_SCRIPT}
+ VERBATIM
+ )
+ set_target_properties(WebKitWidgets PROPERTIES LINK_FLAGS -Wl,--version-script,${VERSION_SCRIPT})
+endif ()
+
+if (COMPILER_IS_GCC_OR_CLANG)
+ set_source_files_properties(
+ qt/Api/qwebdatabase.cpp
+ qt/Api/qwebelement.cpp
+ qt/Api/qwebhistory.cpp
+ qt/Api/qwebhistoryinterface.cpp
+ qt/Api/qwebpluginfactory.cpp
+ qt/Api/qwebscriptworld.cpp
+ qt/Api/qwebsecurityorigin.cpp
+ qt/Api/qwebsettings.cpp
+
+ qt/WidgetApi/qgraphicswebview.cpp
+ qt/WidgetApi/qwebframe.cpp
+ qt/WidgetApi/qwebinspector.cpp
+ qt/WidgetApi/qwebpage.cpp
+ qt/WidgetApi/qwebview.cpp
+ PROPERTIES
+ COMPILE_FLAGS -frtti
+ )
+endif ()
+
+add_subdirectory(qt/tests)