diff options
author | Qt Forward Merge Bot <qt_forward_merge_bot@qt-project.org> | 2019-11-25 01:00:25 +0100 |
---|---|---|
committer | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2019-11-25 11:30:04 +0100 |
commit | 58c69df4d38324644bc49ec5f42ee8343a454b2d (patch) | |
tree | de0a1ce603292dcaff134d4e1e8ab064295515a2 /mkspecs | |
parent | 03b1d2c44940322208c12c7bceee376b51d8e852 (diff) | |
parent | 59a705e3710b0ba93bb698e3223241cfac932948 (diff) |
Merge remote-tracking branch 'origin/5.15' into dev
Conflicts:
src/corelib/tools/qhash.h
src/gui/kernel/qevent.h
src/widgets/kernel/qshortcut.cpp
src/widgets/kernel/qshortcut.h
Change-Id: If61c206ee43ad1d97f5b07f58ac93c4583ce5620
Diffstat (limited to 'mkspecs')
-rw-r--r-- | mkspecs/android-clang/qmake.conf | 5 | ||||
-rw-r--r-- | mkspecs/common/clang-mac.conf | 1 | ||||
-rw-r--r-- | mkspecs/common/g++-base.conf | 4 | ||||
-rw-r--r-- | mkspecs/common/macx.conf | 8 | ||||
-rw-r--r-- | mkspecs/common/sanitize.conf | 4 | ||||
-rw-r--r-- | mkspecs/features/android/android_deployment_settings.prf | 16 | ||||
-rw-r--r-- | mkspecs/features/ltcg.prf | 6 | ||||
-rw-r--r-- | mkspecs/features/metatypes.prf | 20 | ||||
-rw-r--r-- | mkspecs/features/qml_plugin.prf | 5 | ||||
-rw-r--r-- | mkspecs/features/qt_configure.prf | 2 | ||||
-rw-r--r-- | mkspecs/features/resources.prf | 59 | ||||
-rw-r--r-- | mkspecs/features/resources_functions.prf | 63 | ||||
-rw-r--r-- | mkspecs/features/sanitizer.prf | 6 | ||||
-rw-r--r-- | mkspecs/macx-ios-clang/qmake.conf | 2 | ||||
-rw-r--r-- | mkspecs/macx-tvos-clang/qmake.conf | 2 | ||||
-rw-r--r-- | mkspecs/macx-watchos-clang/qmake.conf | 2 |
16 files changed, 135 insertions, 70 deletions
diff --git a/mkspecs/android-clang/qmake.conf b/mkspecs/android-clang/qmake.conf index ae1a365abd..31ee5d2637 100644 --- a/mkspecs/android-clang/qmake.conf +++ b/mkspecs/android-clang/qmake.conf @@ -70,6 +70,11 @@ QMAKE_LFLAGS_NOUNDEF = -Wl,--no-undefined QMAKE_LFLAGS_RPATH = -Wl,-rpath= QMAKE_LFLAGS_RPATHLINK = -Wl,-rpath-link= +equals(QMAKE_HOST.os, Windows) { + QMAKE_LINK_OBJECT_MAX = 10 + QMAKE_LINK_OBJECT_SCRIPT = object_script +} + QMAKE_LIBS_X11 = QMAKE_LIBS_THREAD = QMAKE_LIBS_OPENGL = diff --git a/mkspecs/common/clang-mac.conf b/mkspecs/common/clang-mac.conf index cbae2e6262..143406308c 100644 --- a/mkspecs/common/clang-mac.conf +++ b/mkspecs/common/clang-mac.conf @@ -5,6 +5,7 @@ QMAKE_OBJCXXFLAGS_PRECOMPILE = -x objective-c++-header -c ${QMAKE_PCH_INPUT} QMAKE_OBJCXXFLAGS_USE_PRECOMPILE = $$QMAKE_CFLAGS_USE_PRECOMPILE QMAKE_XCODE_GCC_VERSION = com.apple.compilers.llvm.clang.1_0 +QMAKE_LFLAGS_LTCG_SEPARATE_DEBUG_INFO = -Wl,-object_path_lto,${OBJECTS_DIR}/${TARGET}_lto.o QMAKE_CXXFLAGS += -stdlib=libc++ QMAKE_LFLAGS += -stdlib=libc++ diff --git a/mkspecs/common/g++-base.conf b/mkspecs/common/g++-base.conf index 8053feb876..c337696304 100644 --- a/mkspecs/common/g++-base.conf +++ b/mkspecs/common/g++-base.conf @@ -10,12 +10,12 @@ QMAKE_COMPILER = gcc -QMAKE_CC = gcc +QMAKE_CC = $${CROSS_COMPILE}gcc QMAKE_LINK_C = $$QMAKE_CC QMAKE_LINK_C_SHLIB = $$QMAKE_CC -QMAKE_CXX = g++ +QMAKE_CXX = $${CROSS_COMPILE}g++ QMAKE_LINK = $$QMAKE_CXX QMAKE_LINK_SHLIB = $$QMAKE_CXX diff --git a/mkspecs/common/macx.conf b/mkspecs/common/macx.conf index 67552dcc6c..d16b77acb8 100644 --- a/mkspecs/common/macx.conf +++ b/mkspecs/common/macx.conf @@ -5,9 +5,13 @@ QMAKE_PLATFORM += macos osx macx QMAKE_MAC_SDK = macosx -QMAKE_MACOSX_DEPLOYMENT_TARGET = 10.12 +QMAKE_MACOSX_DEPLOYMENT_TARGET = 10.13 QMAKE_APPLE_DEVICE_ARCHS = x86_64 -QT_MAC_SDK_VERSION_MIN = 10.13 + +# Should be 10.15, but as long as the CI builds with +# older SDKs we have to keep this. +QT_MAC_SDK_VERSION_MIN = 10.14 + QT_MAC_SDK_VERSION_MAX = 10.15 device.sdk = macosx diff --git a/mkspecs/common/sanitize.conf b/mkspecs/common/sanitize.conf index 5e09406cfb..8417fa4c2f 100644 --- a/mkspecs/common/sanitize.conf +++ b/mkspecs/common/sanitize.conf @@ -17,6 +17,10 @@ QMAKE_SANITIZE_MEMORY_CFLAGS = -fsanitize=memory QMAKE_SANITIZE_MEMORY_CXXFLAGS = -fsanitize=memory QMAKE_SANITIZE_MEMORY_LFLAGS = -fsanitize=memory +QMAKE_SANITIZE_FUZZERNL_CFLAGS = -fsanitize=fuzzer-no-link +QMAKE_SANITIZE_FUZZERNL_CXXFLAGS = -fsanitize=fuzzer-no-link +QMAKE_SANITIZE_FUZZERNL_LFLAGS = -fsanitize=fuzzer-no-link + QMAKE_SANITIZE_UNDEFINED_CFLAGS = -fsanitize=undefined QMAKE_SANITIZE_UNDEFINED_CXXFLAGS = -fsanitize=undefined QMAKE_SANITIZE_UNDEFINED_LFLAGS = -fsanitize=undefined diff --git a/mkspecs/features/android/android_deployment_settings.prf b/mkspecs/features/android/android_deployment_settings.prf index 4d6101e297..e781eb024c 100644 --- a/mkspecs/features/android/android_deployment_settings.prf +++ b/mkspecs/features/android/android_deployment_settings.prf @@ -63,6 +63,22 @@ contains(TEMPLATE, ".*app"):!build_pass:!android-embedded { QML_ROOT_PATH = $$_PRO_FILE_PWD_ FILE_CONTENT += " \"qml-root-path\": $$emitString($$QML_ROOT_PATH)," FILE_CONTENT += " \"stdcpp-path\": $$emitString($$ANDROID_STDCPP_PATH)," + !isEmpty(RESOURCES) { + # Make sure that qmake generated qrc files are accounted for + load(resources_functions) + qtFlattenResources() + for(resource, RESOURCES) { + contains(resource, ".*\\qmake_qmake_immediate.qrc$") { + # They will be created for each architecture, since they could be different + # we need to account for all of them + for (arch, ANDROID_ABIS): \ + rescopy += $$absolute_path("qmake_qmake_immediate.qrc", $$OUT_PWD/$$arch) + } else { + contains(resource, ".*\\.qrc$"): rescopy += $$absolute_path($$resource, $$_PRO_FILE_PWD_) + } + } + FILE_CONTENT += " \"qrcFiles\": $$emitString($$join(rescopy, ","))," + } FILE_CONTENT += "" FILE_CONTENT += " \"application-binary\": $$emitString($$TARGET)" FILE_CONTENT += "}" diff --git a/mkspecs/features/ltcg.prf b/mkspecs/features/ltcg.prf index 10d14dfe85..d81f340edd 100644 --- a/mkspecs/features/ltcg.prf +++ b/mkspecs/features/ltcg.prf @@ -1,6 +1,12 @@ static:no-static-ltcg { # Static library but no-static-ltcg enabled: skip LTCG } else: CONFIG(release, debug|release) { + separate_debug_info { + # Evaluate single-$ variable references that have no valid value at mkspec loading time + QMAKE_LFLAGS_LTCG_SEPARATE_DEBUG_INFO ~= s/\\$\\{/\$\$\{/ + eval(QMAKE_LFLAGS_LTCG += $$QMAKE_LFLAGS_LTCG_SEPARATE_DEBUG_INFO) + } + # We need fat object files when creating static libraries on some platforms # so the linker will know to load a particular object from the library # in the first place. On others, we have special ar and nm to create the symbol diff --git a/mkspecs/features/metatypes.prf b/mkspecs/features/metatypes.prf index 64387458ac..c2eb8d8659 100644 --- a/mkspecs/features/metatypes.prf +++ b/mkspecs/features/metatypes.prf @@ -1,5 +1,7 @@ qtPrepareTool(MOC_COLLECT_JSON, moc) +load(qt_build_paths) + QMAKE_MOC_OPTIONS += --output-json MOC_JSON_H_BASE = $${QMAKE_H_MOD_MOC} @@ -26,17 +28,25 @@ moc_json_source.variable_out = MOC_JSON_FILES MOC_COLLECT_JSON_OUTPUT = $$lower($$basename(TARGET))_metatypes.json -moc_collect_json.CONFIG += no_link combine +moc_collect_json.CONFIG += no_link combine target_predeps moc_collect_json.commands = $$MOC_COLLECT_JSON --collect-json -o ${QMAKE_FILE_OUT} ${QMAKE_FILE_IN} moc_collect_json.input = MOC_JSON_FILES moc_collect_json.output = $$MOC_COLLECT_JSON_OUTPUT moc_collect_json.name = Collect moc JSON output into central file install_metatypes { - do_install.path = $$[QT_INSTALL_LIBS]/metatypes - do_install.files = $$OUT_PWD/$$MOC_COLLECT_JSON_OUTPUT - prefix_build: INSTALLS += do_install - else: COPIES += do_install + do_install_metatypes.path = $$[QT_INSTALL_LIBS]/metatypes + do_install_metatypes.files = $$OUT_PWD/$$MOC_COLLECT_JSON_OUTPUT + prefix_build { + !isEmpty(MODULE_BASE_OUTDIR) { + metatypes_to_builddir.files = $$do_install_metatypes.files + metatypes_to_builddir.path = $$MODULE_BASE_OUTDIR/lib/metatypes + COPIES += metatypes_to_builddir + } + INSTALLS += do_install_metatypes + } else { + COPIES += do_install_metatypes + } } QMAKE_EXTRA_COMPILERS += moc_collect_json moc_json_header moc_json_source diff --git a/mkspecs/features/qml_plugin.prf b/mkspecs/features/qml_plugin.prf index f1c5658b04..1b67435787 100644 --- a/mkspecs/features/qml_plugin.prf +++ b/mkspecs/features/qml_plugin.prf @@ -68,7 +68,10 @@ load(qt_common) # To regenerate run 'make qmltypes' which will update the plugins.qmltypes file in the source # directory. Then review and commit the changes made to plugins.qmltypes. # -!cross_compile { +# Due to the above mentioned drawbacks, there is a better mechanism available now: qmltyperegistrar +# can generate the .qmltypes files at compile time. It will do this when CONFIG += qmltypes is set. +# Therefore, don't try to generate the qmltypes files via qmlplugindump in that case. +!cross_compile:!qmltypes { qmlplugindump = qmlplugindump importpath.name = QML2_IMPORT_PATH importpath.value = diff --git a/mkspecs/features/qt_configure.prf b/mkspecs/features/qt_configure.prf index adac835c26..7ed1f7f03a 100644 --- a/mkspecs/features/qt_configure.prf +++ b/mkspecs/features/qt_configure.prf @@ -759,6 +759,8 @@ defineTest(qtConfLibrary_pkgConfig) { return(false) contains($${1}.libs, ".*\\.$${QMAKE_EXTENSION_STATICLIB}$") { qtRunLoggedCommand("$$pkg_config --static --libs $$args", libs)|return(false) + # Split by space + eval(libs = $$libs) !qtConfResolveLibs($${1}.libs, $$libs): \ return(false) } diff --git a/mkspecs/features/resources.prf b/mkspecs/features/resources.prf index fa8ff1fb58..ca95768de8 100644 --- a/mkspecs/features/resources.prf +++ b/mkspecs/features/resources.prf @@ -16,63 +16,8 @@ defineReplace(xml_escape) { return($$1) } -RESOURCES += qmake_immediate -for(resource, RESOURCES) { - # Regular case of user qrc file - contains(resource, ".*\\.qrc$"): \ - next() - - # Fallback for stand-alone files/directories - !defined($${resource}.files, var) { - !equals(resource, qmake_immediate) { - !exists($$absolute_path($$resource, $$_PRO_FILE_PWD_)): \ - warning("Failure to find: $$resource") - qmake_immediate.files += $$resource - OTHER_FILES *= $$resource - } - RESOURCES -= $$resource - next() - } - - resource_file = $$absolute_path($$RCC_DIR/qmake_$${resource}.qrc, $$OUT_PWD) - - isEmpty(BUILDS)|build_pass { - # Collection of files, generate qrc file - prefix = $$eval($${resource}.prefix) - isEmpty(prefix): \ - prefix = "/" - - resource_file_content = \ - "<!DOCTYPE RCC><RCC version=\"1.0\">" \ - "<qresource prefix=\"$$xml_escape($$prefix)\">" - - abs_base = $$absolute_path($$eval($${resource}.base), $$_PRO_FILE_PWD_) - - for(file, $${resource}.files) { - abs_path = $$absolute_path($$file, $$_PRO_FILE_PWD_) - files = $$files($$abs_path/*, true) - isEmpty(files): \ - files = $$abs_path - for (file, files) { - exists($$file/*): next() # exclude directories - alias = $$relative_path($$file, $$abs_base) - resource_file_content += \ - "<file alias=\"$$xml_escape($$alias)\">$$xml_escape($$file)</file>" - OTHER_FILES *= $$file - } - } - - resource_file_content += \ - "</qresource>" \ - "</RCC>" - - !write_file($$resource_file, resource_file_content): \ - error() - } - - RESOURCES -= $$resource - RESOURCES += $$resource_file -} +load(resources_functions) +qtFlattenResources() !isEmpty(RESOURCES):contains(TEMPLATE, .*lib):plugin:static { pluginBaseName = $$basename(TARGET) diff --git a/mkspecs/features/resources_functions.prf b/mkspecs/features/resources_functions.prf new file mode 100644 index 0000000000..f7fed9e524 --- /dev/null +++ b/mkspecs/features/resources_functions.prf @@ -0,0 +1,63 @@ +defineTest(qtFlattenResources) { + RESOURCES += qmake_immediate + for(resource, RESOURCES) { + # Regular case of user qrc file + contains(resource, ".*\\.qrc$"): \ + next() + + # Fallback for stand-alone files/directories + !defined($${resource}.files, var) { + !equals(resource, qmake_immediate) { + !exists($$absolute_path($$resource, $$_PRO_FILE_PWD_)): \ + warning("Failure to find: $$resource") + qmake_immediate.files += $$resource + OTHER_FILES *= $$resource + } + RESOURCES -= $$resource + next() + } + + resource_file = $$absolute_path($$RCC_DIR/qmake_$${resource}.qrc, $$OUT_PWD) + + isEmpty(BUILDS)|build_pass { + # Collection of files, generate qrc file + prefix = $$eval($${resource}.prefix) + isEmpty(prefix): \ + prefix = "/" + + resource_file_content = \ + "<!DOCTYPE RCC><RCC version=\"1.0\">" \ + "<qresource prefix=\"$$xml_escape($$prefix)\">" + + abs_base = $$absolute_path($$eval($${resource}.base), $$_PRO_FILE_PWD_) + + for(file, $${resource}.files) { + abs_path = $$absolute_path($$file, $$_PRO_FILE_PWD_) + files = $$files($$abs_path/*, true) + isEmpty(files): \ + files = $$abs_path + for (file, files) { + exists($$file/*): next() # exclude directories + alias = $$relative_path($$file, $$abs_base) + resource_file_content += \ + "<file alias=\"$$xml_escape($$alias)\">$$xml_escape($$file)</file>" + OTHER_FILES *= $$file + } + } + + resource_file_content += \ + "</qresource>" \ + "</RCC>" + + !write_file($$resource_file, resource_file_content): \ + error() + } + + RESOURCES -= $$resource + RESOURCES += $$resource_file + } + export(RESOURCES) + export(OTHER_FILES) + export(qmake_immediate.files) + return(true) +} diff --git a/mkspecs/features/sanitizer.prf b/mkspecs/features/sanitizer.prf index c7d72aec80..12ca1a17bd 100644 --- a/mkspecs/features/sanitizer.prf +++ b/mkspecs/features/sanitizer.prf @@ -42,6 +42,12 @@ sanitize_thread { QMAKE_LFLAGS += $$QMAKE_SANITIZE_THREAD_LFLAGS } +sanitize_fuzzer_no_link { + QMAKE_CFLAGS += $$QMAKE_SANITIZE_FUZZERNL_CFLAGS + QMAKE_CXXFLAGS += $$QMAKE_SANITIZE_FUZZERNL_CXXFLAGS + QMAKE_LFLAGS += $$QMAKE_SANITIZE_FUZZERNL_LFLAGS +} + sanitize_undefined { QMAKE_CFLAGS += $$QMAKE_SANITIZE_UNDEFINED_CFLAGS QMAKE_CXXFLAGS += $$QMAKE_SANITIZE_UNDEFINED_CXXFLAGS diff --git a/mkspecs/macx-ios-clang/qmake.conf b/mkspecs/macx-ios-clang/qmake.conf index 88e96ef32e..b164d44d9f 100644 --- a/mkspecs/macx-ios-clang/qmake.conf +++ b/mkspecs/macx-ios-clang/qmake.conf @@ -2,7 +2,7 @@ # qmake configuration for macx-ios-clang # -QMAKE_IOS_DEPLOYMENT_TARGET = 11.0 +QMAKE_IOS_DEPLOYMENT_TARGET = 12.0 # Universal target (iPhone and iPad) QMAKE_APPLE_TARGETED_DEVICE_FAMILY = 1,2 diff --git a/mkspecs/macx-tvos-clang/qmake.conf b/mkspecs/macx-tvos-clang/qmake.conf index 77f6a02f7b..ad53627c4a 100644 --- a/mkspecs/macx-tvos-clang/qmake.conf +++ b/mkspecs/macx-tvos-clang/qmake.conf @@ -2,7 +2,7 @@ # qmake configuration for macx-tvos-clang # -QMAKE_TVOS_DEPLOYMENT_TARGET = 11.0 +QMAKE_TVOS_DEPLOYMENT_TARGET = 12.0 QMAKE_APPLE_TARGETED_DEVICE_FAMILY = 3 diff --git a/mkspecs/macx-watchos-clang/qmake.conf b/mkspecs/macx-watchos-clang/qmake.conf index 8194261275..6a1fb253c1 100644 --- a/mkspecs/macx-watchos-clang/qmake.conf +++ b/mkspecs/macx-watchos-clang/qmake.conf @@ -2,7 +2,7 @@ # qmake configuration for macx-watchos-clang # -QMAKE_WATCHOS_DEPLOYMENT_TARGET = 4.0 +QMAKE_WATCHOS_DEPLOYMENT_TARGET = 5.0 QMAKE_APPLE_TARGETED_DEVICE_FAMILY = 4 |