From 7e27afd88fbc28f767a51e39dda780290f65a7fb Mon Sep 17 00:00:00 2001 From: Oswald Buddenhagen Date: Thu, 11 Oct 2018 14:26:24 +0200 Subject: configure: log -I and -L before doing first library check ... for debugging purposes. this needs to work in every configure run even though the options (currently) come from qtbase's global scope. this is accomplished by automatically injecting the test type dependencies declared in the 'builtins' scope (where they generally make no sense whatsoever, because there are no tests there) into other scopes (the first one that has a test of the particular type, specifically). we do that *after* the scope's own test type deps, so it can do its custom stuff first (it can explicitly activate the required features if it depends on some global stuff). Change-Id: I67317da1b55804d39458bdbcf13d39a3e57a13bf Reviewed-by: Joerg Bornemann Reviewed-by: Oswald Buddenhagen --- mkspecs/features/data/configure.json | 10 ++++++++++ mkspecs/features/qt_configure.prf | 26 ++++++++++++++++++++------ 2 files changed, 30 insertions(+), 6 deletions(-) (limited to 'mkspecs/features') diff --git a/mkspecs/features/data/configure.json b/mkspecs/features/data/configure.json index 167c502e82..faa89231a0 100644 --- a/mkspecs/features/data/configure.json +++ b/mkspecs/features/data/configure.json @@ -17,5 +17,15 @@ "list-features": "void", "list-libraries": "void" } + }, + + "testTypeDependencies": { + "library": [ "library-paths" ] + }, + + "features": { + "library-paths": { + "output": [ "libraryPaths" ] + } } } diff --git a/mkspecs/features/qt_configure.prf b/mkspecs/features/qt_configure.prf index 81b820978a..2cc6b49d3c 100644 --- a/mkspecs/features/qt_configure.prf +++ b/mkspecs/features/qt_configure.prf @@ -1156,7 +1156,7 @@ defineTest(qtConfSetupTestTypeDeps) { } } -defineTest(qtConfEnsureTestTypeDeps) { +defineTest(qtConfEnsureTestTypeDepsOne) { depsn = $${currentConfig}.testTypeDependencies.$${1}._KEYS_ !isEmpty($$depsn) { for (dep, $$depsn) { @@ -1170,12 +1170,18 @@ defineTest(qtConfEnsureTestTypeDeps) { fwdsn = $${currentConfig}.testTypeForwards.$${1} !isEmpty($$fwdsn) { for (fwd, $$fwdsn): \ - qtConfEnsureTestTypeDeps($$fwd) + qtConfEnsureTestTypeDepsOne($$fwd) $$fwdsn = export($$fwdsn) } } +defineTest(qtConfEnsureTestTypeDeps) { + qtConfEnsureTestTypeDepsOne($$1) + currentConfig = config.builtins + qtConfEnsureTestTypeDepsOne($$1) +} + defineTest(qtRunSingleTest) { tpfx = $${currentConfig}.tests.$${1} defined($${tpfx}.result, var): \ @@ -1660,6 +1666,11 @@ defineTest(qtConfCheckErrors) { # output generation # +defineTest(qtConfOutput_libraryPaths) { + qtLog("Global lib dirs: [$$val_escape(EXTRA_LIBDIR)] [$$val_escape(QMAKE_DEFAULT_LIBDIRS)]") + qtLog("Global inc dirs: [$$val_escape(EXTRA_INCLUDEPATH)] [$$val_escape(QMAKE_DEFAULT_INCDIRS)]") +} + # qtConfOutputVar(modifier, output, name, value) defineTest(qtConfOutputVar) { modifier = $$1 @@ -2028,6 +2039,9 @@ for(ever) { } configsToProcess = $$subconfigs $$configsToProcess } +# 'builtins' is used for command line parsing and test type dependency +# injection, but its features must not be processed regularly. +allModuleConfigs = $$member(allConfigs, 1, -1) QMAKE_SAVED_ARGS = $$QMAKE_EXTRA_ARGS QMAKE_REDO_CONFIG = false @@ -2036,7 +2050,7 @@ qtConfCheckErrors() !isEmpty(config.input.list-features) { all_ft = - for (currentConfig, allConfigs) { + for (currentConfig, allModuleConfigs) { for (k, $${currentConfig}.features._KEYS_) { pp = $$eval($${currentConfig}.features.$${k}.purpose) !isEmpty(pp) { @@ -2056,7 +2070,7 @@ qtConfCheckErrors() !isEmpty(config.input.list-libraries) { logn() - for (currentConfig, allConfigs) { + for (currentConfig, allModuleConfigs) { !isEmpty($${currentConfig}.exports._KEYS_) { !isEmpty($${currentConfig}.module): \ logn($$eval($${currentConfig}.module):) @@ -2093,7 +2107,7 @@ qtLog("Command line: $$qtSystemQuote($$QMAKE_SAVED_ARGS)") $$QMAKE_REDO_CONFIG: \ qtLog("config.opt: $$qtSystemQuote($$QMAKE_EXTRA_REDO_ARGS)") -for (currentConfig, allConfigs) { +for (currentConfig, allModuleConfigs) { qtConfSetModuleName() qtConfSetupModuleOutputs() # do early checks, mainly to validate the command line @@ -2137,7 +2151,7 @@ CONFIG += qt_conf_tests_allowed logn() logn("Running configuration tests...") -for (currentConfig, allConfigs) { +for (currentConfig, allModuleConfigs) { tdir = $$eval($${currentConfig}.testDir) isEmpty(tdir): tdir = config.tests QMAKE_CONFIG_TESTS_DIR = $$absolute_path($$tdir, $$eval($${currentConfig}.dir)) -- cgit v1.2.3 From 6bea0398eadb08c69727dd2ec8919aa4e5f98b07 Mon Sep 17 00:00:00 2001 From: Oswald Buddenhagen Date: Fri, 12 Oct 2018 15:51:38 +0200 Subject: configure: fix bogus message about not needing to install qt when building additional modules against an already installed qtbase, $$[QT_INSTALL_PREFIX/get] is obviously the same as $$[QT_INSTALL_PREFIX], so we would misdiagnose a non-prefix build. instead, use the same condition as qt_build_config.prf (we cannot just rely on what it sets, because in qtbase configure context it's evaluated before we set up the paths). Fixes: QTBUG-60541 Change-Id: I37be30e0e682ece76ed460a66f1984ee0fe2ed71 Reviewed-by: Thiago Macieira Reviewed-by: Oswald Buddenhagen --- 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 2cc6b49d3c..65ee7df50b 100644 --- a/mkspecs/features/qt_configure.prf +++ b/mkspecs/features/qt_configure.prf @@ -2215,7 +2215,7 @@ qtConfPrintReport() logn() logn("Qt is now configured for building. Just run '$$QMAKE_MAKE_NAME'.") pfx = $$[QT_INSTALL_PREFIX] -equals(pfx, $$[QT_INSTALL_PREFIX/get]) { +exists($$pfx/.qmake.cache) { logn("Once everything is built, Qt is installed.") logn("You should NOT run '$$QMAKE_MAKE_NAME install'.") logn("Note that this build cannot be deployed to other machines or devices.") -- cgit v1.2.3 From 54dabdd1e831491359e85fae444ab3ec700a0d2b Mon Sep 17 00:00:00 2001 From: Oswald Buddenhagen Date: Mon, 29 Oct 2018 17:04:38 +0100 Subject: wasm: fix qpa plugin build system integration fix the plugin name (it was missing the leading 'q') and the name used in configure (the latter making it unnecessary to mess with it in the mkspec). the qt.prf override which forced linkage of the plugin is also removed due to being completely redundant. Change-Id: I94687a34a295c36754e36a298af902b656ba2ecc Reviewed-by: Kyle Edwards Reviewed-by: Lorn Potter --- mkspecs/features/wasm/qt.prf | 12 ------------ 1 file changed, 12 deletions(-) delete mode 100644 mkspecs/features/wasm/qt.prf (limited to 'mkspecs/features') diff --git a/mkspecs/features/wasm/qt.prf b/mkspecs/features/wasm/qt.prf deleted file mode 100644 index 9b9b58d3de..0000000000 --- a/mkspecs/features/wasm/qt.prf +++ /dev/null @@ -1,12 +0,0 @@ - -qt_depends = $$resolve_depends(QT, "QT.") -equals(TEMPLATE, app):contains(qt_depends, gui(-private)?) { - LIBS *= -L$$[QT_INSTALL_PLUGINS/get]/platforms - - lib_name = wasm - lib_path_and_base = $$[QT_INSTALL_PLUGINS/get]/platforms/lib$${lib_name}$$qtPlatformTargetSuffix() - LIBS += -l$${lib_name}$$qtPlatformTargetSuffix() $$fromfile($${lib_path_and_base}.prl, QMAKE_PRL_LIBS) -} - -load(qt) - -- cgit v1.2.3 From 364337a27fce1fdc85f2ddece60bd3412060b79b Mon Sep 17 00:00:00 2001 From: Joerg Bornemann Date: Thu, 15 Nov 2018 10:55:23 +0100 Subject: Remove duplicated documentation from package_manifest.prf Descriptions for WINRT_MANIFEST's subkeys are in the documentation. Having a copy in the prf file is superfluous and is likely to run out of sync at some point. Change-Id: Icea49854981990139305f6dc4e73d1b9dcb01dd5 Reviewed-by: Oliver Wolff Reviewed-by: Oswald Buddenhagen --- mkspecs/features/winrt/package_manifest.prf | 29 +---------------------------- 1 file changed, 1 insertion(+), 28 deletions(-) (limited to 'mkspecs/features') diff --git a/mkspecs/features/winrt/package_manifest.prf b/mkspecs/features/winrt/package_manifest.prf index d850254dcf..143b884dbf 100644 --- a/mkspecs/features/winrt/package_manifest.prf +++ b/mkspecs/features/winrt/package_manifest.prf @@ -5,34 +5,7 @@ # Afterwards, they can override the default template by assigning their template to WINRT_MANIFEST. # # All subkeys in WINRT_MANIFEST will be replaced if defined/found, so new variables can be easily -# added. The following keys have default values and are present in the default templates: -# WINRT_MANIFEST: The name of the input manifest file. Defaults to a file defined by the mkspec. -# WINRT_MANIFEST.target: The name of the target (.exe). Defaults to TARGET. -# WINRT_MANIFEST.identity: The unique ID of the app. Defaults to reusing the existing generated manifest's UUID, or generates a new UUID if none is present. -# WINRT_MANIFEST.name: The name of the package as displayed to the user. Defaults to TARGET. -# WINRT_MANIFEST.architecture: The target architecture. Defaults to VCPROJ_ARCH. -# WINRT_MANIFEST.version: The version number of the package. Defaults to "1.0.0.0". -# WINRT_MANIFEST.publisher: Display name of the publisher. Defaults to "Default publisher display name". -# WINRT_MANIFEST.publisher_id: The publisher's distinguished name (default: CN=MyCN). -# WINRT_MANIFEST.phone_product_id: The GUID of the product. Defaults to the value of WINRT_MANIFEST.identity. (Windows Phone only) -# WINRT_MANIFEST.phone_publisher_id: The GUID of the publisher. Defaults to an invalid GUID. (Windows Phone only) -# WINRT_MANIFEST.description: Package description. Defaults to "Default package description". -# WINRT_MANIFEST.background: Tile background color. Defaults to "green". -# WINRT_MANIFEST.foreground: Tile foreground (text) color (Windows 8/RT only). Defaults to "light". -# WINRT_MANIFEST.logo_store: Logo image file for Windows Store. Default provided by the mkspec. -# WINRT_MANIFEST.logo_small: Small logo image file. Default provided by the mkspec. -# WINRT_MANIFEST.logo_medium: Medium logo image file. Default provided by the mkspec. -# WINRT_MANIFEST.logo_large: Large logo image file. Default provided by the mkspec. -# WINRT_MANIFEST.splash_screen: Splash screen image file. Default provided by the mkspec. -# WINRT_MANIFEST.rotation_preference: Orientation specification. Default is empty. (portrait, landscape, landscapeFlipped) -# WINRT_MANIFEST.iconic_tile_icon: Image file for the "iconic" tile template icon. Default provided by the mkspec. -# WINRT_MANIFEST.iconic_tile_small: Image file for the small "iconic" tile template logo. Default provided by the mkspec. -# WINRT_MANIFEST.default_language: Specifies the default language of the application -# WINRT_MANIFEST.capabilities: Specifies capabilities to add to the capability list. -# WINRT_MANIFEST.capabilities_device: Specifies device capabilities to add to the capability list. (location, webcam...) -# WINRT_MANIFEST.dependencies: Specifies dependencies required by the package. -# WINRT_MANIFEST.minVersion: Specifies the minimum required Windows version to run the package. Defaults to %UCRTVersion% -# WINRT_MANIFEST.maxVersionTested: Specifies the maximum Windows version the package has been tested against. Defaults to WINRT_MANIFEST.minVersion +# added. # The manifest is generated for each build pass for normal apps, and only once for vcapps. # - Normal apps have their package root directory in the same place as the target (one for each build pass). -- cgit v1.2.3