From fedc09daa4d2db7435bb0e95641bb3c05fb04acf Mon Sep 17 00:00:00 2001 From: Oswald Buddenhagen Date: Wed, 16 Nov 2016 15:15:51 +0100 Subject: don't mention config.log in error messages before it even exists Change-Id: I0d56aff4988e92f2e4ce63a6a7939fbb4ceab590 Reviewed-by: Lars Knoll Reviewed-by: Joerg Bornemann --- mkspecs/features/qt_configure.prf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'mkspecs/features') diff --git a/mkspecs/features/qt_configure.prf b/mkspecs/features/qt_configure.prf index 289e2250bd..eaaa161270 100644 --- a/mkspecs/features/qt_configure.prf +++ b/mkspecs/features/qt_configure.prf @@ -22,7 +22,7 @@ defineTest(qtConfAddWarning) { defineTest(qtConfAddError) { QT_CONFIGURE_ERRORS += "ERROR: $$join(1, $$escape_expand(\\n))" export(QT_CONFIGURE_ERRORS) - equals(2, log) { + equals(2, log):qt_conf_tests_allowed { CONFIG += mention_config_log export(CONFIG) } -- cgit v1.2.3 From 591d9588f7e755c2b6eef22d572f5f51d7bc23d0 Mon Sep 17 00:00:00 2001 From: Oswald Buddenhagen Date: Fri, 18 Nov 2016 21:05:53 +0100 Subject: fix use of $$QMAKE_QMAKE the variable is converted to a format suitable for makefiles only after the project was read. to access it, one needs to use the exported makefile variable $(QMAKE). amends 2b6bcd5ff. Change-Id: I5eddff4bebbbcf461b565d5033d17a8daff1e6f4 Reviewed-by: Lars Knoll Reviewed-by: Joerg Bornemann --- mkspecs/features/moc.prf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'mkspecs/features') diff --git a/mkspecs/features/moc.prf b/mkspecs/features/moc.prf index 59ed81b49e..bdb4eb49ec 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$$QMAKE_QMAKE $$QMAKE_CXXFLAGS -E ${QMAKE_FILE_IN} 2>NUL >${QMAKE_FILE_OUT} + moc_predefs.commands += $$QMAKE_CXX -Bx$(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 38259594e2cbb371a34942e98ab4fca1028fd497 Mon Sep 17 00:00:00 2001 From: Oswald Buddenhagen Date: Thu, 24 Nov 2016 14:19:12 +0100 Subject: fix use of $$QMAKE_QMAKE, take 2 we can't use $(QMAKE) after all, as this breaks with the visual studio generator. so massage $$QMAKE_QMAKE into the final form manually instead. supersedes 591d9588f in amending 2b6bcd5ff. Change-Id: I8c7a6c43f9668d88c1cc968dbf5614240f16239a Reviewed-by: Joerg Bornemann --- mkspecs/features/moc.prf | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'mkspecs/features') diff --git a/mkspecs/features/moc.prf b/mkspecs/features/moc.prf index bdb4eb49ec..dc14d71db7 100644 --- a/mkspecs/features/moc.prf +++ b/mkspecs/features/moc.prf @@ -32,7 +32,8 @@ 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$(QMAKE) $$QMAKE_CXXFLAGS -E ${QMAKE_FILE_IN} 2>NUL >${QMAKE_FILE_OUT} + moc_predefs.commands += $$QMAKE_CXX -Bx$$shell_quote($$shell_path($$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 f91bbd243890511c99a084a478e7abe96d334860 Mon Sep 17 00:00:00 2001 From: Oswald Buddenhagen Date: Thu, 24 Nov 2016 17:01:24 +0100 Subject: make handling of qml module search path saner excise knowledge of QTREPOS from qt.prf - this is a private variable of the qt build system which the public functions should not know anything about. instead, move this handling to a function in qt_build_config.prf (where QTREPOS comes from in the first place), and call it from qt_app.prf and qt_example_installs.prf (which should be the only consumers within qt). qt.prf now also checks that the qml install dir actually exists, which is not the case during a modular prefix build of qtdeclarative. not really incidentally, this fixes modular static builds of qtdeclarative. Task-number: QTBUG-57308 Change-Id: I31465b9cd400483264fc236934c6f9f26a5fdd73 Reviewed-by: Simon Hausmann --- mkspecs/features/qt.prf | 9 ++------- mkspecs/features/qt_app.prf | 2 ++ mkspecs/features/qt_build_config.prf | 16 ++++++++++++++++ mkspecs/features/qt_example_installs.prf | 3 +++ 4 files changed, 23 insertions(+), 7 deletions(-) (limited to 'mkspecs/features') diff --git a/mkspecs/features/qt.prf b/mkspecs/features/qt.prf index 9bf0d2fad3..98f794c485 100644 --- a/mkspecs/features/qt.prf +++ b/mkspecs/features/qt.prf @@ -194,13 +194,8 @@ qt_module_deps = $$resolve_depends(qt_module_deps, "QT.") # static builds: link qml import plugins into the app. contains(qt_module_deps, qml): \ qtConfig(static):contains(TEMPLATE, .*app):!host_build:!no_import_scan { - !isEmpty(QTREPOS) { - for (qrep, QTREPOS): \ - exists($$qrep/qml): \ - QMLPATHS += $$qrep/qml - } else { - QMLPATHS += $$[QT_INSTALL_QML/get] - } + exists($$[QT_INSTALL_QML/get]): \ + QMLPATHS *= $$[QT_INSTALL_QML/get] # run qmlimportscanner qtPrepareTool(QMLIMPORTSCANNER, qmlimportscanner, , system) diff --git a/mkspecs/features/qt_app.prf b/mkspecs/features/qt_app.prf index 87e32d6d42..cb84ae0da8 100644 --- a/mkspecs/features/qt_app.prf +++ b/mkspecs/features/qt_app.prf @@ -37,6 +37,8 @@ INSTALLS += target load(qt_targets) load(qt_common) +qtSetQmlPath() + no_launch_target: return() load(resolve_target) diff --git a/mkspecs/features/qt_build_config.prf b/mkspecs/features/qt_build_config.prf index 95e63ecae0..3762c14f98 100644 --- a/mkspecs/features/qt_build_config.prf +++ b/mkspecs/features/qt_build_config.prf @@ -52,6 +52,22 @@ QMAKE_DIR_REPLACE_SANE = PRECOMPILED_DIR OBJECTS_DIR MOC_DIR RCC_DIR UI_DIR unset(modpath) } +defineTest(qtSetQmlPath) { + !qtConfig(static)|host_build|no_import_scan: \ + return() + deps = $$replace(QT, -private$, _private) + deps = $$resolve_depends(deps, "QT.") + !contains(deps, qml): \ + return() + + isEmpty(QTREPOS): \ + QTREPOS = $$shadowed($$dirname(_QMAKE_CONF_)) + for (qrep, QTREPOS): \ + exists($$qrep/qml): \ + QMLPATHS += $$qrep/qml + export(QMLPATHS) +} + # Apply extra compiler flags passed via configure last. CONFIG = qt_build_extra $$CONFIG diff --git a/mkspecs/features/qt_example_installs.prf b/mkspecs/features/qt_example_installs.prf index 4c68cfd72f..0a008374e5 100644 --- a/mkspecs/features/qt_example_installs.prf +++ b/mkspecs/features/qt_example_installs.prf @@ -9,6 +9,9 @@ # We mean it. # +contains(TEMPLATE, .*app): \ + qtSetQmlPath() + contains(TEMPLATE, "vc.*"): return() defineTest(addInstallFiles) { -- cgit v1.2.3 From 1e4054ce2f4f7b488b5d4963f32d4025e20cf537 Mon Sep 17 00:00:00 2001 From: Jesus Fernandez Date: Fri, 18 Nov 2016 14:05:34 +0100 Subject: Add -Wdouble-promotion to headersclean Fixes: warning: implicit conversion from 'float' to 'double' to match other operand of binary expression [-Wdouble-promotion] Task-number: QTBUG-57068 Change-Id: I897a341aca83873bc6abd256a82a3b9f09409833 Reviewed-by: Thiago Macieira --- mkspecs/features/qt_module_headers.prf | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'mkspecs/features') diff --git a/mkspecs/features/qt_module_headers.prf b/mkspecs/features/qt_module_headers.prf index 790a4ee29e..a0be15c4a0 100644 --- a/mkspecs/features/qt_module_headers.prf +++ b/mkspecs/features/qt_module_headers.prf @@ -204,9 +204,20 @@ headersclean:!internal_module { !contains(QT_ARCH, arm):!contains(QT_ARCH, mips): \ hcleanFLAGS += -Wcast-align + greaterThan(QT_CLANG_MAJOR_VERSION, 3) { + hcleanFLAGS += -Wdouble-promotion + } greaterThan(QT_CLANG_MAJOR_VERSION, 2):greaterThan(QT_CLANG_MINOR_VERSION, 7) { + hcleanFLAGS += -Wdouble-promotion + } + !clang { # options accepted only by GCC + greaterThan(QT_GCC_MAJOR_VERSION, 4) { + hcleanFLAGS += -Wdouble-promotion + } greaterThan(QT_GCC_MAJOR_VERSION, 3):greaterThan(QT_GCC_MINOR_VERSION, 4) { + hcleanFLAGS += -Wdouble-promotion + } c++11 { # only enabled for actual c++11 builds due to # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=52806 -- cgit v1.2.3 From e2978d6097be2313e49c57ec14618033cbfa7414 Mon Sep 17 00:00:00 2001 From: Oswald Buddenhagen Date: Fri, 18 Nov 2016 18:17:49 +0100 Subject: move license check to qmake-based configure system this also removes the need for passing pre-processed options via configure.cfg, so get rid of that. a somewhat unfortunate side effect is that the android-style-assets feature had to move back to the top level, as the licensing options depend on it. Started-by: Lars Knoll Change-Id: Id4d1e0ba18b3e3104400293b8f0c7f2f65e68dea Reviewed-by: Lars Knoll --- mkspecs/features/qt_configure.prf | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) (limited to 'mkspecs/features') diff --git a/mkspecs/features/qt_configure.prf b/mkspecs/features/qt_configure.prf index eaaa161270..74ad611ee5 100644 --- a/mkspecs/features/qt_configure.prf +++ b/mkspecs/features/qt_configure.prf @@ -28,6 +28,12 @@ defineTest(qtConfAddError) { } } +defineTest(qtConfFatalError) { + qtConfAddError($$1, $$2) + qtConfPrintReport() + error() +} + defineTest(qtConfCommandlineSetInput) { arg = $${1} val = $${2} @@ -778,9 +784,7 @@ defineTest(qtConfTest_compile) { defineTest(qtConfTest_verifySpec) { qtConfTest_compile($$1): return(true) - qtConfAddError("Cannot compile a minimal program. The toolchain or QMakeSpec is broken.", log) - qtConfPrintReport() - error() + qtConfFatalError("Cannot compile a minimal program. The toolchain or QMakeSpec is broken.", log) } defineTest(qtConfTest_files) { @@ -1310,6 +1314,10 @@ defineTest(qtConfReport_error) { qtConfAddError($${1}, log) } +defineTest(qtConfReport_fatal) { + qtConfFatalError($${1}) +} + defineTest(qtConfCreateReportRecurse) { equals(2, false) { indent = "" -- cgit v1.2.3