diff options
author | Konstantin Tokarev <annulen@yandex.ru> | 2017-01-27 08:36:56 +0300 |
---|---|---|
committer | Konstantin Tokarev <annulen@yandex.ru> | 2017-02-02 12:31:42 +0000 |
commit | 6b406688a4020916ba2966e6e5252d9c1385970f (patch) | |
tree | 65af619b76adb44fee03f2e496a2e4dc5c455dd8 /Tools | |
parent | 46167faa61861b01a0e4e8e774da9febc3c2956e (diff) |
Imported WebKit commit bdab88b903fe1a254c80af20161183976670cd3b
Change-Id: Idc1156f4a64df4e7d89e90d4e03451f004c8ae6d
Reviewed-by: Konstantin Tokarev <annulen@yandex.ru>
Diffstat (limited to 'Tools')
-rw-r--r-- | Tools/QtTestBrowser/launcherwindow.cpp | 61 | ||||
-rw-r--r-- | Tools/QtTestBrowser/launcherwindow.h | 9 | ||||
-rw-r--r-- | Tools/QtTestBrowser/qttestbrowser.cpp | 13 | ||||
-rw-r--r-- | Tools/Scripts/webkitperl/FeatureList.pm | 6 | ||||
-rw-r--r-- | Tools/qmake/mkspecs/features/functions.prf | 13 | ||||
-rw-r--r-- | Tools/qmake/projects/run_cmake.pro | 4 | ||||
-rwxr-xr-x | Tools/qt/convert-prl-libs-to-cmake.pl | 39 | ||||
-rw-r--r-- | Tools/qt/jhbuild-qt-5.4.modules | 59 | ||||
-rw-r--r-- | Tools/qt/jhbuild.modules | 28 | ||||
-rw-r--r-- | Tools/qt/jhbuildrc | 6 | ||||
-rwxr-xr-x | Tools/qt/make-snapshot.pl | 22 | ||||
-rw-r--r-- | Tools/qt/manifest.txt | 5 | ||||
-rw-r--r-- | Tools/qt/patches/qtbase-5.4-fontconfig-fix.patch (renamed from Tools/qt/patches/qt-5.4-fontconfig-fix.patch) | 12 |
13 files changed, 215 insertions, 62 deletions
diff --git a/Tools/QtTestBrowser/launcherwindow.cpp b/Tools/QtTestBrowser/launcherwindow.cpp index 537eccf64..c1974552e 100644 --- a/Tools/QtTestBrowser/launcherwindow.cpp +++ b/Tools/QtTestBrowser/launcherwindow.cpp @@ -169,7 +169,10 @@ void LauncherWindow::initializeView() WebViewGraphicsBased* view = new WebViewGraphicsBased(splitter); m_view = view; #ifndef QT_NO_OPENGL - toggleQGLWidgetViewport(m_windowOptions.useQGLWidgetViewport); + if (!m_windowOptions.useQOpenGLWidgetViewport) + toggleQGLWidgetViewport(m_windowOptions.useQGLWidgetViewport); + if (!m_windowOptions.useQGLWidgetViewport) + toggleQOpenGLWidgetViewport(m_windowOptions.useQOpenGLWidgetViewport); #endif view->setPage(page()); @@ -213,7 +216,8 @@ void LauncherWindow::applyPrefs() { QWebSettings* settings = page()->settings(); #ifndef QT_NO_OPENGL - settings->setAttribute(QWebSettings::AcceleratedCompositingEnabled, m_windowOptions.useCompositing && m_windowOptions.useQGLWidgetViewport); + settings->setAttribute(QWebSettings::AcceleratedCompositingEnabled, m_windowOptions.useCompositing + && (m_windowOptions.useQGLWidgetViewport || m_windowOptions.useQOpenGLWidgetViewport)); #endif settings->setAttribute(QWebSettings::TiledBackingStoreEnabled, m_windowOptions.useTiledBackingStore); settings->setAttribute(QWebSettings::FrameFlatteningEnabled, m_windowOptions.useFrameFlattening); @@ -388,8 +392,12 @@ void LauncherWindow::createChrome() QAction* toggleAcceleratedCompositing = graphicsViewMenu->addAction("Toggle Accelerated Compositing", this, SLOT(toggleAcceleratedCompositing(bool))); toggleAcceleratedCompositing->setCheckable(true); toggleAcceleratedCompositing->setChecked(settings->testAttribute(QWebSettings::AcceleratedCompositingEnabled)); - toggleAcceleratedCompositing->setEnabled(isGraphicsBased()); - toggleAcceleratedCompositing->connect(toggleGraphicsView, SIGNAL(toggled(bool)), SLOT(setEnabled(bool))); + + QAction* toggleAccelerated2dCanvas = graphicsViewMenu->addAction("Toggle Accelerated 2D canvas", this, SLOT(toggleAccelerated2dCanvas(bool))); + toggleAccelerated2dCanvas->setCheckable(true); + toggleAccelerated2dCanvas->setEnabled(settings->testAttribute(QWebSettings::AcceleratedCompositingEnabled)); + toggleAccelerated2dCanvas->setChecked(settings->testAttribute(QWebSettings::Accelerated2dCanvasEnabled)); + toggleAccelerated2dCanvas->connect(toggleAcceleratedCompositing, SIGNAL(toggled(bool)), SLOT(setEnabled(bool))); QAction* toggleResizesToContents = graphicsViewMenu->addAction("Toggle Resizes To Contents Mode", this, SLOT(toggleResizesToContents(bool))); toggleResizesToContents->setCheckable(true); @@ -409,6 +417,13 @@ void LauncherWindow::createChrome() toggleQGLWidgetViewport->setChecked(m_windowOptions.useQGLWidgetViewport); toggleQGLWidgetViewport->setEnabled(isGraphicsBased()); toggleQGLWidgetViewport->connect(toggleGraphicsView, SIGNAL(toggled(bool)), SLOT(setEnabled(bool))); +#if QT_VERSION >= QT_VERSION_CHECK(5, 4, 0) + QAction* toggleQOpenGLWidgetViewport = graphicsViewMenu->addAction("Toggle use of QOpenGLWidget Viewport", this, SLOT(toggleQOpenGLWidgetViewport(bool))); + toggleQOpenGLWidgetViewport->setCheckable(true); + toggleQOpenGLWidgetViewport->setChecked(m_windowOptions.useQOpenGLWidgetViewport); + toggleQOpenGLWidgetViewport->setEnabled(isGraphicsBased()); + toggleQOpenGLWidgetViewport->connect(toggleGraphicsView, SIGNAL(toggled(bool)), SLOT(setEnabled(bool))); +#endif #endif QMenu* viewportUpdateMenu = graphicsViewMenu->addMenu("Change Viewport Update Mode"); @@ -517,6 +532,10 @@ void LauncherWindow::createChrome() toggleJavascriptCanOpenWindows->setCheckable(true); toggleJavascriptCanOpenWindows->setChecked(false); + QAction* togglePrivateBrowsing = settingsMenu->addAction("Enable Private Browsing", this, SLOT(togglePrivateBrowsing(bool))); + togglePrivateBrowsing->setCheckable(true); + togglePrivateBrowsing->setChecked(false); + QAction* toggleUseDiskCookies = settingsMenu->addAction("Save Cookies on Disk", this, SLOT(setUseDiskCookies(bool))); toggleUseDiskCookies->setCheckable(true); toggleUseDiskCookies->setChecked(m_windowOptions.useDiskCookies); @@ -795,7 +814,10 @@ void LauncherWindow::screenshot() #endif #ifndef QT_NO_OPENGL - toggleQGLWidgetViewport(m_windowOptions.useQGLWidgetViewport); + if (!m_windowOptions.useQOpenGLWidgetViewport) + toggleQGLWidgetViewport(m_windowOptions.useQGLWidgetViewport); + if (!m_windowOptions.useQGLWidgetViewport) + toggleQOpenGLWidgetViewport(m_windowOptions.useQOpenGLWidgetViewport); #endif } @@ -886,6 +908,11 @@ void LauncherWindow::toggleAcceleratedCompositing(bool toggle) page()->settings()->setAttribute(QWebSettings::AcceleratedCompositingEnabled, toggle); } +void LauncherWindow::toggleAccelerated2dCanvas(bool toggle) +{ + page()->settings()->setAttribute(QWebSettings::Accelerated2dCanvasEnabled, toggle); +} + void LauncherWindow::toggleTiledBackingStore(bool toggle) { page()->settings()->setAttribute(QWebSettings::TiledBackingStoreEnabled, toggle); @@ -958,6 +985,11 @@ void LauncherWindow::toggleJavascriptCanOpenWindows(bool enable) page()->settings()->setAttribute(QWebSettings::JavascriptCanOpenWindows, enable); } +void LauncherWindow::togglePrivateBrowsing(bool enable) +{ + page()->settings()->setAttribute(QWebSettings::PrivateBrowsingEnabled, enable); +} + void LauncherWindow::setUseDiskCookies(bool enable) { testBrowserCookieJarInstance()->setDiskStorageEnabled(enable); @@ -984,11 +1016,28 @@ void LauncherWindow::toggleQGLWidgetViewport(bool enable) if (!isGraphicsBased()) return; + if (enable) + m_windowOptions.useQOpenGLWidgetViewport = false; m_windowOptions.useQGLWidgetViewport = enable; - WebViewGraphicsBased* view = static_cast<WebViewGraphicsBased*>(m_view); + WebViewGraphicsBased* view = static_cast<WebViewGraphicsBased*>(m_view); view->setViewport(enable ? new QGLWidget() : 0); } + +void LauncherWindow::toggleQOpenGLWidgetViewport(bool enable) +{ + if (!isGraphicsBased()) + return; + +#if QT_VERSION >= QT_VERSION_CHECK(5, 4, 0) + if (enable) + m_windowOptions.useQGLWidgetViewport = false; + m_windowOptions.useQOpenGLWidgetViewport = enable; + + WebViewGraphicsBased* view = static_cast<WebViewGraphicsBased*>(m_view); + view->setViewport(enable ? new QOpenGLWidget() : 0); +#endif +} #endif void LauncherWindow::changeViewportUpdateMode(int mode) diff --git a/Tools/QtTestBrowser/launcherwindow.h b/Tools/QtTestBrowser/launcherwindow.h index d4a3b832d..c9388da85 100644 --- a/Tools/QtTestBrowser/launcherwindow.h +++ b/Tools/QtTestBrowser/launcherwindow.h @@ -38,6 +38,9 @@ #ifndef QT_NO_OPENGL #include <QtOpenGL/QGLWidget> #endif +#if QT_VERSION >= QT_VERSION_CHECK(5, 4, 0) +#include <QOpenGLWidget> +#endif #include <QDebug> @@ -82,9 +85,8 @@ public: bool useDiskCookies { true }; bool enableScrollAnimator { false }; quint64 offlineStorageDefaultQuotaSize { 0 }; -#ifndef QT_NO_OPENGL bool useQGLWidgetViewport { false }; -#endif + bool useQOpenGLWidgetViewport { false }; bool printLoadedUrls { false }; QUrl inspectorUrl; quint16 remoteInspectorPort { 0 }; @@ -128,6 +130,7 @@ protected Q_SLOTS: void setTouchMocking(bool on); void toggleWebView(bool graphicsBased); void toggleAcceleratedCompositing(bool toggle); + void toggleAccelerated2dCanvas(bool toggle); void toggleTiledBackingStore(bool toggle); void toggleResizesToContents(bool toggle); void toggleWebGL(bool toggle); @@ -140,6 +143,7 @@ protected Q_SLOTS: void toggleInterruptingJavaScriptEnabled(bool enable); void toggleJavascriptCanOpenWindows(bool enable); void toggleAutoLoadImages(bool enable); + void togglePrivateBrowsing(bool enable); void setUseDiskCookies(bool enable); void clearCookies(); void togglePlugins(bool enable); @@ -154,6 +158,7 @@ protected Q_SLOTS: #endif #ifndef QT_NO_OPENGL void toggleQGLWidgetViewport(bool enable); + void toggleQOpenGLWidgetViewport(bool enable); #endif void changeViewportUpdateMode(int mode); diff --git a/Tools/QtTestBrowser/qttestbrowser.cpp b/Tools/QtTestBrowser/qttestbrowser.cpp index 05726b822..4ec7425b1 100644 --- a/Tools/QtTestBrowser/qttestbrowser.cpp +++ b/Tools/QtTestBrowser/qttestbrowser.cpp @@ -136,8 +136,9 @@ void LauncherApplication::handleUserOptions() << "[-no-compositing]" #if defined(QT_CONFIGURED_WITH_OPENGL) << "[-gl-viewport]" - << "[-webgl]" #endif + << "[-opengl-viewport]" + << "[-webgl]" << QString("[-viewport-update-mode %1]").arg(formatKeys(updateModes)).toLatin1().data() #if !defined(QT_NO_NETWORKDISKCACHE) && !defined(QT_NO_DESKTOPSERVICES) << "[-disk-cache]" @@ -169,7 +170,6 @@ void LauncherApplication::handleUserOptions() windowOptions.useGraphicsView = true; if (args.contains("-no-compositing")) { - requiresGraphicsView("-no-compositing"); windowOptions.useCompositing = false; } @@ -245,11 +245,16 @@ void LauncherApplication::handleUserOptions() windowOptions.useQGLWidgetViewport = true; } +#endif if (args.contains("-webgl")) { - requiresGraphicsView("-webgl"); windowOptions.useWebGL = true; } -#endif + + if (args.contains("-opengl-viewport")) { + requiresGraphicsView("-opengl-viewport"); + windowOptions.useQOpenGLWidgetViewport = true; + } + #if HAVE(QTTESTSUPPORT) if (args.contains("-use-test-fonts")) diff --git a/Tools/Scripts/webkitperl/FeatureList.pm b/Tools/Scripts/webkitperl/FeatureList.pm index c3e03b3cc..067779122 100644 --- a/Tools/Scripts/webkitperl/FeatureList.pm +++ b/Tools/Scripts/webkitperl/FeatureList.pm @@ -161,10 +161,10 @@ sub isQtGstreamer { return isQt() && !isAnyWindows() && !isDarwin() } my @features = ( { option => "3d-rendering", desc => "Toggle 3D Rendering support", - define => "ENABLE_3D_TRANSFORMS", default => (isAppleMacWebKit() || isIOSWebKit() || isGtk() || isEfl()), value => \$threeDTransformsSupport }, + define => "ENABLE_3D_TRANSFORMS", default => (isAppleMacWebKit() || isIOSWebKit() || isGtk() || isEfl() || isQt()), value => \$threeDTransformsSupport }, { option => "accelerated-2d-canvas", desc => "Toggle Accelerated 2D Canvas support", - define => "ENABLE_ACCELERATED_2D_CANVAS", default => isGtk(), value => \$accelerated2DCanvasSupport }, + define => "ENABLE_ACCELERATED_2D_CANVAS", default => (isGtk() || isQt()), value => \$accelerated2DCanvasSupport }, { option => "allinone-build", desc => "Toggle all-in-one build", define => "ENABLE_ALLINONE_BUILD", default => isWindows() || isQt(), value => \$allInOneBuild }, @@ -446,7 +446,7 @@ my @features = ( define => "ENABLE_VIDEO_TRACK", default => (isAppleWebKit() || isGtk() || isEfl() || isQt()), value => \$videoTrackSupport }, { option => "webgl", desc => "Toggle WebGL support", - define => "ENABLE_WEBGL", default => (isAppleMacWebKit() || isIOSWebKit() || isGtk() || isEfl()), value => \$webglSupport }, + define => "ENABLE_WEBGL", default => (isAppleMacWebKit() || isIOSWebKit() || isGtk() || isEfl() || isQt()), value => \$webglSupport }, { option => "webassembly", desc => "Toggle WebAssembly support", define => "ENABLE_WEBASSEMBLY", default => 0, value => \$webAssemblySupport }, diff --git a/Tools/qmake/mkspecs/features/functions.prf b/Tools/qmake/mkspecs/features/functions.prf index 2dcaa09ca..831e01a98 100644 --- a/Tools/qmake/mkspecs/features/functions.prf +++ b/Tools/qmake/mkspecs/features/functions.prf @@ -64,6 +64,10 @@ defineTest(isPlatformSupported) { } win32 { + qtConfig(opengles2):!qtConfig(dynamicgl) { + skipBuild("QtWebKit supports only dynamic GL Qt builds on Windows at the moment.") + } + CONFIG(debug, debug|release):!contains(QMAKE_HOST.arch, x86_64) { # debug_and_release is built as release, see Tools/qmake/projects/run_cmake.pro !debug_and_release { @@ -102,6 +106,8 @@ defineTest(isPlatformSupported) { skipBuild("C++11 support is required in order to build QtWebKit.") } + isRubyVersionSupported() + isEmpty(skipBuildReason): return(true) return(false) } @@ -113,6 +119,13 @@ defineTest(isGCCVersionSupported) { return(false) } +defineTest(isRubyVersionSupported) { + ruby_version = $$system("ruby -e 'puts RUBY_VERSION'") + isVersionAtLeast($$ruby_version, "1.9"): return(true) + skipBuild("Using Ruby version $$ruby_version, but at least Ruby 1.9 is required to build QtWebKit.") + return(false) +} + defineTest(programExistsInPath) { equals(QMAKE_HOST.os, Windows): program = $${1}.exe else: program = $$1 diff --git a/Tools/qmake/projects/run_cmake.pro b/Tools/qmake/projects/run_cmake.pro index 75934e687..1192197bd 100644 --- a/Tools/qmake/projects/run_cmake.pro +++ b/Tools/qmake/projects/run_cmake.pro @@ -54,6 +54,10 @@ build_pass|!debug_and_release { ZLIB_INCLUDE_DIRS=$$QTBASE_DIR/src/3rdparty/zlib } + qtConfig(opengles2):!qtConfig(dynamicgl) { + CMAKE_CONFIG += QT_USES_GLES2_ONLY=1 + } + exists($$ROOT_BUILD_DIR/conanbuildinfo.cmake):exists($$ROOT_BUILD_DIR/conanfile.txt) { CMAKE_CONFIG += QT_CONAN_DIR=$$ROOT_BUILD_DIR } diff --git a/Tools/qt/convert-prl-libs-to-cmake.pl b/Tools/qt/convert-prl-libs-to-cmake.pl index 1b304228c..40fab403c 100755 --- a/Tools/qt/convert-prl-libs-to-cmake.pl +++ b/Tools/qt/convert-prl-libs-to-cmake.pl @@ -4,26 +4,23 @@ # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions # are met: +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. # -# 1. Redistributions of source code must retain the above copyright -# notice, this list of conditions and the following disclaimer. -# 2. Redistributions in binary form must reproduce the above copyright -# notice, this list of conditions and the following disclaimer in the -# documentation and/or other materials provided with the distribution. -# 3. Neither the name of Apple Inc. ("Apple") nor the names of -# its contributors may be used to endorse or promote products derived -# from this software without specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY -# EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -# DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY -# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND -# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF -# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS'' +# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, +# THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS +# BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF +# THE POSSIBILITY OF SUCH DAMAGE. use File::Basename; use File::Spec; @@ -58,7 +55,7 @@ my $prl_name = File::Spec->join($qt_lib_dir, "$qt_lib_base.prl"); my $qmake_prl_libs; open(my $prl, '<', $prl_name) or die "Cannot open $prl_name: $!"; -while(<$prl>) { +while (<$prl>) { next unless /^QMAKE_PRL_LIBS/; chomp; if (/^QMAKE_PRL_LIBS\s+=\s+(.*)$/) { @@ -68,7 +65,7 @@ while(<$prl>) { } close $prl; -unless($qmake_prl_libs) { +unless ($qmake_prl_libs) { print "QMAKE_PRL_LIBS variable is undefined or empty\n"; exit; } diff --git a/Tools/qt/jhbuild-qt-5.4.modules b/Tools/qt/jhbuild-qt-5.4.modules index 3e9c4f57c..924a19a6b 100644 --- a/Tools/qt/jhbuild-qt-5.4.modules +++ b/Tools/qt/jhbuild-qt-5.4.modules @@ -3,16 +3,28 @@ <?xml-stylesheet type="text/xsl" href="moduleset.xsl"?> <moduleset> + <metamodule id="qt"> + <dependencies> + <dep package="qtbase"/> + <dep package="qtlocation"/> + <dep package="qtsensors"/> + </dependencies> + </metamodule> + <repository type="tarball" name="download.qt.io" href="http://download.qt.io"/> - <autotools id="qt" + <autotools id="qtbase" + supports-non-srcdir-builds="no" makeinstallargs="install INSTALL_ROOT='$(DESTDIR)'" autogen-template="%(srcdir)s/%(autogen-sh)s -prefix %(prefix)s -I%(prefix)s/include -L%(prefix)s/lib -libdir %(prefix)s/lib" autogen-sh="configure -opensource -confirm-license + -force-debug-info + -separate-debug-info + -icu -openssl -openssl-linked @@ -21,22 +33,6 @@ -nomake tools -nomake tests - -skip connectivity - -skip enginio - -skip graphicaleffects - -skip imageformats - -skip multimedia - -skip quickcontrols - -skip script - -skip serialport - -skip svg - -skip translations - -skip wayland - -skip webengine - -skip webkit - -skip x11extras - -skip xmlpatterns - -system-harfbuzz -system-freetype -system-libjpeg @@ -62,10 +58,10 @@ -no-sql-db2 -no-sql-ibase -no-sql-mysql -no-sql-oci -no-sql-odbc -no-sql-psql -no-sql-sqlite2 -no-sql-tds -plugin-sql-sqlite "> - <branch module="archive/qt/5.4/${version}/single/qt-everywhere-opensource-src-${version}.tar.xz" version="5.4.0" + <branch module="archive/qt/5.4/${version}/submodules/qtbase-opensource-src-${version}.tar.xz" version="5.4.0" repo="download.qt.io" - hash="sha256:b2d9df47b9fd2fcfa5ebd162e1373b7eddf4759e6ba148c4589f3d8b6628c39c"> - <patch file="qt-5.4-fontconfig-fix.patch" strip="1"/> + hash="sha256:daea240ba5e77bc2d78ec21a2cb664eed83b3d4ad409b6277a6f7d4c0c8e91d1"> + <patch file="qtbase-5.4-fontconfig-fix.patch" strip="1"/> </branch> <dependencies> <dep package="fontconfig"/> @@ -76,4 +72,27 @@ </dependencies> </autotools> + <autotools id="qtlocation" + autogen-template="%(prefix)s/bin/qmake %(srcdir)s" + makeinstallargs="install INSTALL_ROOT='$(DESTDIR)'" + supports-non-srcdir-builds="no"> + <branch module="archive/qt/5.4/${version}/submodules/qtlocation-opensource-src-${version}.tar.xz" version="5.4.0" + repo="download.qt.io" + hash="sha256:e8420c1b5fdddbc44faa7aa1c653da91dc101055a869dcb518326188be81d456"/> + <dependencies> + <dep package="qtbase"/> + </dependencies> + </autotools> + + <autotools id="qtsensors" + autogen-template="%(prefix)s/bin/qmake %(srcdir)s" + makeinstallargs="install INSTALL_ROOT='$(DESTDIR)'" + supports-non-srcdir-builds="no"> + <branch module="archive/qt/5.4/${version}/submodules/qtsensors-opensource-src-${version}.tar.xz" version="5.4.0" + repo="download.qt.io" + hash="sha256:8a0f33ccf572b9fbcdc46fca602d75270979a2f851b6a1f399d039b1f7aae159"/> + <dependencies> + <dep package="qtbase"/> + </dependencies> + </autotools> </moduleset> diff --git a/Tools/qt/jhbuild.modules b/Tools/qt/jhbuild.modules index 3053b1d2c..9a10e9f39 100644 --- a/Tools/qt/jhbuild.modules +++ b/Tools/qt/jhbuild.modules @@ -19,6 +19,10 @@ <dep package="gst-libav"/> <dep package="openwebrtc"/> <dep package="qt"/> + <if condition-set="linux"> + <dep package="llvm"/> + <dep package="mesa"/> + </if> </dependencies> </metamodule> @@ -47,6 +51,10 @@ href="http://webkitgtk.org/jhbuild_mirror/"/> <repository type="tarball" name="nice.freedesktop.org" href="http://nice.freedesktop.org/"/> + <repository type="tarball" name="people.freedesktop.org" + href="http://people.freedesktop.org"/> + <repository type="tarball" name="llvm.org" + href="http://llvm.org"/> <autotools id="fonts" supports-non-srcdir-builds="no" skip-autogen="true"> @@ -258,4 +266,24 @@ </branch> </autotools> + <autotools id="llvm" + autogenargs="--enable-optimized --disable-terminfo --disable-zlib --enable-targets=host --disable-backtraces --disable-crash-overrides --disable-expensive-checks --disable-debug-runtime --disable-assertions --enable-shared"> + <branch repo="llvm.org" + module="/releases/3.7.0/llvm-3.7.0.src.tar.xz" version="3.7.0" checkoutdir="llvm-3.7.0" + hash="sha256:ab45895f9dcdad1e140a3a79fd709f64b05ad7364e308c0e582c5b02e9cc3153"/> + </autotools> + + <autotools id="mesa" autogenargs="--enable-xlib-glx --disable-dri --disable-egl --with-gallium-drivers=swrast" skip-install="true"> + <!--- WARNING: At jhbuildrc, when we define the path to the Gallium llvmpipe software rasterizer (needed by XvfbDriver), + we assume that the directory is named "Mesa". So, don't change the checkoutdir name even if you update the version. --> + <branch module="/~brianp/mesa/11.0.6/mesa-11.0.6.tar.xz" version="11.0.6" + checkoutdir="Mesa" + repo="people.freedesktop.org" + hash="sha256:8340e64cdc91999840404c211496f3de38e7b4cb38db34e2f72f1642c5134760"> + </branch> + <dependencies> + <dep package="llvm"/> + </dependencies> + </autotools> + </moduleset> diff --git a/Tools/qt/jhbuildrc b/Tools/qt/jhbuildrc index 58dea347f..d7f9b6f40 100644 --- a/Tools/qt/jhbuildrc +++ b/Tools/qt/jhbuildrc @@ -22,3 +22,9 @@ sys.path.insert(0, os.path.join(os.path.dirname(__file__), "../jhbuild") ) import jhbuildrc_common jhbuildrc_common.init(globals(), "qt") + +# LLVM requires that builddir != srcdir, and it's not possible to do that in jhbuild only +# for a module, so we do it here globally since it's a good idea for all other modules as well. +buildroot = os.path.join(os.path.dirname(checkoutroot), "Build") + +os.environ['LLVMPIPE_LIBGL_PATH'] = os.path.abspath(os.path.join(buildroot, 'Mesa', 'lib', 'gallium')) diff --git a/Tools/qt/make-snapshot.pl b/Tools/qt/make-snapshot.pl index 27c5621d6..316fe7b35 100755 --- a/Tools/qt/make-snapshot.pl +++ b/Tools/qt/make-snapshot.pl @@ -1,4 +1,26 @@ #!/usr/bin/env perl +# Copyright (C) 2016 Konstantin Tokarev <annulen@yandex.ru> +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions +# are met: +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# +# THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS'' +# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, +# THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS +# BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF +# THE POSSIBILITY OF SUCH DAMAGE. use Cwd; use File::Basename; diff --git a/Tools/qt/manifest.txt b/Tools/qt/manifest.txt index 624fe3ba1..5d06c4530 100644 --- a/Tools/qt/manifest.txt +++ b/Tools/qt/manifest.txt @@ -80,6 +80,11 @@ file Source/WebCore/platform/win/SystemInfo.h file Source/WebCore/platform/win/WebCoreInstanceHandle.cpp file Source/WebCore/platform/win/WebCoreInstanceHandle.h +# macOS-specific code +file Source/WTF/wtf/cf +file Source/WTF/wtf/text/cf +file Source/WebCore/platform/cf/SharedBufferCF.cpp + # WK1 plugin code is in WebKit/win file Source/WebKit/win/Plugins diff --git a/Tools/qt/patches/qt-5.4-fontconfig-fix.patch b/Tools/qt/patches/qtbase-5.4-fontconfig-fix.patch index 07395fe72..a6375fe28 100644 --- a/Tools/qt/patches/qt-5.4-fontconfig-fix.patch +++ b/Tools/qt/patches/qtbase-5.4-fontconfig-fix.patch @@ -13,10 +13,10 @@ Change-Id: If9ee3e185c42af10c05ae3852d088881da1d4f1a .../fontdatabases/fontconfig/qfontconfigdatabase_p.h | 1 + 2 files changed, 8 insertions(+), 1 deletion(-) -diff --git a/qtbase/src/platformsupport/fontdatabases/fontconfig/qfontconfigdatabase.cpp b/qtbase/src/platformsupport/fontdatabases/fontconfig/qfontconfigdatabase.cpp +diff --git a/src/platformsupport/fontdatabases/fontconfig/qfontconfigdatabase.cpp b/src/platformsupport/fontdatabases/fontconfig/qfontconfigdatabase.cpp index 8ebabf3..194f66c 100644 ---- a/qtbase/src/platformsupport/fontdatabases/fontconfig/qfontconfigdatabase.cpp -+++ b/qtbase/src/platformsupport/fontdatabases/fontconfig/qfontconfigdatabase.cpp +--- a/src/platformsupport/fontdatabases/fontconfig/qfontconfigdatabase.cpp ++++ b/src/platformsupport/fontdatabases/fontconfig/qfontconfigdatabase.cpp @@ -471,7 +471,7 @@ static void populateFromPattern(FcPattern *pattern) void QFontconfigDatabase::populateFontDatabase() @@ -39,10 +39,10 @@ index 8ebabf3..194f66c 100644 QFontEngineMulti *QFontconfigDatabase::fontEngineMulti(QFontEngine *fontEngine, QChar::Script script) { return new QFontEngineMultiFontConfig(fontEngine, script); -diff --git a/qtbase/src/platformsupport/fontdatabases/fontconfig/qfontconfigdatabase_p.h b/qtbase/src/platformsupport/fontdatabases/fontconfig/qfontconfigdatabase_p.h +diff --git a/src/platformsupport/fontdatabases/fontconfig/qfontconfigdatabase_p.h b/src/platformsupport/fontdatabases/fontconfig/qfontconfigdatabase_p.h index 2199f39..ab77fab 100644 ---- a/qtbase/src/platformsupport/fontdatabases/fontconfig/qfontconfigdatabase_p.h -+++ b/qtbase/src/platformsupport/fontdatabases/fontconfig/qfontconfigdatabase_p.h +--- a/src/platformsupport/fontdatabases/fontconfig/qfontconfigdatabase_p.h ++++ b/src/platformsupport/fontdatabases/fontconfig/qfontconfigdatabase_p.h @@ -56,6 +56,7 @@ class QFontconfigDatabase : public QBasicFontDatabase { public: |