summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichal Klocek <michal.klocek@qt.io>2018-11-13 18:50:01 +0100
committerMichal Klocek <michal.klocek@qt.io>2018-11-21 16:30:02 +0000
commit55181670c621dfd79d0bb05738cb5b59665e6bd7 (patch)
tree5514c1832355cc3612b83c05be343e0a687a42c7
parentc0ac4d0673a25d52ad7d315b6e96f75bbe8be14c (diff)
Add check for thumb instruction set
We currently require thumb instruction set on arm to build internal ffmpeg. Task-number: QTBUG-71772 Change-Id: I43ed152a51f0dea97b800c868eb13a4e5e8e077e Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
-rw-r--r--configure.pri18
-rw-r--r--src/core/config/linux.pri15
-rw-r--r--src/core/configure.json14
3 files changed, 43 insertions, 4 deletions
diff --git a/configure.pri b/configure.pri
index 254755743..26c57ce61 100644
--- a/configure.pri
+++ b/configure.pri
@@ -294,3 +294,21 @@ defineTest(qtConfTest_isWindowsHostCompiler64) {
qtLog("Required 64-bit cross-building or native toolchain was not detected.")
return(false)
}
+
+# Fixme QTBUG-71772
+defineTest(qtConfTest_hasThumbFlag) {
+ FLAG = $$extractCFlag("-mthumb")
+ !isEmpty(FLAG): return(true)
+ FLAG = $$extractCFlag("-marm")
+ !isEmpty(FLAG): return(false)
+
+ MARCH = $$extractCFlag("-march=.*")
+ MARMV = $$replace(MARCH, "armv",)
+ !isEmpty(MARMV) {
+ MARMV = $$split(MARMV,)
+ MARMV = $$member(MARMV, 0)
+ }
+ if (isEmpty(MARMV) | lessThan(MARMV, 7)): return(false)
+ # no flag assume mthumb
+ return(true)
+}
diff --git a/src/core/config/linux.pri b/src/core/config/linux.pri
index 0eea066e4..752d2281f 100644
--- a/src/core/config/linux.pri
+++ b/src/core/config/linux.pri
@@ -69,6 +69,7 @@ contains(QT_ARCH, "arm") {
gn_args += arm_version=$$MARMV
}
+ # TODO: use neon detection from qtbase
!lessThan(MARMV, 8) {
gn_args += arm_use_neon=true
} else {
@@ -83,10 +84,16 @@ contains(QT_ARCH, "arm") {
}
}
- MTHUMB = $$extractCFlag("-mthumb")
- MARM = $$extractCFlag("-marm")
- if (isEmpty(MARMV) | lessThan(MARMV, 7) | !isEmpty(MARM)): gn_args += arm_use_thumb=false
- else: !isEmpty(MTHUMB): gn_args += arm_use_thumb=true
+ qtConfig(webengine-arm-thumb) {
+ gn_args += arm_use_thumb=true # this adds -mthumb
+ } else {
+ gn_args += arm_use_thumb=false
+ !qtConfig(webengine-system-ffmpeg) {
+ # Fixme QTBUG-71772
+ gn_args += media_use_ffmpeg=false
+ gn_args += use_webaudio_ffmpeg=false
+ }
+ }
}
contains(QT_ARCH, "mips") {
diff --git a/src/core/configure.json b/src/core/configure.json
index f49bf08d1..e17605302 100644
--- a/src/core/configure.json
+++ b/src/core/configure.json
@@ -328,6 +328,10 @@
"webengine-win-compiler64": {
"label": "64bit compiler",
"type": "isWindowsHostCompiler64"
+ },
+ "webengine-arm-thumb" : {
+ "label": "thumb instruction set",
+ "type": "hasThumbFlag"
}
},
@@ -659,6 +663,11 @@
"label": "64bit compiler",
"condition": "config.win32 && tests.webengine-win-compiler64",
"output": [ "privateFeature" ]
+ },
+ "webengine-arm-thumb": {
+ "label": "Thumb instruction set",
+ "condition": "config.linux && features.webengine-embedded-build && arch.arm && tests.webengine-arm-thumb",
+ "output": [ "privateFeature" ]
}
},
@@ -697,6 +706,11 @@
"type": "warning",
"condition": "config.win32 && !features.webengine-win-compiler64",
"message": "64-bit cross-building or native toolchain is required to build QtWebEngine."
+ },
+ {
+ "type": "warning",
+ "condition": "config.linux && features.webengine-embedded-build && !features.webengine-system-ffmpeg && arch.arm && !features.webengine-arm-thumb",
+ "message": "Thumb instruction set is required to build ffmpeg for QtWebEngine."
}
],