From ba4fdd99fff80790f764ab1ac8addd699e3101e7 Mon Sep 17 00:00:00 2001 From: Kai Koehne Date: Mon, 29 Apr 2019 09:56:49 +0200 Subject: CMake: Ignore CMAKE_CXX_STANDARD_LIBRARIES in .prl files Do not call find_library() on libs that are part of CMAKE_CXX_STANDARD_LIBRARIES: At CMake call time they might not be found. Fixes: QTBUG-73475 Change-Id: I350b3280744883e82d83c46e70f6a7cfc8aeed2e Reviewed-by: Andy Shaw Reviewed-by: Alexandru Croitor --- mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) (limited to 'mkspecs') diff --git a/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in b/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in index aca8703238..1c4994c30f 100644 --- a/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in +++ b/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in @@ -59,6 +59,7 @@ function(_qt5_$${CMAKE_MODULE_NAME}_process_prl_file prl_file_location Configura 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}) + string(REGEX REPLACE \"[ \\t]+\" \";\" _standard_libraries ${CMAKE_CXX_STANDARD_LIBRARIES}) set(_search_paths) string(REPLACE \"\\$\\$[QT_INSTALL_LIBS]\" \"${_qt5_install_libs}\" _static_depends \"${_static_depends}\") foreach(_flag ${_static_depends}) @@ -66,7 +67,15 @@ function(_qt5_$${CMAKE_MODULE_NAME}_process_prl_file prl_file_location Configura if(_flag MATCHES \"^-l(.*)$\") # Handle normal libraries passed as -lfoo set(_lib \"${CMAKE_MATCH_1}\") - if(_lib MATCHES \"^pthread$\") + foreach(_standard_library ${_standard_libraries}) + if(_standard_library MATCHES \"^${_lib}(\\.lib)?$\") + set(_lib_is_default_linked TRUE) + break() + endif() + endforeach() + if (_lib_is_default_linked) + unset(_lib_is_default_linked) + elseif(_lib MATCHES \"^pthread$\") find_package(Threads REQUIRED) list(APPEND _lib_deps Threads::Threads) else() -- cgit v1.2.3 From 22c1e10e1955c63e3b1761e05ce06164c0464073 Mon Sep 17 00:00:00 2001 From: Joerg Bornemann Date: Tue, 30 Apr 2019 12:01:23 +0200 Subject: Fix emar invocation on Windows On Windows we hit the command line length limit when building the wasm port of Qt. We must not pass the list of object files directly to emar, but write a response file which is then passed via the @ parameter. Fixes: QTBUG-75257 Change-Id: Id518fd81325716b8efaba29f495568a9a3e34be4 Reviewed-by: Kai Koehne Reviewed-by: Edward Welbourne Reviewed-by: Lorn Potter --- mkspecs/wasm-emscripten/qmake.conf | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'mkspecs') diff --git a/mkspecs/wasm-emscripten/qmake.conf b/mkspecs/wasm-emscripten/qmake.conf index c80f2bfb92..ca8c477c80 100644 --- a/mkspecs/wasm-emscripten/qmake.conf +++ b/mkspecs/wasm-emscripten/qmake.conf @@ -94,6 +94,12 @@ QMAKE_PREFIX_STATICLIB = lib QMAKE_EXTENSION_STATICLIB = a # llvm bitcode QMAKE_AR = emar cqs +equals(QMAKE_HOST.os, Windows) { + QMAKE_AR_CMD = \ + "$(file >$(OBJECTS_DIR)/$(TARGET).rsp, $(OBJECTS))$$escape_expand(\\n\\t)" \ + "$(AR) $(DESTDIR)$(TARGET) @$(OBJECTS_DIR)/$(TARGET).rsp" +} + QMAKE_DISTCLEAN += *.html *.js *.wasm load(qt_config) -- cgit v1.2.3 From c996d131266bd0f470cc1a14141a61e1d48a2b77 Mon Sep 17 00:00:00 2001 From: BogDan Vatra Date: Wed, 1 May 2019 18:03:16 +0300 Subject: Android: Fix x86_64 linking x86_64 libs are located in ANDROID_PLATFORM_ROOT_PATH/usr/lib64 not in ANDROID_PLATFORM_ROOT_PATH/usr/lib . Fixes: QTBUG-47672 Change-Id: Ia1f74f7c2a30b276b95fd0e7dcf8370d739e3c41 Reviewed-by: Eskil Abrahamsen Blomfeldt (cherry picked from commit 43763e279644cdd2a52d770b9aeda4d485caaa76) Reviewed-by: Jani Heikkinen --- mkspecs/common/android-base-tail.conf | 1 + 1 file changed, 1 insertion(+) (limited to 'mkspecs') diff --git a/mkspecs/common/android-base-tail.conf b/mkspecs/common/android-base-tail.conf index f403ef9330..edc255d08e 100644 --- a/mkspecs/common/android-base-tail.conf +++ b/mkspecs/common/android-base-tail.conf @@ -69,6 +69,7 @@ QMAKE_LIBDIR_OPENGL = QMAKE_LINK_SHLIB = $$QMAKE_LINK QMAKE_LFLAGS = --sysroot=$$ANDROID_PLATFORM_ROOT_PATH +equals(ANDROID_TARGET_ARCH, x86_64) QMAKE_LFLAGS += -L$$ANDROID_PLATFORM_ROOT_PATH/usr/lib64 QMAKE_LFLAGS_APP = -Wl,--no-undefined -Wl,-z,noexecstack -shared QMAKE_LFLAGS_SHLIB = -Wl,--no-undefined -Wl,-z,noexecstack -shared QMAKE_LFLAGS_PLUGIN = $$QMAKE_LFLAGS_SHLIB -- cgit v1.2.3 From 9dbbccf7a2515c81842e80fb4d6bb3c3d82802b3 Mon Sep 17 00:00:00 2001 From: Kai Koehne Date: Thu, 9 May 2019 11:58:23 +0200 Subject: Fix emar invocation on Windows for MinGW If qmake is called without sh.exe in PATH, the relative paths in OBJECTS will contain backslashes as separator. Anyhow, emar needs forward slashes. Use GNU make's subst command to fix this. This amends 22c1e10e1955c63. Task-number: QTBUG-75257 Change-Id: Iacc6fe69cf470f35c6ddd829be7a80944346452d Reviewed-by: Joerg Bornemann --- mkspecs/wasm-emscripten/qmake.conf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'mkspecs') diff --git a/mkspecs/wasm-emscripten/qmake.conf b/mkspecs/wasm-emscripten/qmake.conf index ca8c477c80..c6c3af3622 100644 --- a/mkspecs/wasm-emscripten/qmake.conf +++ b/mkspecs/wasm-emscripten/qmake.conf @@ -96,7 +96,7 @@ QMAKE_EXTENSION_STATICLIB = a # llvm bitcode QMAKE_AR = emar cqs equals(QMAKE_HOST.os, Windows) { QMAKE_AR_CMD = \ - "$(file >$(OBJECTS_DIR)/$(TARGET).rsp, $(OBJECTS))$$escape_expand(\\n\\t)" \ + "$(file >$(OBJECTS_DIR)/$(TARGET).rsp, $(subst \\,/,$(OBJECTS)))$$escape_expand(\\n\\t)" \ "$(AR) $(DESTDIR)$(TARGET) @$(OBJECTS_DIR)/$(TARGET).rsp" } -- cgit v1.2.3 From f00de3322e05c62021082463b6de24805afc1355 Mon Sep 17 00:00:00 2001 From: Joerg Bornemann Date: Mon, 20 May 2019 11:13:06 +0200 Subject: Replace absolute Qt lib dir in .prl files In the case of building a Qt module repository against an installed qtbase the .prl files contain absolute paths to Qt dependencies e.g. '/install-prefix/lib/libQt5Core.so'. Those must be replaced with $$[QT_INSTALL_PREFIX]. The .prl replacement code however only takes $$MODULE_BASE_OUTDIR/lib into account. Fixes: QTBUG-75804 Change-Id: I5ea5623ca7396b672fded3f1b9434b9ad5ed12ec Reviewed-by: Oliver Wolff --- mkspecs/features/qt_common.prf | 2 ++ 1 file changed, 2 insertions(+) (limited to 'mkspecs') diff --git a/mkspecs/features/qt_common.prf b/mkspecs/features/qt_common.prf index e51aa4766b..17a07dbab9 100644 --- a/mkspecs/features/qt_common.prf +++ b/mkspecs/features/qt_common.prf @@ -49,6 +49,8 @@ contains(TEMPLATE, .*lib) { lib_replace.match = $$rplbase/lib lib_replace.replace = $$qqt_libdir } + !equals(qt_libdir, $$rplbase/lib): \ + lib_replace.match = \\($$lib_replace.match\\)\\|\\($$qt_libdir\\) lib_replace.CONFIG = path QMAKE_PRL_INSTALL_REPLACE += lib_replace } -- cgit v1.2.3 From 015d7f16cb0b6812950caa3bcde3b6758403ae34 Mon Sep 17 00:00:00 2001 From: Joerg Bornemann Date: Wed, 22 May 2019 10:40:14 +0200 Subject: Fix QMAKE_PRL_INSTALL_REPLACE for macOS The regular expression with the alternative is not portable. Use a separate QMAKE_PRL_INSTALL_REPLACE item. This amends commit f00de33. Fixes: QTBUG-75950 Change-Id: I78e172053f8b05be7d595a1c9e1695ea658b0547 Reviewed-by: Iikka Eklund Reviewed-by: Oliver Wolff --- mkspecs/features/qt_common.prf | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'mkspecs') diff --git a/mkspecs/features/qt_common.prf b/mkspecs/features/qt_common.prf index 17a07dbab9..e64dfa98c2 100644 --- a/mkspecs/features/qt_common.prf +++ b/mkspecs/features/qt_common.prf @@ -49,10 +49,14 @@ contains(TEMPLATE, .*lib) { lib_replace.match = $$rplbase/lib lib_replace.replace = $$qqt_libdir } - !equals(qt_libdir, $$rplbase/lib): \ - lib_replace.match = \\($$lib_replace.match\\)\\|\\($$qt_libdir\\) lib_replace.CONFIG = path QMAKE_PRL_INSTALL_REPLACE += lib_replace + !equals(qt_libdir, $$rplbase/lib) { + qtlibdir_replace.match = $$qt_libdir + qtlibdir_replace.replace = $$qqt_libdir + qtlibdir_replace.CONFIG = path + QMAKE_PRL_INSTALL_REPLACE += qtlibdir_replace + } } # The remainder of this file must not apply to host tools/libraries, -- cgit v1.2.3