From 8409844bd66f0186ed227a58db687f0d748ada22 Mon Sep 17 00:00:00 2001 From: Christian Romberg Date: Wed, 9 Oct 2019 11:38:45 +0200 Subject: Fix java mkspec for compatibility with JDK 12 Starting with JDK 12, javac no longer supports source and target version 6. This commit changes the source and target version to 7. [ChangeLog][General] Fixes: QTBUG-79094 Change-Id: Ife8966db01c68251de2fe85307de30c31e658172 Reviewed-by: Eskil Abrahamsen Blomfeldt --- mkspecs/features/java.prf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'mkspecs') diff --git a/mkspecs/features/java.prf b/mkspecs/features/java.prf index f1f5e4c10c..1d52f05e52 100644 --- a/mkspecs/features/java.prf +++ b/mkspecs/features/java.prf @@ -20,7 +20,7 @@ CONFIG += plugin no_plugin_name_prefix javac.input = JAVASOURCES javac.output = $$CLASS_DIR javac.CONFIG += combine -javac.commands = javac -source 6 -target 6 -Xlint:unchecked -bootclasspath $$ANDROID_JAR_FILE -cp $$shell_quote($$system_path($$join(JAVACLASSPATH, $$DIRLIST_SEPARATOR))) -d $$shell_quote($$CLASS_DIR) ${QMAKE_FILE_IN} +javac.commands = javac -source 7 -target 7 -Xlint:unchecked -bootclasspath $$ANDROID_JAR_FILE -cp $$shell_quote($$system_path($$join(JAVACLASSPATH, $$DIRLIST_SEPARATOR))) -d $$shell_quote($$CLASS_DIR) ${QMAKE_FILE_IN} # Force rebuild every time, because we don't know the paths of the destination files # as they depend on the code. javac.depends = FORCE -- cgit v1.2.3 From 4514b67d7c31c95e7f753192b74fb15cbe4b033a Mon Sep 17 00:00:00 2001 From: Ulf Hermann Date: Tue, 22 Oct 2019 10:50:19 +0200 Subject: moc: When generating metatypes, allow empty MOC_DIR We don't want the metatypes to be generated into the file system root in that case. Change-Id: I91bab20fa498de0f2918d8ee5b2f230cc0610aae Reviewed-by: Simon Hausmann --- mkspecs/features/metatypes.prf | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) (limited to 'mkspecs') diff --git a/mkspecs/features/metatypes.prf b/mkspecs/features/metatypes.prf index a0a548eeb2..64387458ac 100644 --- a/mkspecs/features/metatypes.prf +++ b/mkspecs/features/metatypes.prf @@ -2,17 +2,25 @@ qtPrepareTool(MOC_COLLECT_JSON, moc) QMAKE_MOC_OPTIONS += --output-json +MOC_JSON_H_BASE = $${QMAKE_H_MOD_MOC} +MOC_JSON_CPP_BASE = $${QMAKE_CPP_MOD_MOC} + +!isEmpty(MOC_DIR) { + MOC_JSON_H_BASE = $$MOC_DIR/$${MOC_JSON_H_BASE} + MOC_JSON_CPP_BASE = $$MOC_DIR/$${MOC_JSON_CPP_BASE} +} + moc_json_header.input = HEADERS -moc_json_header.output = $$MOC_DIR/$${QMAKE_H_MOD_MOC}${QMAKE_FILE_BASE}$${first(QMAKE_EXT_CPP)}.json +moc_json_header.output = $${MOC_JSON_H_BASE}${QMAKE_FILE_BASE}$${first(QMAKE_EXT_CPP)}.json moc_json_header.CONFIG = no_link moc_verify -moc_json_header.depends = $$MOC_DIR/$${QMAKE_H_MOD_MOC}${QMAKE_FILE_BASE}$${first(QMAKE_EXT_CPP)} +moc_json_header.depends = $${MOC_JSON_H_BASE}${QMAKE_FILE_BASE}$${first(QMAKE_EXT_CPP)} moc_json_header.commands = $$escape_expand(\\n) # force creation of rule moc_json_header.variable_out = MOC_JSON_FILES moc_json_source.input = SOURCES -moc_json_source.output = $$MOC_DIR/$${QMAKE_CPP_MOD_MOC}${QMAKE_FILE_BASE}$${QMAKE_EXT_CPP_MOC}.json +moc_json_source.output = $${MOC_JSON_CPP_BASE}${QMAKE_FILE_BASE}$${QMAKE_EXT_CPP_MOC}.json moc_json_source.CONFIG = no_link moc_verify -moc_json_source.depends = $$MOC_DIR/$${QMAKE_CPP_MOD_MOC}${QMAKE_FILE_BASE}$${QMAKE_EXT_CPP_MOC} +moc_json_source.depends = $${MOC_JSON_CPP_BASE}${QMAKE_FILE_BASE}$${QMAKE_EXT_CPP_MOC} moc_json_source.commands = $$escape_expand(\\n) # force creation of rule moc_json_source.variable_out = MOC_JSON_FILES -- cgit v1.2.3 From c686e885c004a48c90cff300c0ad1e817e43fb99 Mon Sep 17 00:00:00 2001 From: Oliver Wolff Date: Mon, 21 Oct 2019 15:39:50 +0200 Subject: qmake: Disallow building Qt examples inside the source tree Building examples inside a Qt source tree is considered unsupported. Instead of checking, whether the build is done "in source" inside the source directory, we also have to check for "shadowed example builds" as they are done by Creator. An example would be: qtbase/examples/widgets/widgets/build-wiggly as a shadow build for qtbase/examples/widgets/widgets/wiggly. Fixes: QTBUG-76237 Change-Id: Iceb88af006fad249a4c13fa0b0345cf3f7086252 Reviewed-by: Joerg Bornemann --- mkspecs/features/qt_example_installs.prf | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) (limited to 'mkspecs') diff --git a/mkspecs/features/qt_example_installs.prf b/mkspecs/features/qt_example_installs.prf index 43b58817fe..72b47bce27 100644 --- a/mkspecs/features/qt_example_installs.prf +++ b/mkspecs/features/qt_example_installs.prf @@ -25,14 +25,16 @@ defineTest(addInstallFiles) { export($$1) } -probase = $$relative_path($$_PRO_FILE_PWD_, $$dirname(_QMAKE_CONF_)/examples) +moduleRoot = $$dirname(_QMAKE_CONF_) +probase = $$relative_path($$_PRO_FILE_PWD_, $$moduleRoot/examples) isEmpty(probase)|contains(probase, ^\\..*): \ return() isEmpty(_QMAKE_CACHE_) { - !equals(OUT_PWD, $$_PRO_FILE_PWD_): \ - return() - error("You cannot build examples inside the Qt source tree, except as part of a proper Qt build.") + moduleRootRelativeToBuildDir = $$relative_path($$moduleRoot, $$OUT_PWD) + # Check if OUT_PWD is inside module root + equals(moduleRootRelativeToBuildDir, .)|contains(moduleRootRelativeToBuildDir, \(\.\./\)+\(\.\.\)?): \ + error("You cannot build examples inside the Qt source tree, except as part of a proper Qt build.") } contains(TEMPLATE, "vc.*"): \ -- cgit v1.2.3 From 86a0f1cfd7942e31d1462f74769eef5a5cf3c9ab Mon Sep 17 00:00:00 2001 From: BogDan Vatra Date: Tue, 22 Oct 2019 12:41:26 +0300 Subject: Add build-id flag This flag is needed by LLDB & simple perf tools to locate the right binary. Change-Id: Iffa1b0678663cfb9d1d699da5ad6fe672863918c Reviewed-by: Eskil Abrahamsen Blomfeldt --- mkspecs/android-clang/qmake.conf | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'mkspecs') diff --git a/mkspecs/android-clang/qmake.conf b/mkspecs/android-clang/qmake.conf index 81609c3962..ec6c765799 100644 --- a/mkspecs/android-clang/qmake.conf +++ b/mkspecs/android-clang/qmake.conf @@ -70,8 +70,8 @@ QMAKE_CFLAGS_THREAD = -D_REENTRANT QMAKE_CFLAGS_HIDESYMS = -fvisibility=hidden QMAKE_CFLAGS_NEON = -mfpu=neon -QMAKE_LFLAGS_APP = -Wl,--no-undefined -Wl,-z,noexecstack -shared -QMAKE_LFLAGS_SHLIB = -Wl,--no-undefined -Wl,-z,noexecstack -shared +QMAKE_LFLAGS_APP = -Wl,--build-id=sha1 -Wl,--no-undefined -Wl,-z,noexecstack -shared +QMAKE_LFLAGS_SHLIB = -Wl,--build-id=sha1 -Wl,--no-undefined -Wl,-z,noexecstack -shared QMAKE_LFLAGS_PLUGIN = $$QMAKE_LFLAGS_SHLIB QMAKE_LFLAGS_NOUNDEF = -Wl,--no-undefined QMAKE_LFLAGS_RPATH = -Wl,-rpath= -- cgit v1.2.3 From 6acab25f97820023b9998359e6ca79cf11a4ab5c Mon Sep 17 00:00:00 2001 From: Christian Romberg Date: Fri, 18 Oct 2019 17:02:28 +0200 Subject: Remove GCC-style PCH directives from android-clang mkspec As described in QTBUG-72404, the android-clang mkspec has the gcc pch style hardcoded for no reason. This change removes the respective lines. [ChangeLog][qmake][Android] Remove gcc-style PCH directives from the android-clang mkspec. Fixes: QTBUG-72404 Change-Id: Iad42651e25ecce08eda7aa5fa8bbf531c9497896 Reviewed-by: BogDan Vatra --- mkspecs/android-clang/qmake.conf | 7 ------- 1 file changed, 7 deletions(-) (limited to 'mkspecs') diff --git a/mkspecs/android-clang/qmake.conf b/mkspecs/android-clang/qmake.conf index ec6c765799..ae1a365abd 100644 --- a/mkspecs/android-clang/qmake.conf +++ b/mkspecs/android-clang/qmake.conf @@ -43,13 +43,6 @@ isEmpty(ALL_ANDROID_ABIS): ALL_ANDROID_ABIS = arm64-v8a armeabi-v7a x86_64 x86 CONFIG += $$ANDROID_PLATFORM -QMAKE_PCH_OUTPUT_EXT = .gch - -QMAKE_CFLAGS_PRECOMPILE = -x c-header -c ${QMAKE_PCH_INPUT} -o ${QMAKE_PCH_OUTPUT} -QMAKE_CFLAGS_USE_PRECOMPILE = -include ${QMAKE_PCH_OUTPUT_BASE} -QMAKE_CXXFLAGS_PRECOMPILE = -x c++-header -c ${QMAKE_PCH_INPUT} -o ${QMAKE_PCH_OUTPUT} -QMAKE_CXXFLAGS_USE_PRECOMPILE = $$QMAKE_CFLAGS_USE_PRECOMPILE - NDK_LLVM_PATH = $$NDK_ROOT/toolchains/llvm/prebuilt/$$NDK_HOST QMAKE_CC = $$NDK_LLVM_PATH/bin/clang QMAKE_CXX = $$NDK_LLVM_PATH/bin/clang++ -- cgit v1.2.3 From a9b34f5726923babed448e2b4af42f117ae53ca4 Mon Sep 17 00:00:00 2001 From: Francisco Boni Date: Tue, 15 Oct 2019 17:56:26 -0300 Subject: QRandom: add support for RDSEED on INTEL_ICL & MSVC We set the macro for RDSEED because neither MSVC nor the Intel compiler on Windows defines the macro. The implication is that when qRandomCpu() calls qCpuHasFeature() in simd.cpp, qDetectCpuFeatures() correctly receives the expected CPU features enabled in the build from qCompilerCpuFeatures, namely CpuFeatureRDSEED (qsimd_x86_p.h) Change-Id: I5741d4f956a93f21c358af8a4ee393c1741b85ee Reviewed-by: Thiago Macieira --- mkspecs/win32-icc/qmake.conf | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'mkspecs') diff --git a/mkspecs/win32-icc/qmake.conf b/mkspecs/win32-icc/qmake.conf index 3cb0d58824..af26c5bc15 100644 --- a/mkspecs/win32-icc/qmake.conf +++ b/mkspecs/win32-icc/qmake.conf @@ -22,7 +22,7 @@ QMAKE_CFLAGS_WARN_OFF = -W0 QMAKE_CFLAGS_DEBUG = $$QMAKE_CFLAGS_OPTIMIZE_DEBUG -Zi -MDd QMAKE_CFLAGS_UTF8_SOURCE = -Qoption,cpp,--unicode_source_kind,UTF-8 QMAKE_CFLAGS_LTCG = -Qipo -QMAKE_CFLAGS_DISABLE_LTCG = -Qno-ipo +QMAKE_CFLAGS_DISABLE_LTCG = -Qipo- QMAKE_CFLAGS_SSE2 = -QxSSE2 QMAKE_CFLAGS_SSE3 = -QxSSE3 @@ -39,6 +39,11 @@ QMAKE_CFLAGS_AVX512DQ += -QxCORE-AVX512 QMAKE_CFLAGS_AVX512BW += -QxCORE-AVX512 QMAKE_CFLAGS_AVX512VL += -QxCORE-AVX512 QMAKE_CFLAGS_F16C = $$QMAKE_CFLAGS_AVX2 +QMAKE_CFLAGS_RDRND = $$QMAKE_CFLAGS_AVX2 +# ICC on Windows lacks the mrdseed compiler option that sets the RDSEED macro +QMAKE_CFLAGS_RDSEED = -D__RDSEED__=1 +QMAKE_CFLAGS_ARCH_HASWELL = $$QMAKE_CFLAGS_AVX2 + QMAKE_CFLAGS_AESNI = -QxSSE2 QMAKE_CFLAGS_SHANI = -QxSSE4.2 -- cgit v1.2.3