summaryrefslogtreecommitdiffstats
path: root/configure.pri
diff options
context:
space:
mode:
Diffstat (limited to 'configure.pri')
-rw-r--r--configure.pri77
1 files changed, 57 insertions, 20 deletions
diff --git a/configure.pri b/configure.pri
index e9fd055854..7b8dee0953 100644
--- a/configure.pri
+++ b/configure.pri
@@ -14,21 +14,26 @@ defineTest(qtConfCommandline_qmakeArgs) {
}
defineTest(qtConfCommandline_cxxstd) {
- msvc: \
- qtConfAddError("Command line option -c++std is not supported with MSVC compilers.")
-
arg = $${1}
val = $${2}
isEmpty(val): val = $$qtConfGetNextCommandlineArg()
!contains(val, "^-.*"):!isEmpty(val) {
contains(val, "(c\+\+)?11") {
qtConfCommandlineSetInput("c++14", "no")
+ qtConfCommandlineSetInput("c++1z", "no")
+ qtConfCommandlineSetInput("c++2a", "no")
} else: contains(val, "(c\+\+)?(14|1y)") {
qtConfCommandlineSetInput("c++14", "yes")
qtConfCommandlineSetInput("c++1z", "no")
- } else: contains(val, "(c\+\+)?(1z)") {
+ qtConfCommandlineSetInput("c++2a", "no")
+ } else: contains(val, "(c\+\+)?(17|1z)") {
qtConfCommandlineSetInput("c++14", "yes")
qtConfCommandlineSetInput("c++1z", "yes")
+ qtConfCommandlineSetInput("c++2a", "no")
+ } else: contains(val, "(c\+\+)?(2a)") {
+ qtConfCommandlineSetInput("c++14", "yes")
+ qtConfCommandlineSetInput("c++1z", "yes")
+ qtConfCommandlineSetInput("c++2a", "yes")
} else {
qtConfAddError("Invalid argument $$val to command line parameter $$arg")
}
@@ -58,6 +63,21 @@ defineTest(qtConfCommandline_sanitize) {
}
}
+defineTest(qtConfCommandline_coverage) {
+ arg = $${1}
+ val = $${2}
+ isEmpty(val): val = $$qtConfGetNextCommandlineArg()
+ !contains(val, "^-.*"):!isEmpty(val) {
+ equals(val, "trace-pc-guard") {
+ qtConfCommandlineSetInput("coverage_trace_pc_guard", "yes")
+ } else {
+ qtConfAddError("Invalid argument $$val to command line parameter $$arg")
+ }
+ } else {
+ qtConfAddError("Missing argument to command line parameter $$arg")
+ }
+}
+
# callbacks
defineReplace(qtConfFunc_crossCompile) {
@@ -269,29 +289,36 @@ defineTest(qtConfTest_architecture) {
host = $$eval($${1}.host)
isEmpty(host): host = false
file_prefix =
- ext =
+ exts = -
$$host {
equals(QMAKE_HOST.os, Windows): \
- ext = .exe
+ exts = .exe
} else {
win32 {
- ext = .exe
+ exts = .exe
} else:android {
file_prefix = lib
- ext = .so
+ exts = .so
} else:wasm {
- ext = .wasm
+ exts = .wasm .o
}
}
test = $$eval($${1}.test)
output = $$eval($${1}.output)
test_out_dir = $$OUT_PWD/$$basename(QMAKE_CONFIG_TESTS_DIR)/$$test
- test_out_file = $$test_out_dir/$$file_prefix$$output$$ext
- exists($$test_out_file): \
- content = $$cat($$test_out_file, blob)
- else: \
+ test_out_file =
+ for(ext, exts) {
+ equals(ext, -): ext =
+ f = $$test_out_dir/$$file_prefix$$output$$ext
+ exists($$f) {
+ test_out_file = $$f
+ break()
+ }
+ }
+ isEmpty(test_out_file): \
error("$$eval($${1}.label) detection binary not found.")
+ content = $$cat($$test_out_file, blob)
arch_magic = ".*==Qt=magic=Qt== Architecture:([^\\0]*).*"
subarch_magic = ".*==Qt=magic=Qt== Sub-architecture:([^\\0]*).*"
@@ -620,14 +647,8 @@ defineTest(qtConfOutput_prepareOptions) {
target_arch = armeabi-v7a
platform = $$eval(config.input.android-ndk-platform)
- isEmpty(platform): equals(target_arch, arm64-v8a): \
- platform = android-21
-
- isEmpty(platform): equals(target_arch, x86_64): \
- platform = android-21
-
isEmpty(platform): \
- platform = android-16 ### the windows configure disagrees ...
+ platform = android-21
$${currentConfig}.output.devicePro += \
"DEFAULT_ANDROID_SDK_ROOT = $$val_escape(sdk_root)" \
@@ -1034,6 +1055,14 @@ defineTest(qtConfOutput_crossCompile) {
export(CONFIG)
}
+defineTest(qtConfOutput_useBFDLinker) {
+ !$${2}: return()
+
+ # We need to preempt the output here, so that qtConfTest_linkerSupportsFlag can work properly in qtbase
+ CONFIG += use_bfd_linker
+ export(CONFIG)
+}
+
defineTest(qtConfOutput_useGoldLinker) {
!$${2}: return()
@@ -1042,6 +1071,14 @@ defineTest(qtConfOutput_useGoldLinker) {
export(CONFIG)
}
+defineTest(qtConfOutput_useLLDLinker) {
+ !$${2}: return()
+
+ # We need to preempt the output here, so that qtConfTest_linkerSupportsFlag can work properly in qtbase
+ CONFIG += use_lld_linker
+ export(CONFIG)
+}
+
defineTest(qtConfOutput_debugAndRelease) {
$$qtConfEvaluate("features.debug") {
qtConfOutputVar(append, "publicPro", "CONFIG", "debug")