summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichal Klocek <michal.klocek@qt.io>2017-12-06 16:08:12 +0100
committerAllan Sandfeld Jensen <allan.jensen@qt.io>2018-01-24 18:19:19 +0000
commitf0c5f3306fadc7dea7a13defd8b9cf20a6982493 (patch)
tree5385628f41dfd74d00e6eeeaf49d9f80c1b85018
parent239cd06b9092918a04b3a2407a5274e8394f2c83 (diff)
Add 32bit host compiler test
The 32bit compiler is required for creating v8 snapshots. Task-number: QTBUG-65004 Task-number: QTBUG-64869 Change-Id: I0a7a351208768f0b12900fac14d3abd5c8d99fa2 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
-rw-r--r--config.tests/hostcompiler/hostcompiler.pro9
-rw-r--r--config.tests/hostcompiler/main.cpp6
-rw-r--r--configure.json20
-rw-r--r--mkspecs/features/configure.prf7
-rw-r--r--src/core/config/common.pri7
5 files changed, 47 insertions, 2 deletions
diff --git a/config.tests/hostcompiler/hostcompiler.pro b/config.tests/hostcompiler/hostcompiler.pro
new file mode 100644
index 000000000..5a80246ab
--- /dev/null
+++ b/config.tests/hostcompiler/hostcompiler.pro
@@ -0,0 +1,9 @@
+option(host_build)
+
+gcc:equals(QT_ARCH, "x86_64"):contains(QT_TARGET_ARCH, "arm"):!contains(QT_TARGET_ARCH, "arm64") {
+ QMAKE_CXXFLAGS += -m32
+ QMAKE_LFLAGS += -m32
+}
+
+SOURCES = main.cpp
+
diff --git a/config.tests/hostcompiler/main.cpp b/config.tests/hostcompiler/main.cpp
new file mode 100644
index 000000000..96444ae8b
--- /dev/null
+++ b/config.tests/hostcompiler/main.cpp
@@ -0,0 +1,6 @@
+#include <stdio.h>
+int main()
+{
+ printf("This works\n");
+ return 0;
+}
diff --git a/configure.json b/configure.json
index fecd83ed4..9c9285953 100644
--- a/configure.json
+++ b/configure.json
@@ -21,8 +21,8 @@
"webengine-spellchecker": "boolean",
"webengine-native-spellchecker": "boolean",
"webengine-webrtc": "boolean",
- "webengine-geolocation" : "boolean",
-
+ "webengine-geolocation": "boolean",
+ "webengine-v8-snapshot": "boolean",
"alsa": { "type": "boolean", "name": "webengine-alsa" },
"pulseaudio": { "type": "boolean", "name": "webengine-pulseaudio" },
"ffmpeg": { "type": "enum", "name": "webengine-system-ffmpeg", "values": { "system": "yes", "qt": "no" } },
@@ -189,6 +189,11 @@
"test": "alsa",
"type": "compile"
},
+ "webengine-host-compiler": {
+ "label": "host compiler",
+ "test": "hostcompiler",
+ "type": "compile"
+ },
"webengine-khr": {
"label": "khr",
"test": "khr",
@@ -396,6 +401,16 @@
"condition": "config.unix && tests.alsa",
"output": [ "privateFeature" ]
},
+ "webengine-v8-snapshot": {
+ "label" : "Use v8 snapshot",
+ "purpuse": "Enables the v8 snapshot, for fast v8 context creation",
+ "output": [ "privateFeature" ]
+ },
+ "webengine-v8-snapshot-support": {
+ "autoDetect": "features.webengine-v8-snapshot",
+ "condition": "!config.unix || !features.webengine-embedded-build || tests.webengine-host-compiler",
+ "output": [ "privateFeature" ]
+ },
"webengine-system-khr" : {
"label": "khr",
"condition": "config.unix && tests.webengine-khr",
@@ -600,6 +615,7 @@
"webengine-webrtc",
"webengine-system-ninja",
"webengine-geolocation",
+ "webengine-v8-snapshot-support",
{
"type": "feature",
"args": "webengine-alsa",
diff --git a/mkspecs/features/configure.prf b/mkspecs/features/configure.prf
index 2c0908598..f8c154655 100644
--- a/mkspecs/features/configure.prf
+++ b/mkspecs/features/configure.prf
@@ -30,6 +30,13 @@ defineTest(runConfigure) {
include($$QTWEBENGINE_OUT_ROOT/qtwebengine-config.pri)
QT_FOR_CONFIG += webengine-private
+ !qtConfig(webengine-v8-snapshot-support):qtConfig(webengine-v8-snapshot) {
+ skipBuild("V8 snapshot cannot be built. Most likely, the 32-bit host compiler does not work."\
+ "Please make sure you have 32-bit devel environment installed, or "\
+ "configure webengine with '-no-webengine-v8-snapshot'")
+ return(false)
+ }
+
!qtConfig(webengine-gperf) {
skipBuild("Required gperf could not be found.")
return(false)
diff --git a/src/core/config/common.pri b/src/core/config/common.pri
index 8961e1cd3..ab2a60978 100644
--- a/src/core/config/common.pri
+++ b/src/core/config/common.pri
@@ -84,3 +84,10 @@ optimize_size: gn_args += optimize_for_size=true
# rtti, linking would fail at build time.
sanitize_undefined: gn_args += is_ubsan=true use_rtti=true
}
+
+qtConfig(webengine-v8-snapshot) {
+ gn_args += v8_use_snapshot=true
+} else {
+ gn_args += v8_use_snapshot=false
+}
+