From 0738c38f0ec435ad4510a1c8eb60f74a2ba46a2f Mon Sep 17 00:00:00 2001 From: Donald Carr Date: Wed, 7 Mar 2012 00:11:44 +0000 Subject: [PATCH] Add Qt Widgets opt out support to build system There should be a clear QWidget free path for people with no interest in legacy QWidget functionality. Adding this option to configure makes this path readily accessible and hence testable. Change-Id: If87c1063fcf4c46f5280836126c11999feaa9f8a Reviewed-by: Oswald Buddenhagen --- configure | 17 ++++++++++++++++- src/plugins/plugins.pro | 2 +- src/src.pro | 1 + tools/configure/configureapp.cpp | 15 ++++++++++++++- 4 files changed, 32 insertions(+), 3 deletions(-) diff --git a/configure b/configure index 04f6005..db3289a 100755 --- a/configure +++ b/configure @@ -651,6 +651,7 @@ CFG_CONFIGURE_EXIT_ON_ERROR=yes CFG_PROFILE=no CFG_EXCEPTIONS=unspecified CFG_GUI=auto # (yes|no|auto) +CFG_WIDGETS=yes CFG_QCONFIG=full CFG_DEBUG=auto CFG_MYSQL_CONFIG= @@ -1712,6 +1713,15 @@ while [ "$#" -gt 0 ]; do fi fi ;; + widgets) + if [ "$VAL" = "yes" ] || [ "$VAL" = "auto" ]; then + CFG_WIDGETS="yes" + elif [ "$VAL" = "no" ]; then + CFG_WIDGETS="no" + else + UNKNOWN_OPT=yes + fi + ;; dbus) if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "linked" ]; then CFG_DBUS="$VAL" @@ -5602,8 +5612,12 @@ if [ "$CFG_GUI" = "auto" ]; then fi if [ "$CFG_GUI" = "no" ]; then QT_CONFIG="$QT_CONFIG no-gui" + CFG_WIDGETS="no" +fi +if [ "$CFG_WIDGETS" = "no" ]; then + QT_CONFIG="$QT_CONFIG no-widgets" + QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_WIDGETS" fi - if [ "x$BUILD_ON_MAC" = "xyes" ] && [ "$XPLATFORM_MINGW" != "yes" ]; then #On Mac we implicitly link against libz, so we @@ -6473,6 +6487,7 @@ fi [ "$CFG_DBUS" = "linked" ] && echo "QtDBus module .......... yes (linked)" echo "QtConcurrent code ...... $CFG_CONCURRENT" echo "QtGui module ........... $CFG_GUI" +echo "QtWidgets module ....... $CFG_WIDGETS" if [ "$CFG_JAVASCRIPTCORE_JIT" = "auto" ]; then echo "JavaScriptCore JIT ..... To be decided by JavaScriptCore" else diff --git a/src/plugins/plugins.pro b/src/plugins/plugins.pro index 177f64c..0855847 100644 --- a/src/plugins/plugins.pro +++ b/src/plugins/plugins.pro @@ -2,7 +2,7 @@ TEMPLATE = subdirs SUBDIRS *= sqldrivers bearer !contains(QT_CONFIG, no-gui): SUBDIRS *= imageformats -!isEmpty(QT.widgets.name): SUBDIRS += accessible +!contains(QT_CONFIG, no-widgets): SUBDIRS += accessible SUBDIRS += platforms platforminputcontexts generic diff --git a/src/src.pro b/src/src.pro index 1c38dce..4efa017 100644 --- a/src/src.pro +++ b/src/src.pro @@ -65,6 +65,7 @@ src_concurrent.target = sub-concurrent src_plugins.depends = src_gui src_sql src_xml src_platformsupport } +contains(QT_CONFIG, no-widgets): SRC_SUBDIRS -= src_opengl src_widgets src_printsupport src_testlib # This creates a sub-src rule sub_src_target.CONFIG = recursive diff --git a/tools/configure/configureapp.cpp b/tools/configure/configureapp.cpp index 1180504..92fdd35 100644 --- a/tools/configure/configureapp.cpp +++ b/tools/configure/configureapp.cpp @@ -198,6 +198,7 @@ Configure::Configure(int& argc, char** argv) dictionary[ "NOPROCESS" ] = "no"; dictionary[ "STL" ] = "yes"; dictionary[ "EXCEPTIONS" ] = "yes"; + dictionary[ "WIDGETS" ] = "yes"; dictionary[ "RTTI" ] = "yes"; dictionary[ "MMX" ] = "auto"; dictionary[ "3DNOW" ] = "auto"; @@ -771,6 +772,11 @@ void Configure::parseCmdLine() else if (configCmdLine.at(i) == "-no-exceptions") dictionary[ "EXCEPTIONS" ] = "no"; + else if (configCmdLine.at(i) == "-widgets") + dictionary[ "WIDGETS" ] = "yes"; + else if (configCmdLine.at(i) == "-no-widgets") + dictionary[ "WIDGETS" ] = "no"; + else if (configCmdLine.at(i) == "-rtti") dictionary[ "RTTI" ] = "yes"; else if (configCmdLine.at(i) == "-no-rtti") @@ -1462,7 +1468,7 @@ bool Configure::displayHelp() "[-no-multimedia] [-multimedia] [-no-audio-backend] [-audio-backend]\n" "[-no-script] [-script] [-no-scripttools] [-scripttools]\n" "[-no-webkit] [-webkit] [-webkit-debug]\n" - "[-no-directwrite] [-directwrite] [-qpa]\n\n", 0, 7); + "[-no-directwrite] [-directwrite] [-qpa] [-no-widgets] \n\n", 0, 7); desc("Installation options:\n\n"); @@ -1496,6 +1502,8 @@ bool Configure::displayHelp() desc("EXCEPTIONS", "no", "-no-exceptions", "Disable exceptions on platforms that support it."); desc("EXCEPTIONS", "yes","-exceptions", "Enable exceptions on platforms that support it.\n"); + desc("WIDGETS", "no", "-no-widgets", "Disable QtWidgets module\n"); + desc("ACCESSIBILITY", "no", "-no-accessibility", "Do not compile Windows Active Accessibility support."); desc("ACCESSIBILITY", "yes", "-accessibility", "Compile Windows Active Accessibility support.\n"); @@ -2097,6 +2105,9 @@ void Configure::generateOutputVars() qtConfig += "release"; } + if (dictionary[ "WIDGETS" ] == "no") + qtConfig += "no-widgets"; + // Compression -------------------------------------------------- if (dictionary[ "ZLIB" ] == "qt") qtConfig += "zlib"; @@ -2804,6 +2815,7 @@ void Configure::generateConfigfiles() if (dictionary["ACCESSIBILITY"] == "no") qconfigList += "QT_NO_ACCESSIBILITY"; if (dictionary["EXCEPTIONS"] == "no") qconfigList += "QT_NO_EXCEPTIONS"; + if (dictionary["WIDGETS"] == "no") qconfigList += "QT_NO_WIDGETS"; if (dictionary["OPENGL"] == "no") qconfigList += "QT_NO_OPENGL"; if (dictionary["OPENVG"] == "no") qconfigList += "QT_NO_OPENVG"; if (dictionary["OPENSSL"] == "no") { @@ -3038,6 +3050,7 @@ void Configure::displayConfig() cout << "OpenVG support.............." << dictionary[ "OPENVG" ] << endl; cout << "OpenSSL support............." << dictionary[ "OPENSSL" ] << endl; cout << "QtDBus support.............." << dictionary[ "DBUS" ] << endl; + cout << "QtWidgets module support...." << dictionary[ "WIDGETS" ] << endl; cout << "Declarative debugging......." << dictionary[ "DECLARATIVE_DEBUG" ] << endl; cout << "DirectWrite support........." << dictionary[ "DIRECTWRITE" ] << endl << endl; -- 2.7.4