From f8f96d0fa1845365a1a7f1cd8be235fb1a625be8 Mon Sep 17 00:00:00 2001 From: Kimmo Ollila Date: Fri, 25 Jan 2019 08:56:08 +0200 Subject: Fix OpenGL library paths on INTEGRITY QC Snapdragon 820 After 521a85395da1a2728902816c072ec46bcb0ad380 configure doesn't find OpenGL libraries from QMAKE_LIBDIR, hence we use QMAKE_LIBDIR_OPENGL_ES2 and QMAKE_LIBDIR_EGL instead. Task-number: QTBUG-73136 Change-Id: Iaeac46000c5d684f601741cbef91ce745ceb4ea2 Reviewed-by: Janne Koskinen --- mkspecs/devices/integrity-armv8-msm8996au/qmake.conf | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) (limited to 'mkspecs') diff --git a/mkspecs/devices/integrity-armv8-msm8996au/qmake.conf b/mkspecs/devices/integrity-armv8-msm8996au/qmake.conf index e78bde54b9..7fc6c6aafc 100644 --- a/mkspecs/devices/integrity-armv8-msm8996au/qmake.conf +++ b/mkspecs/devices/integrity-armv8-msm8996au/qmake.conf @@ -33,9 +33,6 @@ gl_lib_directory = $$(GL_LIB_DIR) isEmpty(gl_lib_directory): \ error("This qmakespec requires $GL_LIB_DIR to be set") -QMAKE_LIBDIR += $$(QCLIBS_DIR)/base -QMAKE_LIBDIR += $$(QCLIBS_DIR)/multimedia/display - QMAKE_INCDIR += $$(QC_MULTIMEDIA_INC_DIR) QMAKE_LIBS_EGL += -lESXEGL_Adreno -lESXGLESv2_Adreno -ladreno_utils -lGSLUser -lOSUser -lpanel -livfs -lposix -lpmem -ltzbsp -lpaged_alloc -lglnext-llvm -lopenwfd -lplanedef -lmmosallibrary @@ -51,7 +48,12 @@ QMAKE_LFLAGS += -bigswitch # OpenGL libraries have a dependency on libEGL QMAKE_INCDIR_EGL = $$(GL_INC_DIR) QMAKE_LIBDIR_EGL = $$(GL_LIB_DIR) +QMAKE_LIBDIR_EGL += $$(QCLIBS_DIR)/base +QMAKE_LIBDIR_EGL += $$(QCLIBS_DIR)/multimedia/display + QMAKE_INCDIR_OPENGL_ES2 = $$(GL_INC_DIR) QMAKE_LIBDIR_OPENGL_ES2 = $$(GL_LIB_DIR) +QMAKE_LIBDIR_OPENGL_ES2 += $$(QCLIBS_DIR)/base +QMAKE_LIBDIR_OPENGL_ES2 += $$(QCLIBS_DIR)/multimedia/display load(qt_config) -- cgit v1.2.3 From 63891267c1fe2e483fa305de9102891448c52981 Mon Sep 17 00:00:00 2001 From: Janne Koskinen Date: Fri, 21 Dec 2018 10:25:21 +0100 Subject: Disable NEON flags from Integrity compiler Integrity assembler doesn't understand NEON assembly statements. Compiler enables _ARM_NEON_ and _ARM_NEON to indicate that NEON intrinsics are available. _ARM_NEON_ and _ARM_NEON needs to be disabled to skip handwritten assembly code paths in Qt.Auto- vectorization is enabled without the flags enabled. Task-number: QTBUG-72716 Change-Id: I84cfbf98bd2af47740a79f4b300c1801017ee22c Reviewed-by: Tuukka Turunen Reviewed-by: Kimmo Ollila Reviewed-by: Timo Aarnipuro Reviewed-by: Allan Sandfeld Jensen --- mkspecs/common/ghs-integrity-armv8.conf | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'mkspecs') diff --git a/mkspecs/common/ghs-integrity-armv8.conf b/mkspecs/common/ghs-integrity-armv8.conf index e454cfd245..ee4ce458de 100644 --- a/mkspecs/common/ghs-integrity-armv8.conf +++ b/mkspecs/common/ghs-integrity-armv8.conf @@ -17,8 +17,8 @@ os_directory = $$(INTEGRITY_DIR) isEmpty(os_directory): \ error("This qmakespec requires $INTEGRITY_DIR to be set") -QMAKE_CC = cxintarm64 -bsp $$bsp_name -os_dir $$os_directory -non_shared -QMAKE_CXX = cxintarm64 -bsp $$bsp_name -os_dir $$os_directory -non_shared +QMAKE_CC = cxintarm64 -U__ARM_NEON__ -U__ARM_NEON -bsp $$bsp_name -os_dir $$os_directory -non_shared +QMAKE_CXX = cxintarm64 -U__ARM_NEON__ -U__ARM_NEON -bsp $$bsp_name -os_dir $$os_directory -non_shared QMAKE_LINK = $$QMAKE_CXX QMAKE_AR = $$QMAKE_CXX -archive -o -- cgit v1.2.3 From 3a9240428cca2478166f8f005cab663e7846285b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Morten=20Johan=20S=C3=B8rvig?= Date: Tue, 27 Nov 2018 21:54:19 +0100 Subject: Wasm: disable resources_big MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Errors out with “No data signature found”. Change-Id: Ia9a38e8c71aef4e090494ed4754f4c14e913b092 Reviewed-by: Oswald Buddenhagen Reviewed-by: hjk --- mkspecs/features/resources.prf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'mkspecs') diff --git a/mkspecs/features/resources.prf b/mkspecs/features/resources.prf index 48e9f83885..bb2a55b93d 100644 --- a/mkspecs/features/resources.prf +++ b/mkspecs/features/resources.prf @@ -108,7 +108,7 @@ rcc.name = RCC ${QMAKE_FILE_IN} rcc.depend_command = $$QMAKE_RCC_DEP -list $$QMAKE_RESOURCE_FLAGS ${QMAKE_FILE_IN} rcc.CONFIG += add_inputs_as_makefile_deps dep_lines -!resources_big|ltcg|macx-xcode|contains(TEMPLATE, "vc.*") { +!resources_big|ltcg|macx-xcode|wasm|contains(TEMPLATE, "vc.*") { rcc.output = $$RCC_DIR/$${first(QMAKE_MOD_RCC)}_${QMAKE_FILE_BASE}$${first(QMAKE_EXT_CPP)} rcc.commands = $$QMAKE_RCC $$QMAKE_RESOURCE_FLAGS ${QMAKE_FILE_IN} -o ${QMAKE_FILE_OUT} -- cgit v1.2.3 From 11ae0e772cccd3028771c1380f077c605224cc19 Mon Sep 17 00:00:00 2001 From: Joerg Bornemann Date: Wed, 23 Jan 2019 13:03:44 +0100 Subject: Consume the -skip option in qtbase/configure ...and yield a warning that -skip has no effect in a qtbase build. This is consistent with configure's help output and enables us to always pass "-skip qtwhatnot", whether we're calling top-level or qtbase configure. Change-Id: Ie5b0791a6000d1d78b1367658ad86a92b2ec6a6a Fixes: QTBUG-71253 Reviewed-by: Oliver Wolff Reviewed-by: Kai Koehne --- mkspecs/features/qt_configure.prf | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'mkspecs') diff --git a/mkspecs/features/qt_configure.prf b/mkspecs/features/qt_configure.prf index c45439c3ef..9998d6971c 100644 --- a/mkspecs/features/qt_configure.prf +++ b/mkspecs/features/qt_configure.prf @@ -333,6 +333,15 @@ defineTest(qtConfParseCommandLine) { type = boolean } + isEmpty(type):contains(opt, "skip") { + isEmpty(skipOptionWarningAdded) { + qtConfAddWarning("Command line option -skip is only effective in top-level builds.") + skipOptionWarningAdded = 1 + } + $$qtConfGetNextCommandlineArg() + next() + } + isEmpty(type) { qtConfAddError("Unknown command line option '$$c'.") return() -- cgit v1.2.3 From c2b0bca98429853bcd1f91dff5ae44742b48bc1f Mon Sep 17 00:00:00 2001 From: Joerg Bornemann Date: Thu, 24 Jan 2019 15:06:19 +0100 Subject: configure: Respect -continue in qtConfParseCommandLine If configure is called with -continue, it should not stop processing command line arguments after encountering an invalid one. Example: configure ... -continue -quack -no-feature-gui would ignore everything after -quack. Change-Id: Ia5f0cb13414c9c0c7246ff0c72f8e935fe6dca3c Fixes: QTBUG-72912 Reviewed-by: Lars Knoll --- mkspecs/features/qt_configure.prf | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'mkspecs') diff --git a/mkspecs/features/qt_configure.prf b/mkspecs/features/qt_configure.prf index 9998d6971c..7ca65c92b3 100644 --- a/mkspecs/features/qt_configure.prf +++ b/mkspecs/features/qt_configure.prf @@ -344,7 +344,10 @@ defineTest(qtConfParseCommandLine) { isEmpty(type) { qtConfAddError("Unknown command line option '$$c'.") - return() + equals(config.input.continue, yes): \ + next() + else: \ + return() } call = "qtConfCommandline_$${type}" -- cgit v1.2.3 From 5d181961ea28da07128384aa5144c67d07f87a3e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tor=20Arne=20Vestb=C3=B8?= Date: Wed, 16 Jan 2019 14:26:02 +0100 Subject: macOS: Don't check for stale SDK unless target needs to be remade Also catches some more variants of SDK mismatch, such as Xcode not being installed at all, or the SDK missing. Change-Id: I184aaa571ef0ea722ca64c54f665462dabc17533 Reviewed-by: Joerg Bornemann Reviewed-by: Timur Pocheptsov Reviewed-by: Simon Hausmann --- mkspecs/features/mac/sdk.mk | 33 +++++++++++++++++++++++---------- 1 file changed, 23 insertions(+), 10 deletions(-) (limited to 'mkspecs') diff --git a/mkspecs/features/mac/sdk.mk b/mkspecs/features/mac/sdk.mk index c0266f2139..c40f58c987 100644 --- a/mkspecs/features/mac/sdk.mk +++ b/mkspecs/features/mac/sdk.mk @@ -1,12 +1,25 @@ -CURRENT_MAC_SDK_VERSION := $(shell DEVELOPER_DIR=$(EXPORT_QMAKE_XCODE_DEVELOPER_PATH) /usr/bin/xcrun --sdk $(EXPORT_QMAKE_MAC_SDK) -show-sdk-version) -ifneq ($(CURRENT_MAC_SDK_VERSION),$(EXPORT_QMAKE_MAC_SDK_VERSION)) - $(info The platform SDK has been changed from version $(EXPORT_QMAKE_MAC_SDK_VERSION) to version $(CURRENT_MAC_SDK_VERSION).) - $(info This requires a fresh build. Please wipe the build directory completely,) - $(info including any .qmake.stash and .qmake.cache files generated by qmake.) - # FIXME: Ideally this should be advertised as just running make distclean, or we - # should even do it automatically by having proper makefile dependencies between - # .qmake.stash and the SDK version, but as qmake doesn't seem to be consistent in - # how it deals with .qmake.stash as a dependency we need to defer that until later. - $(error ^) +ifeq ($(QT_MAC_SDK_NO_VERSION_CHECK),) + CHECK_SDK_COMMAND = /usr/bin/xcrun --sdk $(EXPORT_QMAKE_MAC_SDK) -show-sdk-version 2>&1 + CURRENT_MAC_SDK_VERSION := $(shell DEVELOPER_DIR=$(EXPORT_QMAKE_XCODE_DEVELOPER_PATH) $(CHECK_SDK_COMMAND)) + ifneq ($(CURRENT_MAC_SDK_VERSION),$(EXPORT_QMAKE_MAC_SDK_VERSION)) + # We don't want to complain about out of date SDK unless the target needs to be remade. + # This covers use-cases such as running 'make check' after moving the build to a + # computer without Xcode or with a different Xcode version. + TARGET_UP_TO_DATE := $(shell QT_MAC_SDK_NO_VERSION_CHECK=1 $(MAKE) --question $(QMAKE_TARGET) && echo 1 || echo 0) + ifeq ($(TARGET_UP_TO_DATE),0) + ifneq ($(findstring missing DEVELOPER_DIR path,$(CURRENT_MAC_SDK_VERSION)),) + $(info The developer dir $(EXPORT_QMAKE_XCODE_DEVELOPER_PATH) is no longer valid.) + else ifneq ($(findstring SDK "$(EXPORT_QMAKE_MAC_SDK)" cannot be located,$(CURRENT_MAC_SDK_VERSION)),) + $(info The developer dir $(EXPORT_QMAKE_XCODE_DEVELOPER_PATH) no longer contains the $(EXPORT_QMAKE_MAC_SDK_VERSION) platform SDK.) + else ifneq ($(CURRENT_MAC_SDK_VERSION),) + $(info The platform SDK has been changed from version $(EXPORT_QMAKE_MAC_SDK_VERSION) to version $(CURRENT_MAC_SDK_VERSION).) + else + $(info Unknown error resolving current platform SDK version.) + endif + $(info This requires a fresh build. Please wipe the build directory completely,) + $(info including any .qmake.stash and .qmake.cache files generated by qmake.) + $(error ^) + endif + endif endif -- cgit v1.2.3 From 9435526d507611b8b54f7c65df9febdde193c7bf Mon Sep 17 00:00:00 2001 From: Andy Shaw Date: Mon, 15 Oct 2018 09:23:26 +0200 Subject: qmake: Add variables for setting the version number and name in Android This makes it much easier to have the version information set for an Android APK without having to manually modify the AndroidManifest.xml each time. [ChangeLog][Android][qmake] Can now set the version name and code for Android using ANDROID_VERSION_NAME and ANDROID_VERSION_CODE respectively in the pro file. Change-Id: Ie6813bc3a7444f7baa5e772b93bc2695d9b81e57 Done-with: Markus Maier Reviewed-by: Markus Maier Reviewed-by: BogDan Vatra --- mkspecs/features/android/android_deployment_settings.prf | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'mkspecs') diff --git a/mkspecs/features/android/android_deployment_settings.prf b/mkspecs/features/android/android_deployment_settings.prf index 0db3230ce7..ad826bdad3 100644 --- a/mkspecs/features/android/android_deployment_settings.prf +++ b/mkspecs/features/android/android_deployment_settings.prf @@ -58,6 +58,14 @@ contains(TEMPLATE, ".*app"):!build_pass:!android-embedded { !isEmpty(ANDROID_PACKAGE_SOURCE_DIR): \ FILE_CONTENT += " \"android-package-source-directory\": $$emitString($$ANDROID_PACKAGE_SOURCE_DIR)," + # Android-specific version string + !isEmpty(ANDROID_VERSION_NAME): \ + FILE_CONTENT += " \"android-version-name\": $$emitString($$ANDROID_VERSION_NAME)," + + # Android-specific version number + !isEmpty(ANDROID_VERSION_CODE): \ + FILE_CONTENT += " \"android-version-code\": $$emitString($$ANDROID_VERSION_CODE)," + !isEmpty(ANDROID_EXTRA_LIBS): \ FILE_CONTENT += " \"android-extra-libs\": $$emitString($$join(ANDROID_EXTRA_LIBS, ","))," -- cgit v1.2.3 From 8e6231f4ebd0957920b740fb0cc96af0ac66e6cf Mon Sep 17 00:00:00 2001 From: Joerg Bornemann Date: Wed, 30 Jan 2019 16:16:58 +0100 Subject: Fix install targets for generated private headers Header files of modules that specify generated_privates are usually not yet available at qmake-time. Thus, the installation rule must not check for the file's existence. Change-Id: Ifc7ff95422912d255744c9006382ff181176ae77 Fixes: QTBUG-71340 Reviewed-by: Oliver Wolff Reviewed-by: Edward Welbourne --- mkspecs/features/qt_installs.prf | 2 ++ 1 file changed, 2 insertions(+) (limited to 'mkspecs') diff --git a/mkspecs/features/qt_installs.prf b/mkspecs/features/qt_installs.prf index 8f98987b99..1ebca17366 100644 --- a/mkspecs/features/qt_installs.prf +++ b/mkspecs/features/qt_installs.prf @@ -38,6 +38,8 @@ qt_install_headers { private_headers.files = $$SYNCQT.PRIVATE_HEADER_FILES $$SYNCQT.INJECTED_PRIVATE_HEADER_FILES private_headers.path = $$[QT_INSTALL_HEADERS]/$$MODULE_INCNAME/$$VERSION/$$MODULE_INCNAME/private + generated_privates: \ + private_headers.CONFIG += no_check_exist INSTALLS += private_headers qpa_headers.files = $$SYNCQT.QPA_HEADER_FILES -- cgit v1.2.3 From 7910dd0a548cdd9e7c5716d4f6704b3185fa34fb Mon Sep 17 00:00:00 2001 From: Michal Klocek Date: Thu, 17 Jan 2019 15:39:32 +0100 Subject: Add llvm linker detection to configure https://gcc.gnu.org/ml/gcc-patches/2018-10/msg01240.html This is currently only used for webengine, where link time really matters. New configure options: * force 'lld' '-linker lld' or' --linker=lld' * force 'gold' '-linker gold' or '--linker=gold' * force 'bfd' '-linker bfd' or '--linker=bfd' Note before by default gold was always forced (if supported) now default linker is system default one. [ChangeLog][Tools][configure & build system] Added --linker=[bfg,lld,gold] configure flag. Change-Id: Idaa13510da70243c6176b96db846d629cd65c7af Reviewed-by: Kai Koehne --- mkspecs/common/gcc-base-unix.conf | 2 ++ mkspecs/features/default_post.prf | 2 ++ mkspecs/features/qt_configure.prf | 8 ++++++++ 3 files changed, 12 insertions(+) (limited to 'mkspecs') diff --git a/mkspecs/common/gcc-base-unix.conf b/mkspecs/common/gcc-base-unix.conf index 700f228c36..a456c8f3eb 100644 --- a/mkspecs/common/gcc-base-unix.conf +++ b/mkspecs/common/gcc-base-unix.conf @@ -20,7 +20,9 @@ QMAKE_LFLAGS_RPATH = -Wl,-rpath, QMAKE_LFLAGS_RPATHLINK = -Wl,-rpath-link, QMAKE_LFLAGS_NEW_DTAGS = -Wl,--enable-new-dtags QMAKE_LFLAGS_GDB_INDEX = -Wl,--gdb-index +QMAKE_LFLAGS_USE_BFD = -fuse-ld=bfd QMAKE_LFLAGS_USE_GOLD = -fuse-ld=gold +QMAKE_LFLAGS_USE_LLD = -fuse-ld=lld # -Bsymbolic-functions (ld) support QMAKE_LFLAGS_BSYMBOLIC_FUNC = -Wl,-Bsymbolic-functions diff --git a/mkspecs/features/default_post.prf b/mkspecs/features/default_post.prf index d90da49781..69da78c5b7 100644 --- a/mkspecs/features/default_post.prf +++ b/mkspecs/features/default_post.prf @@ -78,7 +78,9 @@ stack_protector_strong { # disable special linker flags for host builds (no proper test for host support yet) !host_build|!cross_compile { + use_bfd_linker: QMAKE_LFLAGS += $$QMAKE_LFLAGS_USE_BFD use_gold_linker: QMAKE_LFLAGS += $$QMAKE_LFLAGS_USE_GOLD + use_lld_linker: QMAKE_LFLAGS += $$QMAKE_LFLAGS_USE_LLD enable_new_dtags: QMAKE_LFLAGS += $$QMAKE_LFLAGS_NEW_DTAGS enable_gdb_index: QMAKE_LFLAGS += $$QMAKE_LFLAGS_GDB_INDEX } diff --git a/mkspecs/features/qt_configure.prf b/mkspecs/features/qt_configure.prf index c45439c3ef..f682892abe 100644 --- a/mkspecs/features/qt_configure.prf +++ b/mkspecs/features/qt_configure.prf @@ -368,8 +368,12 @@ defineTest(qtConfTest_compilerSupportsFlag) { defineTest(qtConfTest_linkerSupportsFlag) { flag = $$eval($${1}.flag) + use_bfd_linker: \ + LFLAGS = -fuse-ld=bfd use_gold_linker: \ LFLAGS = -fuse-ld=gold + use_lld_linker: \ + LFLAGS = -fuse-ld=lld return($$qtConfToolchainSupportsFlag($$LFLAGS "-Wl,$$flag")) } @@ -1220,8 +1224,12 @@ defineTest(qtConfTest_compile) { else: \ qmake_configs = "static" + use_bfd_linker: \ + qmake_configs += "use_bfd_linker" use_gold_linker: \ qmake_configs += "use_gold_linker" + use_lld_linker: \ + qmake_configs += "use_lld_linker" # disable warnings from the builds, since they're just noise at this point. qmake_configs += "warn_off" -- cgit v1.2.3 From 74e04d6ace7aa949db97ae2e46c38a4dc0d4d36a Mon Sep 17 00:00:00 2001 From: BogDan Vatra Date: Mon, 28 Jan 2019 17:04:21 +0200 Subject: Android: follow official android flags for cmake Update our cflags and lflags with the ones found in android.toolchain.cmake Fixes: QTBUG-73274 Change-Id: Id9fd9bf04df959239abd3100090a1485e872b2f0 Reviewed-by: Eskil Abrahamsen Blomfeldt --- mkspecs/android-clang/qmake.conf | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'mkspecs') diff --git a/mkspecs/android-clang/qmake.conf b/mkspecs/android-clang/qmake.conf index a0a369bb44..a077c70cba 100644 --- a/mkspecs/android-clang/qmake.conf +++ b/mkspecs/android-clang/qmake.conf @@ -29,8 +29,11 @@ else: equals(ANDROID_TARGET_ARCH, mips): \ else: equals(ANDROID_TARGET_ARCH, mips64): \ QMAKE_CFLAGS += -target mips64el-none-linux-android -QMAKE_CFLAGS += -gcc-toolchain $$NDK_TOOLCHAIN_PATH -QMAKE_LINK = $$QMAKE_CXX $$QMAKE_CFLAGS -Wl,--exclude-libs,libgcc.a +QMAKE_CFLAGS += -gcc-toolchain $$NDK_TOOLCHAIN_PATH -fno-limit-debug-info + +QMAKE_LINK = $$QMAKE_CXX $$QMAKE_CFLAGS -Wl,--exclude-libs,libgcc.a -Wl,--exclude-libs,libatomic.a +equals(ANDROID_TARGET_ARCH, armeabi-v7a): QMAKE_LINK += -Wl,--exclude-libs,libunwind.a + QMAKE_CFLAGS += -DANDROID_HAS_WSTRING --sysroot=$$NDK_ROOT/sysroot \ -isystem $$NDK_ROOT/sysroot/usr/include/$$NDK_TOOLS_PREFIX \ -isystem $$NDK_ROOT/sources/cxx-stl/llvm-libc++/include \ -- cgit v1.2.3 From 6e7a7d5fb917b9099788a5917507dbfa56d5495c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Morten=20Johan=20S=C3=B8rvig?= Date: Tue, 27 Nov 2018 22:02:07 +0100 Subject: Wasm: enable source map support for debug builds MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The source map location can be configured by setting QMAKE_WASM_SOURCE_MAP_BASE in the .pro file. Fall back to “http://localhost:8000” if not set. Task-number: QTBUG-72002 Change-Id: I9da80dacdefc272f267e5db4caac274d93ba4479 Reviewed-by: Lorn Potter --- mkspecs/features/wasm/wasm.prf | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'mkspecs') diff --git a/mkspecs/features/wasm/wasm.prf b/mkspecs/features/wasm/wasm.prf index 13ac43443d..c885b166ce 100644 --- a/mkspecs/features/wasm/wasm.prf +++ b/mkspecs/features/wasm/wasm.prf @@ -72,6 +72,13 @@ contains(TEMPLATE, .*app) { } } +# Pass --source-map-base on the linker line. This informs the +# browser where to find the source files when debugging. +WASM_SOURCE_MAP_BASE = http://localhost:8000/ +!isEmpty(QMAKE_WASM_SOURCE_MAP_BASE):\ + WASM_SOURCE_MAP_BASE = $$QMAKE_WASM_SOURCE_MAP_BASE +CONFIG(debug): QMAKE_LFLAGS += --source-map-base $$WASM_SOURCE_MAP_BASE + # Creates the stand-alone version of the library from bitcode !static:contains(TEMPLATE, .*lib): { load(resolve_target) -- cgit v1.2.3 From de4f256d48145778ed56389f5e883c5994b34dd2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Morten=20Johan=20S=C3=B8rvig?= Date: Tue, 20 Mar 2018 13:30:53 +0100 Subject: Wasm: enable thread support MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit configure.json: Make the “thread” feature be allowed for wasm but disabled by default. Change qmake.conf and wasm.prf to enable Emscripten pthreads mode: - Add USE_PTHREADS=1 linker flag - Add PTHREAD_POOL_SIZE linker flag with a default pool size (4). - Add TOTAL_MEMORY linker flag to set available memory (1GB) It is possible to override options such as PTHREAD_POOL_SIZE from the application .pro file using QMAKE_WASM_PTHREAD_POOL_SIZE To change TOTAL_MEMORY, use QMAKE_WASM_TOTAL_MEMORY Make qtloader.js work in pthreads mode: - The Module.instantiateWasm callback must provide the module in addition to the instance to Emscripten. - Set Module.mainScriptUrlOrBlob so that the pthreads web workers can access the main script Task-number: QTBUG-64625 Change-Id: I1ab5a559ec97c27c5fc24500ba5f863bcd275141 Reviewed-by: Morten Johan Sørvig Reviewed-by: Lorn Potter --- mkspecs/features/qt.prf | 2 +- mkspecs/features/wasm/wasm.prf | 33 +++++++++++++++++++++++++++++++++ mkspecs/wasm-emscripten/qmake.conf | 1 - 3 files changed, 34 insertions(+), 2 deletions(-) (limited to 'mkspecs') diff --git a/mkspecs/features/qt.prf b/mkspecs/features/qt.prf index d8d5acaafd..5ac640190a 100644 --- a/mkspecs/features/qt.prf +++ b/mkspecs/features/qt.prf @@ -2,7 +2,7 @@ # due to required Qt modules being missing. !isEmpty(QMAKE_FAILED_REQUIREMENTS): return() -CONFIG *= thread +qtConfig(thread): CONFIG *= thread #handle defines win32 { diff --git a/mkspecs/features/wasm/wasm.prf b/mkspecs/features/wasm/wasm.prf index c885b166ce..de726c674c 100644 --- a/mkspecs/features/wasm/wasm.prf +++ b/mkspecs/features/wasm/wasm.prf @@ -2,6 +2,39 @@ # DESTDIR will be empty if not set in the app .pro file; make sure it has a value isEmpty(DESTDIR): DESTDIR = $$OUT_PWD +exists($$QMAKE_QT_CONFIG) { + qtConfig(thread) { + + EMCC_THREAD_LFLAGS += -s USE_PTHREADS=1 + # Hardcode wasm memory size. Emscripten does not currently support memory growth + # (ALLOW_MEMORY_GROWTH) in pthreads mode, and requires specifying the memory size + # at build time. Further, browsers limit the maximum initial memory size to 1GB. + TOTAL_MEMORY = 1GB + !isEmpty(QMAKE_WASM_TOTAL_MEMORY) { + TOTAL_MEMORY = $$QMAKE_WASM_TOTAL_MEMORY + } + + message("Setting TOTAL_MEMORY to" $$TOTAL_MEMORY) + EMCC_THREAD_LFLAGS += -s TOTAL_MEMORY=$$TOTAL_MEMORY + + # Create worker threads at startup. This is supposed to be an optimization, + # however exceeding the pool size has been obesverved to hang the application. + POOL_SIZE = 4 + !isEmpty(QMAKE_WASM_PTHREAD_POOL_SIZE) { + POOL_SIZE = $$QMAKE_WASM_PTHREAD_POOL_SIZE + } + + message("Setting PTHREAD_POOL_SIZE to" $$POOL_SIZE) + EMCC_THREAD_LFLAGS += -s PTHREAD_POOL_SIZE=$$POOL_SIZE + } else { + EMCC_THREAD_LFLAGS += -s ALLOW_MEMORY_GROWTH=1 + } + QMAKE_LFLAGS += $$EMCC_THREAD_LFLAGS + QMAKE_LFLAGS_DEBUG += $$EMCC_THREAD_LFLAGS + QMAKE_CFLAGS += $$EMCC_THREAD_LFLAGS + QMAKE_CXXFLAGS += $$EMCC_THREAD_LFLAGS +} + # Create js and wasm files for applications contains(TEMPLATE, .*app) { TARGET_BASE = $${TARGET} diff --git a/mkspecs/wasm-emscripten/qmake.conf b/mkspecs/wasm-emscripten/qmake.conf index e7b45d312d..6c4e62aff2 100644 --- a/mkspecs/wasm-emscripten/qmake.conf +++ b/mkspecs/wasm-emscripten/qmake.conf @@ -15,7 +15,6 @@ EMTERP_FLAGS = \ EMCC_COMMON_LFLAGS = \ -s WASM=1 \ -s FULL_ES2=1 \ - -s ALLOW_MEMORY_GROWTH=1 \ -s USE_WEBGL2=1 \ -s NO_EXIT_RUNTIME=0 \ -s ERROR_ON_UNDEFINED_SYMBOLS=1 \ -- cgit v1.2.3 From fd88c152db0949e47613858a914a6ae4a825781d Mon Sep 17 00:00:00 2001 From: Eric Lemanissier Date: Sun, 3 Feb 2019 14:42:27 +0100 Subject: configure: use proper separator for mingw libraries Change-Id: Ic328691fe2f08e918c1bb67910521d85b274a8fd Fixes: QTBUG-73466 Reviewed-by: Kai Koehne Reviewed-by: Joerg Bornemann --- mkspecs/features/toolchain.prf | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'mkspecs') diff --git a/mkspecs/features/toolchain.prf b/mkspecs/features/toolchain.prf index 2a7cbabc54..9c3a64aa8b 100644 --- a/mkspecs/features/toolchain.prf +++ b/mkspecs/features/toolchain.prf @@ -229,7 +229,10 @@ isEmpty($${target_prefix}.INCDIRS) { line ~= s/^[ \\t]*// # remove leading spaces contains(line, "LIBRARY_PATH=.*") { line ~= s/^LIBRARY_PATH=// # remove leading LIBRARY_PATH= - paths = $$split(line, $$QMAKE_DIRLIST_SEP) + equals(QMAKE_HOST.os, Windows): \ + paths = $$split(line, ;) + else: \ + paths = $$split(line, $$QMAKE_DIRLIST_SEP) for (path, paths): \ QMAKE_DEFAULT_LIBDIRS += $$clean_path($$path) } else: contains(line, "Library search paths:") { -- cgit v1.2.3 From 37970d7b3e6fff92dca98db974ada865c1bfd730 Mon Sep 17 00:00:00 2001 From: Joerg Bornemann Date: Tue, 12 Feb 2019 13:21:39 +0100 Subject: Fix determination of OpenGL include paths on macOS MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Since include paths are fully resolved, we must remove the code that prepends the SDK path to the OpenGL include paths. Change-Id: I80d74629c7fc989a89c3f1d95d6de43b4c1de17a Fixes: QTBUG-73736 Reviewed-by: Tor Arne Vestbø --- mkspecs/common/mac.conf | 2 +- mkspecs/features/mac/sdk.prf | 4 ---- 2 files changed, 1 insertion(+), 5 deletions(-) (limited to 'mkspecs') diff --git a/mkspecs/common/mac.conf b/mkspecs/common/mac.conf index b77494ec9b..e000d1026b 100644 --- a/mkspecs/common/mac.conf +++ b/mkspecs/common/mac.conf @@ -17,7 +17,7 @@ QMAKE_EXTENSION_SHLIB = dylib QMAKE_EXTENSIONS_AUX_SHLIB = tbd QMAKE_LIBDIR = -# sdk.prf will prefix the proper SDK sysroot +# The proper SDK sysroot will be automatically prepended QMAKE_INCDIR_OPENGL = \ /System/Library/Frameworks/OpenGL.framework/Headers \ /System/Library/Frameworks/AGL.framework/Headers/ diff --git a/mkspecs/features/mac/sdk.prf b/mkspecs/features/mac/sdk.prf index 8360dd8b38..50a41657d8 100644 --- a/mkspecs/features/mac/sdk.prf +++ b/mkspecs/features/mac/sdk.prf @@ -33,10 +33,6 @@ QMAKE_MAC_SDK_PATH = $$xcodeSDKInfo(Path) QMAKE_MAC_SDK_PLATFORM_PATH = $$xcodeSDKInfo(PlatformPath) QMAKE_MAC_SDK_VERSION = $$xcodeSDKInfo(SDKVersion) -sysrootified = -for(val, QMAKE_INCDIR_OPENGL): sysrootified += $${QMAKE_MAC_SDK_PATH}$$val -QMAKE_INCDIR_OPENGL = $$sysrootified - QMAKESPEC_NAME = $$basename(QMAKESPEC) # Resolve SDK version of various tools -- cgit v1.2.3 From cbbf7ddd3dcacc99908218abb45c7d8d5496562e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jean-Micha=C3=ABl=20Celerier?= Date: Fri, 28 Dec 2018 01:35:16 +0100 Subject: Fix detection of libraries when linking against static builds with CMake This patch is a follow-up to eda28621f6c1a68774719f382be53ec109123b18. It adds a translation of the $$[QT_INSTALL_LIBS] variable into a path that CMake understands. Without this, CMake finds the system libraries if there are any instead. It also handles the case where the .prl file contains absolute paths to libraries, as it happens for instance on Debian systems. Task-number: QTBUG-38913 Change-Id: If68373efee22bc00172e8fead3e2c12ea440787f Reviewed-by: Kyle Edwards Reviewed-by: Kevin Funk --- mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'mkspecs') diff --git a/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in b/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in index acd302d4b2..d6773d6e98 100644 --- a/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in +++ b/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in @@ -52,13 +52,18 @@ endmacro() function(_qt5_$${CMAKE_MODULE_NAME}_process_prl_file prl_file_location Configuration lib_deps link_flags) set(_lib_deps) set(_link_flags) + + get_filename_component(_qt5_install_libs \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/lib\" ABSOLUTE) + if(EXISTS \"${prl_file_location}\") file(STRINGS \"${prl_file_location}\" _prl_strings REGEX \"QMAKE_PRL_LIBS[ \\t]*=\") string(REGEX REPLACE \"QMAKE_PRL_LIBS[ \\t]*=[ \\t]*([^\\n]*)\" \"\\\\1\" _static_depends ${_prl_strings}) string(REGEX REPLACE \"[ \\t]+\" \";\" _static_depends ${_static_depends}) set(_search_paths) + string(REPLACE \"\\$\\$[QT_INSTALL_LIBS]\" \"${_qt5_install_libs}\" _static_depends \"${_static_depends}\") foreach(_flag ${_static_depends}) if(_flag MATCHES \"^-l(.*)$\") + # Handle normal libraries passed as -lfoo set(_lib \"${CMAKE_MATCH_1}\") if(_lib MATCHES \"^pthread$\") find_package(Threads REQUIRED) @@ -77,9 +82,14 @@ function(_qt5_$${CMAKE_MODULE_NAME}_process_prl_file prl_file_location Configura message(FATAL_ERROR \"Library not found: ${_lib}\") endif() endif() + elseif(EXISTS \"${_flag}\") + # The flag is an absolute path to an existing library + list(APPEND _lib_deps \"${_flag}\") elseif(_flag MATCHES \"^-L(.*)$\") + # Handle -Lfoo flags by putting their paths in the search path used by find_library above list(APPEND _search_paths \"${CMAKE_MATCH_1}\") else() + # Handle all remaining flags by simply passing them to the linker list(APPEND _link_flags ${_flag}) endif() endforeach() -- cgit v1.2.3 From 896b30767980f7033c34c2b90be99aac696d6432 Mon Sep 17 00:00:00 2001 From: Oliver Wolff Date: Tue, 12 Feb 2019 09:09:50 +0100 Subject: Add support for Visual Studio 2019 Change-Id: I963fc1c159edc644f081675c3dee248c25d7c9dc Reviewed-by: Joerg Bornemann Reviewed-by: Andre de la Rocha --- mkspecs/common/msvc-version.conf | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'mkspecs') diff --git a/mkspecs/common/msvc-version.conf b/mkspecs/common/msvc-version.conf index de8ba56b7b..06af6abf13 100644 --- a/mkspecs/common/msvc-version.conf +++ b/mkspecs/common/msvc-version.conf @@ -113,4 +113,9 @@ greaterThan(QMAKE_MSC_VER, 1910) { COMPAT_MKSPEC = } +greaterThan(QMAKE_MSC_VER, 1919) { + # Visual Studio 2019 (16.0) / Visual C++ 19.20 and up + MSVC_VER = 16.0 +} + !isEmpty(COMPAT_MKSPEC):!$$COMPAT_MKSPEC: CONFIG += $$COMPAT_MKSPEC -- cgit v1.2.3 From 797f686ea4c7ba4953242fc7755bf30e531644d0 Mon Sep 17 00:00:00 2001 From: Joerg Bornemann Date: Mon, 11 Feb 2019 15:00:09 +0100 Subject: Turn bcm_host library into makeSpec source The bcm_host library couldn't be detected anymore. Let the makespec provide LIBDIR, INCDIR and LIBS for bcm_host to fix this. Change-Id: I4bc268504dc48edaf2884f1c14b745260fd9112c Fixes: QTBUG-73727 Reviewed-by: Kai Koehne --- mkspecs/devices/linux-rasp-pi-g++/qmake.conf | 4 ++++ mkspecs/devices/linux-rasp-pi2-g++/qmake.conf | 5 +++++ mkspecs/devices/linux-rasp-pi3-g++/qmake.conf | 4 ++++ 3 files changed, 13 insertions(+) (limited to 'mkspecs') diff --git a/mkspecs/devices/linux-rasp-pi-g++/qmake.conf b/mkspecs/devices/linux-rasp-pi-g++/qmake.conf index b72091373d..6ec7817efb 100644 --- a/mkspecs/devices/linux-rasp-pi-g++/qmake.conf +++ b/mkspecs/devices/linux-rasp-pi-g++/qmake.conf @@ -20,6 +20,10 @@ QMAKE_INCDIR_OPENVG = $${QMAKE_INCDIR_EGL} QMAKE_LIBS_EGL = -lEGL -lGLESv2 QMAKE_LIBS_OPENVG = -lEGL -lOpenVG -lGLESv2 +QMAKE_INCDIR_BCM_HOST = $$[QT_SYSROOT]/opt/vc/include +QMAKE_LIBDIR_BCM_HOST = $$[QT_SYSROOT]/opt/vc/lib +QMAKE_LIBS_BCM_HOST = -lbcm_host + contains(DISTRO, squeeze) { #Debian Squeeze: Legacy everything QMAKE_LIBS_OPENGL_ES2 = -lGLESv2 -lEGL diff --git a/mkspecs/devices/linux-rasp-pi2-g++/qmake.conf b/mkspecs/devices/linux-rasp-pi2-g++/qmake.conf index ffe8f5739a..3b49f19a5b 100644 --- a/mkspecs/devices/linux-rasp-pi2-g++/qmake.conf +++ b/mkspecs/devices/linux-rasp-pi2-g++/qmake.conf @@ -16,6 +16,11 @@ QMAKE_INCDIR_OPENVG = $${QMAKE_INCDIR_EGL} QMAKE_LIBS_EGL = -lEGL -lGLESv2 QMAKE_LIBS_OPENVG = -lEGL -lOpenVG -lGLESv2 + +QMAKE_INCDIR_BCM_HOST = $$[QT_SYSROOT]/opt/vc/include +QMAKE_LIBDIR_BCM_HOST = $$[QT_SYSROOT]/opt/vc/lib +QMAKE_LIBS_BCM_HOST = -lbcm_host + QMAKE_CFLAGS += -march=armv7-a -marm -mthumb-interwork -mfpu=neon-vfpv4 -mtune=cortex-a7 -mabi=aapcs-linux QMAKE_CXXFLAGS = $$QMAKE_CFLAGS diff --git a/mkspecs/devices/linux-rasp-pi3-g++/qmake.conf b/mkspecs/devices/linux-rasp-pi3-g++/qmake.conf index 2bb70ffb5a..b215833486 100644 --- a/mkspecs/devices/linux-rasp-pi3-g++/qmake.conf +++ b/mkspecs/devices/linux-rasp-pi3-g++/qmake.conf @@ -31,6 +31,10 @@ QMAKE_LIBS_OPENGL_ES2 = $${VC_LINK_LINE} -lGLESv2 # The official opt vc EGL references GLESv2 symbols: need to link it QMAKE_LIBS_EGL = $${VC_LINK_LINE} -lEGL -lGLESv2 +QMAKE_LIBDIR_BCM_HOST = $$VC_LIBRARY_PATH +QMAKE_INCDIR_BCM_HOST = $$VC_INCLUDE_PATH +QMAKE_LIBS_BCM_HOST = -lbcm_host + QMAKE_CFLAGS = -march=armv8-a -mtune=cortex-a53 -mfpu=crypto-neon-fp-armv8 QMAKE_CXXFLAGS = $$QMAKE_CFLAGS -- cgit v1.2.3 From 501cca2c4b0851cea7133ba56c3a05d71c25ce6d Mon Sep 17 00:00:00 2001 From: Samuel Thibault Date: Sun, 27 Jan 2019 13:54:06 +0100 Subject: Add include to hurd-g++ mkspec Without this include, __REDIRECT does not get defined, and then open gets #defined to open64, leading to bogus MOC output. See https://bugs.debian.org/920613. Change-Id: I629d9dc6af05b9480c0c81a61d8890ab8bbefaae Reviewed-by: Joerg Bornemann --- mkspecs/hurd-g++/qplatformdefs.h | 1 + 1 file changed, 1 insertion(+) (limited to 'mkspecs') diff --git a/mkspecs/hurd-g++/qplatformdefs.h b/mkspecs/hurd-g++/qplatformdefs.h index 3c80cbdfad..b1887aae7f 100644 --- a/mkspecs/hurd-g++/qplatformdefs.h +++ b/mkspecs/hurd-g++/qplatformdefs.h @@ -59,6 +59,7 @@ // We are hot - unistd.h should have turned on the specific APIs we requested +#include #include #include #include -- cgit v1.2.3 From 0c03316ec94361bd1d80b391d77a1dcd52f2a23a Mon Sep 17 00:00:00 2001 From: Joerg Bornemann Date: Thu, 14 Feb 2019 17:03:19 +0100 Subject: Revert "Fix determination of OpenGL include paths on macOS" MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This reverts commit 37970d7b3e6fff92dca98db974ada865c1bfd730. That commit broke the build on macOS, because the OpenGL headers aren't resolved anymore at configure time. Change-Id: Iec6ef009c9ea7e28b12eeca6b5eb06918bf49d98 Fixes: QTBUG-73827 Reviewed-by: Tor Arne Vestbø Reviewed-by: Mitch Curtis --- mkspecs/common/mac.conf | 2 +- mkspecs/features/mac/sdk.prf | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) (limited to 'mkspecs') diff --git a/mkspecs/common/mac.conf b/mkspecs/common/mac.conf index e000d1026b..b77494ec9b 100644 --- a/mkspecs/common/mac.conf +++ b/mkspecs/common/mac.conf @@ -17,7 +17,7 @@ QMAKE_EXTENSION_SHLIB = dylib QMAKE_EXTENSIONS_AUX_SHLIB = tbd QMAKE_LIBDIR = -# The proper SDK sysroot will be automatically prepended +# sdk.prf will prefix the proper SDK sysroot QMAKE_INCDIR_OPENGL = \ /System/Library/Frameworks/OpenGL.framework/Headers \ /System/Library/Frameworks/AGL.framework/Headers/ diff --git a/mkspecs/features/mac/sdk.prf b/mkspecs/features/mac/sdk.prf index 50a41657d8..8360dd8b38 100644 --- a/mkspecs/features/mac/sdk.prf +++ b/mkspecs/features/mac/sdk.prf @@ -33,6 +33,10 @@ QMAKE_MAC_SDK_PATH = $$xcodeSDKInfo(Path) QMAKE_MAC_SDK_PLATFORM_PATH = $$xcodeSDKInfo(PlatformPath) QMAKE_MAC_SDK_VERSION = $$xcodeSDKInfo(SDKVersion) +sysrootified = +for(val, QMAKE_INCDIR_OPENGL): sysrootified += $${QMAKE_MAC_SDK_PATH}$$val +QMAKE_INCDIR_OPENGL = $$sysrootified + QMAKESPEC_NAME = $$basename(QMAKESPEC) # Resolve SDK version of various tools -- cgit v1.2.3 From 8fe36801930872ef4a57e2ff7d7f935de12a33e9 Mon Sep 17 00:00:00 2001 From: Joerg Bornemann Date: Fri, 1 Feb 2019 15:16:00 +0100 Subject: Add cmdline feature to qmake [ChangeLog][qmake] A new feature "cmdline" was added that implies "CONFIG += console" and "CONFIG -= app_bundle". Task-number: QTBUG-27079 Change-Id: I6e52b07c9341c904bb1424fc717057432f9360e1 Reviewed-by: Oswald Buddenhagen --- mkspecs/features/cmdline.prf | 2 ++ mkspecs/features/qt_test_helper.prf | 3 +-- 2 files changed, 3 insertions(+), 2 deletions(-) create mode 100644 mkspecs/features/cmdline.prf (limited to 'mkspecs') diff --git a/mkspecs/features/cmdline.prf b/mkspecs/features/cmdline.prf new file mode 100644 index 0000000000..f9d90d3a50 --- /dev/null +++ b/mkspecs/features/cmdline.prf @@ -0,0 +1,2 @@ +win32: CONFIG *= console +macos: CONFIG -= app_bundle diff --git a/mkspecs/features/qt_test_helper.prf b/mkspecs/features/qt_test_helper.prf index 5daa14731d..86b65dd884 100644 --- a/mkspecs/features/qt_test_helper.prf +++ b/mkspecs/features/qt_test_helper.prf @@ -16,8 +16,7 @@ # Additionally the helper's executable is suffixed with "_helper" to # avoid name clashes with its folder. -CONFIG -= app_bundle -CONFIG += console +CONFIG += cmdline debug_and_release { CONFIG(debug, debug|release) { -- cgit v1.2.3