From 64cc947ded9999527197168f5d16f25a15638e58 Mon Sep 17 00:00:00 2001 From: Oswald Buddenhagen Date: Thu, 25 Aug 2016 17:19:08 +0200 Subject: automatically launch new configure system in top-level builds this includes moving the -skip option here, where it belongs. the implementation is a bit hacky, but the proper one would be vastly more complex: we'd have to load all modules, then parse the command line properly (the -skip parsing would be a custom callback, to avoid needing to process features), then discard all now excluded modules again, then re-process the command line (so we can complain about options which are now invalid), and only now proceed with the actual feature processing. that seems a bit over the top, so we accept that -skip cannot be the argument of another option, which seems quite reasonable. Change-Id: I0053658e6d7e11b82cdfe55893cb553b664a9298 Reviewed-by: Jake Petroules Reviewed-by: Frederik Gladhorn --- qt.pro | 31 +++++++++++++++++++++++++++---- 1 file changed, 27 insertions(+), 4 deletions(-) (limited to 'qt.pro') diff --git a/qt.pro b/qt.pro index f8d3d4d3..1915fc2c 100644 --- a/qt.pro +++ b/qt.pro @@ -1,12 +1,10 @@ # Create the super cache so modules will add themselves to it. cache(, super) -CONFIG += build_pass # hack to disable the .qmake.super auto-add -load(qt_build_config) -CONFIG -= build_pass # unhack, as it confuses Qt Creator - TEMPLATE = subdirs +CONFIG += prepare_docs qt_docs_targets + # Extract submodules from .gitmodules. lines = $$cat(.gitmodules, lines) for (line, lines) { @@ -26,6 +24,29 @@ for (line, lines) { } QMAKE_INTERNAL_INCLUDED_FILES += $$PWD/.gitmodules +QT_SKIP_MODULES = +uikit { + QT_SKIP_MODULES += qtdoc qtmacextras qtserialport qtwebkit qtwebkit-examples + !ios: QT_SKIP_MODULES += qtscript +} + +# This is a bit hacky, but a proper implementation is not worth it. +args = $$QMAKE_EXTRA_ARGS +for (ever) { + isEmpty(args): break() + a = $$take_first(args) + + equals(a, -skip) { + isEmpty(args): break() + m = $$take_first(args) + contains(m, -.*): next() + m ~= s/^(qt)?/qt/ + !contains(modules, $$m): \ + error("-skip command line argument used with non-existent module '$$m'.") + QT_SKIP_MODULES += $$m + } +} + modules = $$sort_depends(modules, module., .depends .recommends) modules = $$reverse(modules) for (mod, modules) { @@ -72,3 +93,5 @@ for (mod, modules) { SUBDIRS += $$mod } + +load(qt_configure) -- cgit v1.2.3