summaryrefslogtreecommitdiffstats
path: root/Tools
diff options
context:
space:
mode:
authorKonstantin Tokarev <annulen@yandex.ru>2017-01-27 08:36:56 +0300
committerKonstantin Tokarev <annulen@yandex.ru>2017-02-02 12:31:42 +0000
commit6b406688a4020916ba2966e6e5252d9c1385970f (patch)
tree65af619b76adb44fee03f2e496a2e4dc5c455dd8 /Tools
parent46167faa61861b01a0e4e8e774da9febc3c2956e (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.cpp61
-rw-r--r--Tools/QtTestBrowser/launcherwindow.h9
-rw-r--r--Tools/QtTestBrowser/qttestbrowser.cpp13
-rw-r--r--Tools/Scripts/webkitperl/FeatureList.pm6
-rw-r--r--Tools/qmake/mkspecs/features/functions.prf13
-rw-r--r--Tools/qmake/projects/run_cmake.pro4
-rwxr-xr-xTools/qt/convert-prl-libs-to-cmake.pl39
-rw-r--r--Tools/qt/jhbuild-qt-5.4.modules59
-rw-r--r--Tools/qt/jhbuild.modules28
-rw-r--r--Tools/qt/jhbuildrc6
-rwxr-xr-xTools/qt/make-snapshot.pl22
-rw-r--r--Tools/qt/manifest.txt5
-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: