From c34d289c449dc8624f31bade882d6f808dae20a1 Mon Sep 17 00:00:00 2001 From: Joni Poikelin Date: Wed, 12 Oct 2016 13:35:37 +0300 Subject: Fix building when lex source refers to a file generated by yacc Scan lex and yacc sources for dependencies as if they were C source code, which is close enough to reality. This will unfortunately result in the generated source files depending on the generated headers, while it should have been the object files created from these sources which have that dependency. But qmake cannot do better, and this is good enough. Task-number: QTBUG-56507 Change-Id: Ic3e1941bf2e2820bfddf99deba854e1e82f83669 Reviewed-by: Oswald Buddenhagen --- mkspecs/features/lex.prf | 1 + mkspecs/features/yacc.prf | 1 + 2 files changed, 2 insertions(+) (limited to 'mkspecs') diff --git a/mkspecs/features/lex.prf b/mkspecs/features/lex.prf index 16d3a6aa94..7d8325bedb 100644 --- a/mkspecs/features/lex.prf +++ b/mkspecs/features/lex.prf @@ -5,6 +5,7 @@ { lex.name = Lex ${QMAKE_FILE_IN} lex.input = LEXSOURCES + lex.dependency_type = TYPE_C lex_included { lex.CONFIG += no_link } else { diff --git a/mkspecs/features/yacc.prf b/mkspecs/features/yacc.prf index e78dd8cbb3..72cb5c2f3a 100644 --- a/mkspecs/features/yacc.prf +++ b/mkspecs/features/yacc.prf @@ -35,6 +35,7 @@ yacc_impl.name = source for ${QMAKE_FILE_IN} yacc_impl.input = YACCSOURCES yacc_impl.variable_out = GENERATED_SOURCES + yacc_impl.dependency_type = TYPE_C yacc_impl.commands = $$escape_expand(\\n) # We don't want any commands where, but if command is empty no rules are created yacc_impl.depends = $${QMAKE_CPP_MOD_MOC}${QMAKE_FILE_BASE}$${QMAKE_MOD_YACC}$${first(QMAKE_EXT_H)} # Make sure we depend on the step above yacc_impl.output = $${QMAKE_CPP_MOD_MOC}${QMAKE_FILE_BASE}$${QMAKE_MOD_YACC}$${first(QMAKE_EXT_CPP)} # Faked output from this step, output really created in step above -- cgit v1.2.3 From 68a0bd85920e6eb22b69aa5f57f71f3dccb8b286 Mon Sep 17 00:00:00 2001 From: Richard Moe Gustavsen Date: Fri, 4 Nov 2016 15:17:19 +0100 Subject: iOS, mkspec: only link in qiosnsphotolibrarysupport for iOS The plugin depends on AssetLibrary.framework, which is only available for iOS. Change-Id: I798c87b57881210ced8e4a7399c1e45d130ee357 Reviewed-by: Jake Petroules --- mkspecs/features/uikit/default_post.prf | 8 -------- mkspecs/macx-ios-clang/features/default_post.prf | 9 +++++++++ 2 files changed, 9 insertions(+), 8 deletions(-) create mode 100644 mkspecs/macx-ios-clang/features/default_post.prf (limited to 'mkspecs') diff --git a/mkspecs/features/uikit/default_post.prf b/mkspecs/features/uikit/default_post.prf index 8f1c5280b8..6e23e23a6a 100644 --- a/mkspecs/features/uikit/default_post.prf +++ b/mkspecs/features/uikit/default_post.prf @@ -90,11 +90,3 @@ macx-xcode { QMAKE_PCH_ARCHS = $$VALID_ARCHS } - -!xcodebuild:equals(TEMPLATE, app):!isEmpty(QMAKE_INFO_PLIST) { - # Only link in photo library support if Info.plist contains - # NSPhotoLibraryUsageDescription. Otherwise it will be rejected from AppStore. - plist_path = $$absolute_path($$QMAKE_INFO_PLIST, $$_PRO_FILE_PWD_) - system("/usr/libexec/PlistBuddy -c 'Print NSPhotoLibraryUsageDescription' $$system_quote($$plist_path) &>/dev/null"): \ - QTPLUGIN += qiosnsphotolibrarysupport -} diff --git a/mkspecs/macx-ios-clang/features/default_post.prf b/mkspecs/macx-ios-clang/features/default_post.prf new file mode 100644 index 0000000000..2ed96fc5c7 --- /dev/null +++ b/mkspecs/macx-ios-clang/features/default_post.prf @@ -0,0 +1,9 @@ +load(default_post) + +!xcodebuild:equals(TEMPLATE, app):!isEmpty(QMAKE_INFO_PLIST) { + # Only link in photo library support if Info.plist contains + # NSPhotoLibraryUsageDescription. Otherwise it will be rejected from AppStore. + plist_path = $$absolute_path($$QMAKE_INFO_PLIST, $$_PRO_FILE_PWD_) + system("/usr/libexec/PlistBuddy -c 'Print NSPhotoLibraryUsageDescription' $$system_quote($$plist_path) &>/dev/null"): \ + QTPLUGIN += qiosnsphotolibrarysupport +} -- cgit v1.2.3 From 890a4d40ecd384ba4f59643374948a6fdddb741a Mon Sep 17 00:00:00 2001 From: Oswald Buddenhagen Date: Wed, 2 Nov 2016 13:57:14 +0100 Subject: nuke obsolete comment amends 56ee007b3. Change-Id: Ida4f79ae72f185ce1f4cca9add30e3084da9c5bf Reviewed-by: Lars Knoll --- mkspecs/features/qt_configure.prf | 3 --- 1 file changed, 3 deletions(-) (limited to 'mkspecs') diff --git a/mkspecs/features/qt_configure.prf b/mkspecs/features/qt_configure.prf index 6b500c0f3e..bfc460edca 100644 --- a/mkspecs/features/qt_configure.prf +++ b/mkspecs/features/qt_configure.prf @@ -1552,9 +1552,6 @@ defineTest(qtConfOutput_publicFeature) { } } -# currently this is somewhat inconsistent, as the feature is output to the public pro file, -# whereas the define is being added to the private pro file. -# This should get cleaned up to add to the private pro and header instead. defineTest(qtConfOutput_privateFeature) { name = "$$eval($${1}.name)" isEmpty(name): \ -- cgit v1.2.3 From 66ad9668f3158ab5a0ee8f93fe3ddf062e37967e Mon Sep 17 00:00:00 2001 From: Oswald Buddenhagen Date: Wed, 2 Nov 2016 15:15:19 +0100 Subject: fix iteration over a feature's outputs use precalculated path instead of incorrectly assembling it from scratch. it accidentally worked when the features happened to be in the right order, as the iteration variable 'feature' from the calling function was inherited. however, if the feature was accessed via dependency resolution, things blew up. amends 90eee08b3e, which presumably came to be this way due to a missing adjustment to a refactoring. Change-Id: I78b0acc0682cfc27a458df014ce14262a65c6241 Reviewed-by: Lars Knoll --- mkspecs/features/qt_configure.prf | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'mkspecs') diff --git a/mkspecs/features/qt_configure.prf b/mkspecs/features/qt_configure.prf index bfc460edca..1d7e810cc8 100644 --- a/mkspecs/features/qt_configure.prf +++ b/mkspecs/features/qt_configure.prf @@ -1182,8 +1182,8 @@ defineTest(qtConfCheckFeature) { $${fpfx}.available = $$result export($${fpfx}.available) - for (i, $${currentConfig}.features.$${feature}.output._KEYS_): \ - qtConfProcessOneOutput($$feature, $$i) + for (i, $${fpfx}.output._KEYS_): \ + qtConfProcessOneOutput($${1}, $$i) return(true) } -- cgit v1.2.3 From 2ad4d757546b5bc0ede98af26cb04716ac6662b9 Mon Sep 17 00:00:00 2001 From: Oswald Buddenhagen Date: Wed, 2 Nov 2016 16:58:20 +0100 Subject: move empty cache() call back to configure.prf the new configure system doesn't use this type of caching. also, it's invoked via qt_parts.prf, which actually has the same call. Change-Id: Ifa1e810e24330b59a1eb9f883eb0500642a212f3 Reviewed-by: Lars Knoll --- mkspecs/features/configure.prf | 4 ++++ mkspecs/features/configure_base.prf | 4 ---- 2 files changed, 4 insertions(+), 4 deletions(-) (limited to 'mkspecs') diff --git a/mkspecs/features/configure.prf b/mkspecs/features/configure.prf index f275e3ac06..cc360033d7 100644 --- a/mkspecs/features/configure.prf +++ b/mkspecs/features/configure.prf @@ -1,3 +1,7 @@ +# Ensure that a cache is present. If none was found on startup, this will create +# one in the build directory of the project which loads this feature. +cache() + load(configure_base) isEmpty(QMAKE_CONFIG_TESTS_DIR): QMAKE_CONFIG_TESTS_DIR = $$_PRO_FILE_PWD_/config.tests diff --git a/mkspecs/features/configure_base.prf b/mkspecs/features/configure_base.prf index dc630a3528..cd60cc3cc6 100644 --- a/mkspecs/features/configure_base.prf +++ b/mkspecs/features/configure_base.prf @@ -43,9 +43,5 @@ defineTest(qtRunLoggedCommand) { return(true) } -# Ensure that a cache is present. If none was found on startup, this will create -# one in the build directory of the project which loads this feature. -cache() - QMAKE_CONFIG_LOG = $$dirname(_QMAKE_CACHE_)/config.log write_file($$QMAKE_CONFIG_LOG, "") -- cgit v1.2.3 From 7ac15ab0ffeeb88a156cd5dd935fadcda4a559f9 Mon Sep 17 00:00:00 2001 From: Oswald Buddenhagen Date: Wed, 2 Nov 2016 17:08:26 +0100 Subject: don't clear config.log unless re-checking it is counterproductive to clear the log when cached test results are used, as that makes it hard to determine how they came to be. -recheck isn't as clear-cut as -recheck-all, as only part of the results is discarded, and we can't reasonably discard only part of the log. i opted for clearing the log entirely, as having both the old and new results in the log would be probably quite confusing. Change-Id: Ibb391f2ba2ea86d73c23365d46cc66ed8a2158d6 Reviewed-by: Lars Knoll --- mkspecs/features/configure.prf | 2 ++ mkspecs/features/configure_base.prf | 1 - mkspecs/features/qt_configure.prf | 2 ++ 3 files changed, 4 insertions(+), 1 deletion(-) (limited to 'mkspecs') diff --git a/mkspecs/features/configure.prf b/mkspecs/features/configure.prf index cc360033d7..147d6f178c 100644 --- a/mkspecs/features/configure.prf +++ b/mkspecs/features/configure.prf @@ -4,6 +4,8 @@ cache() load(configure_base) +recheck: write_file($$QMAKE_CONFIG_LOG, "") + isEmpty(QMAKE_CONFIG_TESTS_DIR): QMAKE_CONFIG_TESTS_DIR = $$_PRO_FILE_PWD_/config.tests # Try to build the test project in $$QMAKE_CONFIG_TESTS_DIR/$$1 diff --git a/mkspecs/features/configure_base.prf b/mkspecs/features/configure_base.prf index cd60cc3cc6..4d68affabf 100644 --- a/mkspecs/features/configure_base.prf +++ b/mkspecs/features/configure_base.prf @@ -44,4 +44,3 @@ defineTest(qtRunLoggedCommand) { } QMAKE_CONFIG_LOG = $$dirname(_QMAKE_CACHE_)/config.log -write_file($$QMAKE_CONFIG_LOG, "") diff --git a/mkspecs/features/qt_configure.prf b/mkspecs/features/qt_configure.prf index 1d7e810cc8..810e3106ab 100644 --- a/mkspecs/features/qt_configure.prf +++ b/mkspecs/features/qt_configure.prf @@ -1729,6 +1729,8 @@ equals(QMAKE_CONFIG_CACHE_USE, none) { "cache.xplatform = $$[QMAKE_XSPEC]" write_file($$QMAKE_CONFIG_CACHE, cont) } +!equals(QMAKE_CONFIG_CACHE_USE, all): \ + write_file($$QMAKE_CONFIG_LOG, "") for (currentConfig, allConfigs) { qtConfSetModuleName() -- cgit v1.2.3 From c804033f3630cc19bde4612a5ec9fe9a897e750c Mon Sep 17 00:00:00 2001 From: Oswald Buddenhagen Date: Wed, 2 Nov 2016 17:20:49 +0100 Subject: don't attempt to install the target of header-only modules they have none. Change-Id: I1e5ffa9960c4fac3c708be4820fb40e7909569c8 Reviewed-by: Jake Petroules Reviewed-by: Lars Knoll --- mkspecs/features/qt_module.prf | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'mkspecs') diff --git a/mkspecs/features/qt_module.prf b/mkspecs/features/qt_module.prf index 954fdb2501..069eec02eb 100644 --- a/mkspecs/features/qt_module.prf +++ b/mkspecs/features/qt_module.prf @@ -64,7 +64,9 @@ load(qt_build_paths) header_module { TEMPLATE = aux - CONFIG += force_qt # Needed for the headers_clean tests. + CONFIG += \ + force_qt \ # Needed for the headers_clean tests. + qt_no_install_library } else { TEMPLATE = lib } -- cgit v1.2.3 From 6c7f81cac93d32072e64466a713eebfcf5e68807 Mon Sep 17 00:00:00 2001 From: Oswald Buddenhagen Date: Wed, 2 Nov 2016 17:58:53 +0100 Subject: don't write "Checking for ..." to config.log the more precise test/library name is already logged. Change-Id: I73d3229a9e20a0024582b18bfe9f2848cab5f4ff Reviewed-by: Lars Knoll --- mkspecs/features/qt_configure.prf | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) (limited to 'mkspecs') diff --git a/mkspecs/features/qt_configure.prf b/mkspecs/features/qt_configure.prf index 810e3106ab..94001dc1d5 100644 --- a/mkspecs/features/qt_configure.prf +++ b/mkspecs/features/qt_configure.prf @@ -794,10 +794,8 @@ defineTest(qtLogTestIntro) { label = $$eval($${1}.label) isEmpty(label): return() - msg = "Checking for $${label}... " - log($$msg) + log("Checking for $${label}... ") $$QMAKE_CONFIG_VERBOSE: log("$$escape_expand(\\n)") - write_file($$QMAKE_CONFIG_LOG, msg, append) } defineTest(qtLogTestResult) { -- cgit v1.2.3 From b4979082b89842ee14cfc28639129bd15935bfc8 Mon Sep 17 00:00:00 2001 From: Oswald Buddenhagen Date: Wed, 2 Nov 2016 18:00:16 +0100 Subject: don't log silent tests to config.log they were already omitted from the console output; there is no need to spam the log with them (their completion was not logged, either). Change-Id: I32c97413d2e6ceb18ee61356855cc6a7fa2222bf Reviewed-by: Lars Knoll --- mkspecs/features/qt_configure.prf | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) (limited to 'mkspecs') diff --git a/mkspecs/features/qt_configure.prf b/mkspecs/features/qt_configure.prf index 94001dc1d5..d5b9c6dc11 100644 --- a/mkspecs/features/qt_configure.prf +++ b/mkspecs/features/qt_configure.prf @@ -611,9 +611,7 @@ defineTest(qtConfHandleLibrary) { return() } - qtLogTestIntro($${lpfx}) - msg = "looking for library $${1}" - write_file($$QMAKE_CONFIG_LOG, msg, append) + qtLogTestIntro($${lpfx}, "looking for library $${1}") result = false for (s, $${lpfx}.sources._KEYS_) { @@ -796,6 +794,7 @@ defineTest(qtLogTestIntro) { log("Checking for $${label}... ") $$QMAKE_CONFIG_VERBOSE: log("$$escape_expand(\\n)") + write_file($$QMAKE_CONFIG_LOG, 2, append) } defineTest(qtLogTestResult) { @@ -921,9 +920,7 @@ defineTest(qtRunSingleTest) { qtConfLoadResult($${tpfx}, $$1): \ return() - qtLogTestIntro($${tpfx}) - msg = "executing config test $${1}" - write_file($$QMAKE_CONFIG_LOG, msg, append) + qtLogTestIntro($${tpfx}, "executing config test $${1}") result = false $${call}($${tpfx}): result = true -- cgit v1.2.3 From 25a2717f66006ba020d12c5666f8f45d3ccf8756 Mon Sep 17 00:00:00 2001 From: Oswald Buddenhagen Date: Fri, 4 Nov 2016 10:34:58 +0100 Subject: fix debug-only builds on debug-and-release platforms this actually affects only non-framework Darwin builds - debug-only framework builds are impossible, and Windows is always debug-and-release. Change-Id: Ia79dbbefc5750168ebd8967fe4afbe173f55a0d6 Reviewed-by: Erik Verbruggen Reviewed-by: Joerg Bornemann Reviewed-by: Jake Petroules --- mkspecs/features/qt_helper_lib.prf | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) (limited to 'mkspecs') diff --git a/mkspecs/features/qt_helper_lib.prf b/mkspecs/features/qt_helper_lib.prf index 07e4f48771..99ba0c6877 100644 --- a/mkspecs/features/qt_helper_lib.prf +++ b/mkspecs/features/qt_helper_lib.prf @@ -27,6 +27,8 @@ qtConfig(build_all): CONFIG += build_all DESTDIR = $$MODULE_BASE_OUTDIR/lib DLLDESTDIR = $$MODULE_BASE_OUTDIR/bin +THE_TARGET = $$qt5LibraryTarget($$TARGET) + !build_pass { MODULE = $$replace(TARGET, ^qt, ) MODULE_PRI = $$MODULE_QMAKE_OUTDIR/mkspecs/modules/qt_ext_$${MODULE}.pri @@ -35,22 +37,23 @@ DLLDESTDIR = $$MODULE_BASE_OUTDIR/bin MODULE_PRI_CONT = \ "QMAKE_INCDIR_$${ucmodule} = $$val_escape(MODULE_INCLUDEPATH)" \ "QMAKE_DEFINES_$${ucmodule} = $$val_escape(MODULE_DEFINES)" - MODULE_LIBS = -L$$DESTDIR -l$$TARGET debug_and_release { win32: MODULE_DEBUG_LIBS = -L$$DESTDIR -l$${TARGET}d darwin: MODULE_DEBUG_LIBS = -L$$DESTDIR -l$${TARGET}_debug + MODULE_RELEASE_LIBS = -L$$DESTDIR -l$$TARGET MODULE_PRI_CONT += \ "QMAKE_LIBS_$${ucmodule}_DEBUG = $$val_escape(MODULE_DEBUG_LIBS)" \ - "QMAKE_LIBS_$${ucmodule}_RELEASE = $$val_escape(MODULE_LIBS)" + "QMAKE_LIBS_$${ucmodule}_RELEASE = $$val_escape(MODULE_RELEASE_LIBS)" } else { + MODULE_LIBS = -L$$DESTDIR -l$$THE_TARGET MODULE_PRI_CONT += \ "QMAKE_LIBS_$${ucmodule} = $$val_escape(MODULE_LIBS)" } write_file($$MODULE_PRI, MODULE_PRI_CONT)|error() } +TARGET = $$THE_TARGET + # In static builds of Qt, convenience libraries must be installed, # as in this case they are not linked to the final library/plugin. installed|if(!not_installed:qtConfig(static)): load(qt_installs) - -TARGET = $$qt5LibraryTarget($$TARGET) -- cgit v1.2.3 From 6bfe30a0bf33f300f80f87026177f4da8f54df13 Mon Sep 17 00:00:00 2001 From: Oswald Buddenhagen Date: Thu, 10 Nov 2016 17:08:07 +0100 Subject: drop obsolete file MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit amends 97fcf3bc9 (introduction of official android port). Change-Id: Iaab596559c5d4c825269cbdda77d956c3650fb09 Reviewed-by: Joerg Bornemann Reviewed-by: Jake Petroules Reviewed-by: BogDan Vatra Reviewed-by: Otto Ryynänen --- mkspecs/common/linux-android.conf | 114 -------------------------------------- 1 file changed, 114 deletions(-) delete mode 100644 mkspecs/common/linux-android.conf (limited to 'mkspecs') diff --git a/mkspecs/common/linux-android.conf b/mkspecs/common/linux-android.conf deleted file mode 100644 index fec008cb45..0000000000 --- a/mkspecs/common/linux-android.conf +++ /dev/null @@ -1,114 +0,0 @@ -MAKEFILE_GENERATOR = UNIX -QMAKE_INCREMENTAL_STYLE = sublib - -QMAKE_PLATFORM += android - -include(linux.conf) -include(gcc-base-unix.conf) - -DEFINES += QT_NO_PRINTER QT_NO_PRINTDIALOG -QT_QPA_DEFAULT_PLATFORM = minimal - -NDK_ROOT = $$(ANDROID_NDK_ROOT) -isEmpty(NDK_ROOT): error("$ANDROID_NDK_ROOT is empty, please set it to something like ~/android/ndk-r7c") - -NDK_HOST = $$(ANDROID_NDK_HOST) -isEmpty(NDK_HOST): error("$ANDROID_NDK_HOST is empty, please set it to something like linux-x86 or darwin-x86") - -ANDROID_PLATFORM = $$(ANDROID_NDK_PLATFORM) -isEmpty(ANDROID_PLATFORM): ANDROID_PLATFORM = android-5 - -NDK_TOOLCHAIN_VERSION = $$(ANDROID_NDK_TOOLCHAIN_VERSION) -isEmpty(NDK_TOOLCHAIN_VERSION): NDK_TOOLCHAIN_VERSION = 4.4.3 - -!contains(NDK_TOOLCHAIN_VERSION, 4.4.3): ANDROID_CXXSTL_SUFFIX = -$$NDK_TOOLCHAIN_VERSION - -NDK_TOOLCHAIN = $$ANDROID_NDK_TOOLCHAIN_PREFIX-$$NDK_TOOLCHAIN_VERSION -NDK_TOOLCHAIN_PATH = $$NDK_ROOT/toolchains/$$NDK_TOOLCHAIN/prebuilt/$$NDK_HOST - -CONFIG += $$ANDROID_PLATFORM $$ANDROID_TARGET_ARCH -ANDROID_PLATFORM_ROOT_PATH = $$NDK_ROOT/platforms/$$ANDROID_PLATFORM/arch-$$ANDROID_ARCHITECTURE/ -ANDROID_PLATFORM_PATH = $$ANDROID_PLATFORM_ROOT_PATH/usr - -# used to compile platform plugins for android-4 and android-5 -QMAKE_ANDROID_PLATFORM_INCDIR = $$NDK_ROOT/platforms/$$ANDROID_PLATFORM/arch-$$ANDROID_ARCHITECTURE/usr/include -QMAKE_ANDROID_PLATFORM_LIBDIR = $$NDK_ROOT/platforms/$$ANDROID_PLATFORM/arch-$$ANDROID_ARCHITECTURE/usr/lib - -ANDROID_SOURCES_CXX_STL_LIBDIR = $$NDK_ROOT/sources/cxx-stl$$ANDROID_CXXSTL_SUFFIX/gnu-libstdc++/libs/$$ANDROID_TARGET_ARCH -ANDROID_SOURCES_CXX_STL_INCDIR = $$NDK_ROOT/sources/cxx-stl$$ANDROID_CXXSTL_SUFFIX/gnu-libstdc++/include $$ANDROID_SOURCES_CXX_STL_LIBDIR/include - -# modifications to g++.conf -QMAKE_CC = $$NDK_TOOLCHAIN_PATH/bin/$$ANDROID_NDK_TOOLS_PREFIX-gcc - -QMAKE_CFLAGS_WARN_ON = -Wall -Wextra -QMAKE_CFLAGS_WARN_OFF = -Wno-psabi - -QMAKE_CFLAGS_SHLIB = -fPIC -QMAKE_CFLAGS_YACC = -Wno-unused -Wno-parentheses -QMAKE_CFLAGS_THREAD = -D_REENTRANT -QMAKE_CFLAGS_HIDESYMS = -fvisibility=hidden - -QMAKE_CXX = $$NDK_TOOLCHAIN_PATH/bin/$$ANDROID_NDK_TOOLS_PREFIX-g++ -QMAKE_CXXFLAGS = $$QMAKE_CFLAGS -QMAKE_CXXFLAGS_WARN_ON = $$QMAKE_CFLAGS_WARN_ON -QMAKE_CXXFLAGS_WARN_OFF = $$QMAKE_CFLAGS_WARN_OFF -QMAKE_CXXFLAGS_RELEASE += $$QMAKE_CFLAGS_RELEASE -QMAKE_CXXFLAGS_DEBUG += $$QMAKE_CFLAGS_DEBUG -QMAKE_CXXFLAGS_SHLIB = $$QMAKE_CFLAGS_SHLIB -QMAKE_CXXFLAGS_YACC = $$QMAKE_CFLAGS_YACC -QMAKE_CXXFLAGS_THREAD = $$QMAKE_CFLAGS_THREAD -QMAKE_CXXFLAGS_HIDESYMS = $$QMAKE_CFLAGS_HIDESYMS -fvisibility-inlines-hidden - -QMAKE_LINK = $$QMAKE_CXX -QMAKE_LINK_SHLIB = $$QMAKE_LINK - -# modifications to linux.conf -QMAKE_AR = $$NDK_TOOLCHAIN_PATH/bin/$$ANDROID_NDK_TOOLS_PREFIX-ar cqs -QMAKE_OBJCOPY = $$NDK_TOOLCHAIN_PATH/bin/$$ANDROID_NDK_TOOLS_PREFIX-objcopy -QMAKE_NM = $$NDK_TOOLCHAIN_PATH/bin/$$ANDROID_NDK_TOOLS_PREFIX-nm -P -QMAKE_STRIP = $$NDK_TOOLCHAIN_PATH/bin/$$ANDROID_NDK_TOOLS_PREFIX-strip -QMAKE_RANLIB = $$NDK_TOOLCHAIN_PATH/bin/$$ANDROID_NDK_TOOLS_PREFIX-ranlib - -QMAKE_INCDIR = $$ANDROID_PLATFORM_PATH/include $$ANDROID_SOURCES_CXX_STL_INCDIR -QMAKE_LIBDIR = $$ANDROID_SOURCES_CXX_STL_LIBDIR $$ANDROID_PLATFORM_PATH/lib -QMAKE_INCDIR_X11 = -QMAKE_LIBDIR_X11 = -QMAKE_INCDIR_OPENGL = -QMAKE_INCDIR_OPENGL_ES2 = -QMAKE_LIBDIR_OPENGL_ES2 = - -contains(ANDROID_TARGET_ARCH, x86): LIBGCC_PATH_FULL = $$system($$QMAKE_CC -print-libgcc-file-name) - else: LIBGCC_PATH_FULL = $$system($$QMAKE_CC -mthumb-interwork -print-libgcc-file-name) - -QMAKE_LINK = $$QMAKE_CXX -QMAKE_LINK_SHLIB = $$QMAKE_CXX -QMAKE_LFLAGS = --sysroot=$$ANDROID_PLATFORM_ROOT_PATH -L$$dirname(LIBGCC_PATH_FULL) -Wl,-rpath-link=$$ANDROID_PLATFORM_PATH/lib -QMAKE_LFLAGS_APP = -QMAKE_LFLAGS_SHLIB = -Wl,--no-undefined -Wl,-z,noexecstack -shared - -contains(NDK_ROOT, ".*r[56].*") { - !contains(ANDROID_PLATFORM, ".*android-[458].*") { - message("Your NDK-version is out-dated. A work-around is enabled. Consider updating your NDK (workarounds are required until r6(a))") - QMAKE_LFLAGS_SHLIB += $$ANDROID_PLATFORM_PATH/lib/crtbegin_so.o $$ANDROID_PLATFORM_PATH/lib/crtend_so.o - } -} - -QMAKE_LFLAGS_PLUGIN = $$QMAKE_LFLAGS_SHLIB -QMAKE_LFLAGS_SONAME = -QMAKE_LFLAGS_NOUNDEF = -Wl,--no-undefined -QMAKE_LFLAGS_RPATH = -Wl,-rpath= - -# TODO: -lgnustl_static was -lstdc++, but that leads to undefined reference to -# std::__throw_bad_alloc during configure. -QMAKE_LIBS = -lsupc++ -llog -lz -lm -ldl -lc -lgcc -lgnustl_static -QMAKE_LIBS_X11 = -QMAKE_LIBS_X11SM = -QMAKE_LIBS_QT_THREAD = -QMAKE_LIBS_QT_OPENGL = -QMAKE_LIBS_QTOPIA = -QMAKE_LIBS_THREAD = -QMAKE_LIBS_OPENGL = -QMAKE_LIBS_OPENGL_ES2 = -lGLESv2 $$QMAKE_LIBS - -load(qt_config) - -- cgit v1.2.3 From addf1f45f3e2c37a09ef7f7bab909467c2bf79f7 Mon Sep 17 00:00:00 2001 From: Jake Petroules Date: Fri, 11 Nov 2016 12:34:54 -0800 Subject: qmake: fix installation of asset catalog files This strips leading whitespace from asset catalog filenames, which was causing installation to fail due to incorrectly calculated paths. Task-number: QTBUG-57090 Change-Id: I80db627262f9d58f4403e2d8ab205bef2113992b Reviewed-by: Oswald Buddenhagen --- mkspecs/features/mac/asset_catalogs.prf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'mkspecs') diff --git a/mkspecs/features/mac/asset_catalogs.prf b/mkspecs/features/mac/asset_catalogs.prf index 57d93d56d5..87875136c2 100644 --- a/mkspecs/features/mac/asset_catalogs.prf +++ b/mkspecs/features/mac/asset_catalogs.prf @@ -65,7 +65,7 @@ actool_output_files = $$system(\ mkdir -p $$system_quote($$QMAKE_ASSET_CATALOGS_BUILD_PATH) && \ /usr/libexec/PlistBuddy -c \'Print :com.apple.actool.compilation-results:output-files\' \ - /dev/stdin <<< $($${asset_catalog_compiler.commands} 2>/dev/null) | grep \'^ .*$\', lines) + /dev/stdin <<< $($${asset_catalog_compiler.commands} 2>/dev/null) | sed -Ene \'s/^ +//p\', lines) for (output_file, actool_output_files) { !equals(output_file, $$asset_catalog_compiler.target): \ -- cgit v1.2.3 From aeb2768a7c5b23260e6ca0826b844777b9948b6c Mon Sep 17 00:00:00 2001 From: Hannah von Reth Date: Fri, 11 Nov 2016 10:02:34 +0100 Subject: Introduce QMAKE_CD to enable us to cd from one Windows drive to another On Windows cd does not change the drive. So when you are on drive C: and type "cd D:\data" it will change the directory on drive D: but not affect your current working directory. To also change your drive you have to provide the parameter /d on Windows, so "cd /d D:\data" will also change the drive. Task-number: QTBUG-57080 Change-Id: Ib629879534523982eec693cef725f20a535a1a74 Reviewed-by: Oswald Buddenhagen --- mkspecs/features/configure.prf | 2 +- mkspecs/features/ctest_testcase_common.prf | 2 +- mkspecs/features/qt_configure.prf | 4 ++-- mkspecs/features/qt_parts.prf | 2 +- mkspecs/features/spec_post.prf | 2 ++ mkspecs/features/testcase.prf | 2 +- mkspecs/features/uikit/xcodebuild.prf | 2 +- 7 files changed, 9 insertions(+), 7 deletions(-) (limited to 'mkspecs') diff --git a/mkspecs/features/configure.prf b/mkspecs/features/configure.prf index 147d6f178c..62eae6d813 100644 --- a/mkspecs/features/configure.prf +++ b/mkspecs/features/configure.prf @@ -31,7 +31,7 @@ defineTest(qtCompileTest) { test_dir = $$QMAKE_CONFIG_TESTS_DIR/$$1 test_out_dir = $$shadowed($$test_dir) - test_cmd_base = "cd $$system_quote($$system_path($$test_out_dir)) &&" + test_cmd_base = "$$QMAKE_CD $$system_quote($$system_path($$test_out_dir)) &&" # Disable qmake features which are typically counterproductive for tests qmake_configs = "\"CONFIG -= qt debug_and_release app_bundle lib_bundle\"" diff --git a/mkspecs/features/ctest_testcase_common.prf b/mkspecs/features/ctest_testcase_common.prf index af80fc00a1..8cdad77a78 100644 --- a/mkspecs/features/ctest_testcase_common.prf +++ b/mkspecs/features/ctest_testcase_common.prf @@ -86,7 +86,7 @@ for (MODULE_UNDER_TEST, CMAKE_QT_MODULES_UNDER_TEST) { CMAKE_MODULES_UNDER_TEST = $$join(CMAKE_MODULES_UNDER_TEST, ;) check.commands = \ - $(MKDIR) $$BUILD_DIR && cd $$BUILD_DIR && \ + $(MKDIR) $$BUILD_DIR && $$QMAKE_CD $$BUILD_DIR && \ cmake $$CMAKE_TEST_LOCATION $$CMAKE_GENERATOR \ -DCMAKE_C_COMPILER=$$QMAKE_CC \ -DCMAKE_CXX_COMPILER=$$QMAKE_CXX \ diff --git a/mkspecs/features/qt_configure.prf b/mkspecs/features/qt_configure.prf index d5b9c6dc11..47772be8de 100644 --- a/mkspecs/features/qt_configure.prf +++ b/mkspecs/features/qt_configure.prf @@ -324,7 +324,7 @@ defineTest(qtConfParseCommandLine) { defineReplace(qtConfToolchainSupportsFlag) { test_out_dir = $$shadowed($$QMAKE_CONFIG_TESTS_DIR) - test_cmd_base = "cd $$system_quote($$system_path($$test_out_dir)) &&" + test_cmd_base = "$$QMAKE_CD $$system_quote($$system_path($$test_out_dir)) &&" conftest = "int main() { return 0; }" write_file("$$test_out_dir/conftest.cpp", conftest)|error() @@ -696,7 +696,7 @@ defineTest(qtConfTest_compile) { test_out_dir = $$shadowed($$test_dir) !isEmpty($${1}.pro): \ test_dir = $$test_dir/$$eval($${1}.pro) - test_cmd_base = "cd $$system_quote($$system_path($$test_out_dir)) &&" + test_cmd_base = "$$QMAKE_CD $$system_quote($$system_path($$test_out_dir)) &&" qmake_args = $$qtConfPkgConfigEnv()$$system_quote($$system_path($$QMAKE_QMAKE)) !isEmpty(QMAKE_QTCONF): \ diff --git a/mkspecs/features/qt_parts.prf b/mkspecs/features/qt_parts.prf index 0accef6665..67e218ca73 100644 --- a/mkspecs/features/qt_parts.prf +++ b/mkspecs/features/qt_parts.prf @@ -88,7 +88,7 @@ for (t, tests): \ testdirs = $$unique(testdirs) for (td, testdirs) { t = $$basename(td)-distclean - $${t}.commands = -cd $$shell_path($$td) && $(MAKE) distclean + $${t}.commands = -$$QMAKE_CD $$shell_path($$td) && $(MAKE) distclean QMAKE_EXTRA_TARGETS += $$t DISTCLEAN_DEPS += $$t } diff --git a/mkspecs/features/spec_post.prf b/mkspecs/features/spec_post.prf index 234189fed1..f87bf3c037 100644 --- a/mkspecs/features/spec_post.prf +++ b/mkspecs/features/spec_post.prf @@ -67,6 +67,7 @@ equals(MAKEFILE_GENERATOR, MSBUILD) \ |isEmpty(QMAKE_SH) { QMAKE_ZIP = zip -r -9 + QMAKE_CD = cd /d QMAKE_COPY = copy /y QMAKE_COPY_FILE = $$QMAKE_COPY QMAKE_COPY_DIR = xcopy /s /q /y /i @@ -87,6 +88,7 @@ equals(MAKEFILE_GENERATOR, MSBUILD) \ QMAKE_TAR = tar -cf QMAKE_GZIP = gzip -9f + QMAKE_CD = cd QMAKE_COPY = cp -f QMAKE_COPY_FILE = $$QMAKE_COPY QMAKE_COPY_DIR = $$QMAKE_COPY -R diff --git a/mkspecs/features/testcase.prf b/mkspecs/features/testcase.prf index 83ff177856..c202664c47 100644 --- a/mkspecs/features/testcase.prf +++ b/mkspecs/features/testcase.prf @@ -49,7 +49,7 @@ unix { $${type}.commands += $(TESTARGS) !isEmpty(TESTRUN_CWD):!contains(TESTRUN_CWD, ^\\./?): \ - $${type}.commands = cd $$shell_path($$TESTRUN_CWD) && $$eval($${type}.commands) + $${type}.commands = $$QMAKE_CD $$shell_path($$TESTRUN_CWD) && $$eval($${type}.commands) # If the test is marked as insignificant, discard the exit code insignificant_test: $${type}.commands = -$$eval($${type}.commands) diff --git a/mkspecs/features/uikit/xcodebuild.prf b/mkspecs/features/uikit/xcodebuild.prf index df015b583a..a766b9ea5c 100644 --- a/mkspecs/features/uikit/xcodebuild.prf +++ b/mkspecs/features/uikit/xcodebuild.prf @@ -27,7 +27,7 @@ for(arg, QMAKE_ARGS) { cmd = "$$QMAKE_QMAKE $$system_quote($$_PRO_FILE_) -spec macx-xcode $$args" debug(1, "Generating Xcode project in $$OUT_PWD using '$$cmd'") -system("cd $$system_quote($$OUT_PWD) && $$cmd") +system("$$QMAKE_CD $$system_quote($$OUT_PWD) && $$cmd") # Subtargets -- cgit v1.2.3 From 6de11782d093dea2e6fe9406fb712706a984ff61 Mon Sep 17 00:00:00 2001 From: Lars Knoll Date: Fri, 11 Nov 2016 09:09:12 +0100 Subject: Allow checking for the existence of modules in configure.json You can now use 'module.gui' to check whether the Qt Gui module exists in the current build of Qt. Task-number: QTBUG-56656 Change-Id: Ic73f162ed0578e07c70e3ec3706f285b6d09a41d Reviewed-by: Oswald Buddenhagen --- mkspecs/features/qt_configure.prf | 45 +++++++++++++++++++++++++++++++++++---- mkspecs/features/qt_module.prf | 4 ++++ 2 files changed, 45 insertions(+), 4 deletions(-) (limited to 'mkspecs') diff --git a/mkspecs/features/qt_configure.prf b/mkspecs/features/qt_configure.prf index 47772be8de..bdf9f21fc9 100644 --- a/mkspecs/features/qt_configure.prf +++ b/mkspecs/features/qt_configure.prf @@ -932,6 +932,15 @@ defineTest(qtRunSingleTest) { qtConfSaveResult($${tpfx}, $$1) } +defineTest(qtConfHaveModule) { + module = $$replace(1, -, _) + !isEmpty(QT.$${module}.skip):$$eval(QT.$${module}.skip): \ + return(false) + !isEmpty(QT.$${module}.name): \ + return(true) + return(false) +} + defineReplace(qtConfEvaluate) { isEmpty(1): return(true) @@ -1015,6 +1024,10 @@ defineReplace(qtConfEvaluateSingleExpression) { var = $$replace(e, "^config\.", "") result = false contains(CONFIG, $$var): result = true + } else: contains(e, "^module\..*") { + var = $$replace(e, "^module\.", "") + result = false + qtConfHaveModule($$var): result = true } else: contains(e, "^arch\..*") { var = $$replace(e, "^arch\.", "") result = false @@ -1183,6 +1196,17 @@ defineTest(qtConfCheckFeature) { return(true) } +defineTest(qtConfCheckModuleCondition) { + QT.$${currentModule}.skip = false + !$$qtConfEvaluate($$eval($${currentConfig}.condition)): \ + QT.$${currentModule}.skip = true + export(QT.$${currentModule}.skip) + + # ensure qtConfHaveModule() works + QT.$${currentModule}.name = - + export(QT.$${currentModule}.name) +} + defineTest(qtConfProcessFeatures) { for (feature, $${currentConfig}.features._KEYS_): \ @@ -1758,15 +1782,28 @@ for (currentConfig, allConfigs) { } } - # process all features - qtConfProcessFeatures() + qtConfCheckModuleCondition() + + qtConfHaveModule($$currentModule) { + # process all features + qtConfProcessFeatures() + } else { + qtConfOutputVar(assign, "privatePro", "QT.$${currentModule}.skip", "true") + } # generate files and reports qtConfProcessOutput() - qtConfCreateReport() - qtConfCreateSummary() + qtConfHaveModule($$currentModule) { + qtConfCreateReport() + qtConfCreateSummary() + } else { + QT_CONFIGURE_SKIPPED_MODULES += " $$currentModule" + } } +!isEmpty(QT_CONFIGURE_SKIPPED_MODULES): \ + qtConfAddNote("The following modules are not being compiled in this configuration:" $$QT_CONFIGURE_SKIPPED_MODULES) + # these come from the pri files loaded above. for (p, QMAKE_POST_CONFIGURE): \ eval($$p) diff --git a/mkspecs/features/qt_module.prf b/mkspecs/features/qt_module.prf index 069eec02eb..31d628596c 100644 --- a/mkspecs/features/qt_module.prf +++ b/mkspecs/features/qt_module.prf @@ -18,6 +18,10 @@ exists($$OUT_PWD/qt$${MODULE}-config.pri) { CONFIG += generated_privates } +skip = $$eval(QT.$${MODULE}.skip) +isEmpty(skip): skip = false +requires(!$$skip) + # Compile as shared/DLL or static according to the option given to configure # unless overridden. Host builds are always static host_build|staticlib: CONFIG += static -- cgit v1.2.3 From c64e4bf6b436c779d9ab03fd6886ab8d27c90235 Mon Sep 17 00:00:00 2001 From: Lars Knoll Date: Wed, 9 Nov 2016 15:02:11 +0100 Subject: Make 'use' entries work across module boundaries 'use' entries in the tests and libraries sections of configure.json files should work acrosss library boundaries, so a test in qtwayland can refer to a library from qtbase. Change-Id: Ide02b9985be427a27982a422ca84a29b23145bcf Reviewed-by: Oswald Buddenhagen --- mkspecs/features/qt_configure.prf | 34 +++++++++++++++++++++++++++------- 1 file changed, 27 insertions(+), 7 deletions(-) (limited to 'mkspecs') diff --git a/mkspecs/features/qt_configure.prf b/mkspecs/features/qt_configure.prf index bdf9f21fc9..38305890b5 100644 --- a/mkspecs/features/qt_configure.prf +++ b/mkspecs/features/qt_configure.prf @@ -675,13 +675,33 @@ defineTest(qtConfTest_library) { defineTest(qtConfTestPrepare_compile) { for (u, $$list($$eval($${1}.use))) { - !contains($${currentConfig}.libraries._KEYS_, $$u): \ - error("Test $$1 tries to use undeclared library '$$u'") - qtConfHandleLibrary($$u) - lpfx = $${currentConfig}.libraries.$${u} - isEmpty($${lpfx}.source): \ - return(false) - $${1}.literal_args += $$qtConfLibraryArgs($${lpfx}.sources.$$eval($${lpfx}.source)) + libConfig = + contains($${currentConfig}.libraries._KEYS_, $$u) { + libConfig = $${currentConfig} + qtConfHandleLibrary($$u) + } else { + for (d, QMAKE_CONFIG_DEPS) { + contains($${d}.libraries._KEYS_, $$u) { + libConfig = $$d + break() + } + } + } + isEmpty(libConfig) { + nu = $$upper($$u) + libs = $$eval(QMAKE_LIBS_$$nu) $$eval(QMAKE_LIBS_$${nu}_DEBUG) $$eval(QMAKE_LIBS_$${nu}_RELEASE) + defines = $$eval(QMAKE_DEFINES_$${nu}) + includes = $$eval(QMAKE_INCDIR_$${nu}) + + isEmpty(libs):isEmpty(defines):isEmpty(includes): \ + error("Test $$1 tries to use undeclared library '$$u'") + $${1}.literal_args += $$system_quote(QMAKE_USE += $$u) + } else { + lpfx = $${libConfig}.libraries.$${u} + isEmpty($${lpfx}.source): \ + return(false) + $${1}.literal_args += $$qtConfLibraryArgs($${lpfx}.sources.$$eval($${lpfx}.source)) + } } export($${1}.literal_args) return(true) -- cgit v1.2.3 From fa8e467804428127429ca91aaa1538bae70b1871 Mon Sep 17 00:00:00 2001 From: Oswald Buddenhagen Date: Fri, 11 Nov 2016 18:01:41 +0100 Subject: fix configure logging when no cache is present yet this got broken in 2ad4d75754. however, the new configure system operates from the top-level build dir anyway, so there is no point in messing with the cache as a reference point to start with - just use OUT_PWD. Task-number: QTBUG-57120 Change-Id: I69629bf497931574bff8452939170abb1776ab60 Reviewed-by: Lars Knoll --- mkspecs/features/configure.prf | 1 + mkspecs/features/configure_base.prf | 2 -- mkspecs/features/qt_configure.prf | 2 ++ 3 files changed, 3 insertions(+), 2 deletions(-) (limited to 'mkspecs') diff --git a/mkspecs/features/configure.prf b/mkspecs/features/configure.prf index 62eae6d813..4ca7c6ba07 100644 --- a/mkspecs/features/configure.prf +++ b/mkspecs/features/configure.prf @@ -4,6 +4,7 @@ cache() load(configure_base) +QMAKE_CONFIG_LOG = $$dirname(_QMAKE_CACHE_)/config.log recheck: write_file($$QMAKE_CONFIG_LOG, "") isEmpty(QMAKE_CONFIG_TESTS_DIR): QMAKE_CONFIG_TESTS_DIR = $$_PRO_FILE_PWD_/config.tests diff --git a/mkspecs/features/configure_base.prf b/mkspecs/features/configure_base.prf index 4d68affabf..4e7292451e 100644 --- a/mkspecs/features/configure_base.prf +++ b/mkspecs/features/configure_base.prf @@ -42,5 +42,3 @@ defineTest(qtRunLoggedCommand) { !equals(result, 0): return(false) return(true) } - -QMAKE_CONFIG_LOG = $$dirname(_QMAKE_CACHE_)/config.log diff --git a/mkspecs/features/qt_configure.prf b/mkspecs/features/qt_configure.prf index 38305890b5..2810faad1a 100644 --- a/mkspecs/features/qt_configure.prf +++ b/mkspecs/features/qt_configure.prf @@ -1768,6 +1768,8 @@ equals(QMAKE_CONFIG_CACHE_USE, none) { "cache.xplatform = $$[QMAKE_XSPEC]" write_file($$QMAKE_CONFIG_CACHE, cont) } + +QMAKE_CONFIG_LOG = $$OUT_PWD/config.log !equals(QMAKE_CONFIG_CACHE_USE, all): \ write_file($$QMAKE_CONFIG_LOG, "") -- cgit v1.2.3 From d01c774f4508b1606dfac0905a66ac5748af6b90 Mon Sep 17 00:00:00 2001 From: Oswald Buddenhagen Date: Fri, 11 Nov 2016 18:59:16 +0100 Subject: configure: fix caching of includedir results amends ce7df6ac7. Change-Id: Id56ee59b5955addb58cc4d0879dc097bdd7841d8 Reviewed-by: Lars Knoll --- mkspecs/features/qt_configure.prf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'mkspecs') diff --git a/mkspecs/features/qt_configure.prf b/mkspecs/features/qt_configure.prf index 2810faad1a..c984206f0d 100644 --- a/mkspecs/features/qt_configure.prf +++ b/mkspecs/features/qt_configure.prf @@ -647,7 +647,7 @@ defineTest(qtConfHandleLibrary) { qtLog(" => source accepted.") $${lpfx}.cache += source - for (v, $$list(libs includes cflags version export)): \ + for (v, $$list(libs includedir cflags version export)): \ $${lpfx}.cache += sources.$${s}.$${v} for (b, $${spfx}.builds._KEYS_): \ $${lpfx}.cache += sources.$${s}.builds.$${b} -- cgit v1.2.3 From 6cd358db7e648265ab15b796815eea9609228d69 Mon Sep 17 00:00:00 2001 From: Oswald Buddenhagen Date: Fri, 11 Nov 2016 18:02:56 +0100 Subject: mark up output of called commands in configure log otherwise it's sometimes quite hard to tell it apart from configure's own messages. Change-Id: I2f4908344367a9a3ce38e032bf76486fc4552ffd Reviewed-by: Lars Knoll --- mkspecs/features/configure_base.prf | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'mkspecs') diff --git a/mkspecs/features/configure_base.prf b/mkspecs/features/configure_base.prf index 4e7292451e..dd1f4e5bfc 100644 --- a/mkspecs/features/configure_base.prf +++ b/mkspecs/features/configure_base.prf @@ -33,7 +33,10 @@ defineTest(qtRunLoggedCommand) { qtLog("+ $$1") output = $$system("( $$1 ) 2>&1", lines, result) - qtLog($$output) + lg = + for (l, output): \ + lg += "> $$l" + qtLog($$lg) !isEmpty(2) { $$2 = $$output export($$2) -- cgit v1.2.3 From 2b6bcd5ff31a51611f4701995a9c42a774eb4b8c Mon Sep 17 00:00:00 2001 From: Oswald Buddenhagen Date: Wed, 9 Nov 2016 13:12:23 +0100 Subject: make use of $$QMAKE_QMAKE there is no need to reconstruct it from scratch. Change-Id: Ied6f88634f1875b4aa47a39af0d0d89a7ad4a654 Reviewed-by: Lars Knoll --- mkspecs/features/moc.prf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'mkspecs') diff --git a/mkspecs/features/moc.prf b/mkspecs/features/moc.prf index 1756ca35bf..59ed81b49e 100644 --- a/mkspecs/features/moc.prf +++ b/mkspecs/features/moc.prf @@ -32,7 +32,7 @@ if(gcc|intel_icl|msvc):!rim_qcc:!uikit { gcc: moc_predefs.commands = $$QMAKE_CXX $$QMAKE_CXXFLAGS -dM -E -o ${QMAKE_FILE_OUT} ${QMAKE_FILE_IN} else:intel_icl: moc_predefs.commands = $$QMAKE_CXX $$QMAKE_CXXFLAGS -QdM -P -Fi${QMAKE_FILE_OUT} ${QMAKE_FILE_IN} else:msvc { - moc_predefs.commands += $$QMAKE_CXX -Bx$$shell_quote($$shell_path($$[QT_INSTALL_BINS/get]/qmake)) $$QMAKE_CXXFLAGS -E ${QMAKE_FILE_IN} 2>NUL >${QMAKE_FILE_OUT} + moc_predefs.commands += $$QMAKE_CXX -Bx$$QMAKE_QMAKE $$QMAKE_CXXFLAGS -E ${QMAKE_FILE_IN} 2>NUL >${QMAKE_FILE_OUT} } else: error("Oops, I messed up") moc_predefs.output = $$MOC_DIR/moc_predefs.h moc_predefs.input = MOC_PREDEF_FILE -- cgit v1.2.3 From 1a43199fcea1bcec1ebf1a1a12cd3dcb942d67b4 Mon Sep 17 00:00:00 2001 From: Oswald Buddenhagen Date: Tue, 8 Nov 2016 18:50:54 +0100 Subject: configure: turn qtConfOutputPostProcess_*() callbacks into replace functions now the callbacks don't need to re-export the designated file contents, which improves the abstraction and removes some boilerplate. Change-Id: Ifa50313155fc96762025e2610b810ebb71daa373 Reviewed-by: Lars Knoll --- mkspecs/features/qt_configure.prf | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) (limited to 'mkspecs') diff --git a/mkspecs/features/qt_configure.prf b/mkspecs/features/qt_configure.prf index c984206f0d..289e2250bd 100644 --- a/mkspecs/features/qt_configure.prf +++ b/mkspecs/features/qt_configure.prf @@ -1672,13 +1672,17 @@ defineTest(qtConfProcessOutput) { } } - ppScope = - !isEmpty(module): ppScope = $${module}_ - defined(qtConfOutputPostProcess_$${ppScope}$${type}, test): \ - qtConfOutputPostProcess_$${ppScope}$${type}() + content = $$eval($${currentConfig}.output.$${type}) + + !isEmpty(module): \ + call = qtConfOutputPostProcess_$${module}_$${type} + else: \ + call = qtConfOutputPostProcess_$${type} + defined($$call, replace): \ + eval(content = \$\$"$$call"(\$\$content)) file = $$eval($${currentConfig}.files.$${type}) - fileCont.$$file += $$eval($${currentConfig}.output.$${type}) + fileCont.$$file += $$content fileCont._KEYS_ *= $$file } -- cgit v1.2.3 From 38e935701c0faeb19b9b1493dc2d6d60c6bc3ca3 Mon Sep 17 00:00:00 2001 From: Oswald Buddenhagen Date: Tue, 15 Nov 2016 14:01:15 +0100 Subject: make QMAKE_USE obey QMAKE_LIBDIR_* this is complementary to configure's makeSpec library source type. this should be sufficient to make QMAKE_USE += {egl,opengl,opengl_es2} actually work, obsoleting the need for opengl.prf and egl.prf (and the currently dysfunct openvg.prf). Change-Id: I2f7595ac89afa087ea7f0f25060e8e47e6148be9 Reviewed-by: Andy Nichols Reviewed-by: Lars Knoll --- mkspecs/features/qmake_use.prf | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'mkspecs') diff --git a/mkspecs/features/qmake_use.prf b/mkspecs/features/qmake_use.prf index 81b841d457..9b6c67ccc2 100644 --- a/mkspecs/features/qmake_use.prf +++ b/mkspecs/features/qmake_use.prf @@ -10,14 +10,17 @@ for(ever) { else: \ libs = $$eval(QMAKE_LIBS_$${nu}_RELEASE) libs += $$eval(QMAKE_LIBS_$$nu) + libdir = $$eval(QMAKE_LIBDIR_$$nu) defines = $$eval(QMAKE_DEFINES_$${nu}) includes = $$eval(QMAKE_INCDIR_$${nu}) isEmpty(libs):isEmpty(defines):isEmpty(includes): \ error("Library '$$name' is not defined.") - !contains(use, nolink): \ + !contains(use, nolink) { + QMAKE_LIBDIR += $$libdir LIBS$${suffix} += $$libs + } !contains(use, linkonly) { DEFINES += $$defines INCLUDEPATH += $$includes -- cgit v1.2.3