From c027cffbef6cb317a5a09e1785398c046f0a6395 Mon Sep 17 00:00:00 2001 From: Oswald Buddenhagen Date: Mon, 1 Aug 2016 12:40:03 +0200 Subject: make the windows configure also use config_help.txt specifically, make configure.bat dump the text file (which got some windows-specific adjustments). incidentally, this change removes the need for including a pre-built configure.exe into our source packages. Change-Id: Ib3515c113f3602767554fe1493df226551a7bf10 Reviewed-by: Lars Knoll --- tools/configure/configureapp.cpp | 418 +-------------------------------------- tools/configure/configureapp.h | 4 - tools/configure/main.cpp | 2 - 3 files changed, 2 insertions(+), 422 deletions(-) (limited to 'tools') diff --git a/tools/configure/configureapp.cpp b/tools/configure/configureapp.cpp index c611de6060..059d2b15e7 100644 --- a/tools/configure/configureapp.cpp +++ b/tools/configure/configureapp.cpp @@ -365,12 +365,8 @@ void Configure::parseCmdLine() for (; i outputWidth)) // Wrap at outputWidth - { - printf("\n"); - linePos = 0; - firstLine = false; - if (*nextToken == '\n') - ++nextToken; - continue; - } - if (!firstLine && linePos < wrapIndent) { // Indent to wrapIndent - printf("%*s", wrapIndent , ""); - linePos = wrapIndent; - if (*nextToken == ' ') { - ++nextToken; - continue; - } - } - printf("%.*s", nextTokenLen, nextToken); - linePos += nextTokenLen; - nextToken += nextTokenLen; - } -} - -/*! - Prints out an option with its description wrapped at the - description starting point. If \a skipIndent is true, the - indentation to the option is not outputted (used by marked option - version of desc()). Extra spaces between option and its - description is filled with\a fillChar, if there's available - space. -*/ -void Configure::desc(const char *option, const char *description, bool skipIndent, char fillChar) -{ - if (!skipIndent) - printf("%*s", optionIndent, ""); - - int remaining = descIndent - optionIndent - int(strlen(option)); - int wrapIndent = descIndent + qMax(0, 1 - remaining); - printf("%s", option); - - if (remaining > 2) { - printf(" "); // Space in front - for (int i = remaining; i > 2; --i) - printf("%c", fillChar); // Fill, if available space - } - printf(" "); // Space between option and description - - desc(description, wrapIndent, wrapIndent); - printf("\n"); -} - -/*! - Same as above, except it also marks an option with an '*', if - the option is default action. -*/ -void Configure::desc(const char *mark_option, const char *mark, const char *option, const char *description, char fillChar) -{ - const QString markedAs = dictionary.value(mark_option); - if (markedAs == "auto" && markedAs == mark) // both "auto", always => + - printf(" + "); - else if (markedAs == "auto") // setting marked as "auto" and option is default => + - printf(" %c " , (defaultTo(mark_option) == QLatin1String(mark))? '+' : ' '); - else if (QLatin1String(mark) == "auto" && markedAs != "no") // description marked as "auto" and option is available => + - printf(" %c " , checkAvailability(mark_option) ? '+' : ' '); - else // None are "auto", (markedAs == mark) => * - printf(" %c " , markedAs == QLatin1String(mark) ? '*' : ' '); - - desc(option, description, true, fillChar); -} - /*! Modifies the default configuration based on given -platform option. Eg. switches to different default styles for Windows CE. @@ -1493,314 +1387,6 @@ void Configure::applySpecSpecifics() } } -// Output helper functions ---------------------------------[ Stop ]- - - -bool Configure::displayHelp() -{ - if (dictionary[ "HELP" ] == "yes") { - desc("Usage: configure [options]\n\n", 0, 7); - - desc("Installation options:\n\n"); - - desc("These are optional, but you may specify install directories.\n\n", 0, 1); - - desc( "-prefix ", "The deployment directory, as seen on the target device.\n" - "(default %CD%)\n"); - - desc( "-extprefix ", "The installation directory, as seen on the host machine.\n" - "(default SYSROOT/PREFIX)\n"); - - desc( "-hostprefix [dir]", "The installation directory for build tools running on the\n" - "host machine. If [dir] is not given, the current build\n" - "directory will be used. (default EXTPREFIX)\n"); - - desc("You may use these to change the layout of the install. Note that all directories\n" - "except -sysconfdir should be located under -prefix/-hostprefix:\n\n"); - - desc( "-bindir ", "User executables will be installed to \n(default PREFIX/bin)"); - desc( "-libdir ", "Libraries will be installed to \n(default PREFIX/lib)"); - desc( "-headerdir ", "Headers will be installed to \n(default PREFIX/include)"); - desc( "-archdatadir ", "Architecture-dependent data used by Qt will be installed to \n(default PREFIX)"); - desc( "-libexecdir ", "Program executables will be installed to \n(default ARCHDATADIR/bin)"); - desc( "-plugindir ", "Plugins will be installed to \n(default ARCHDATADIR/plugins)"); - desc( "-importdir ", "Imports for QML1 will be installed to \n(default ARCHDATADIR/imports)"); - desc( "-qmldir ", "Imports for QML2 will be installed to \n(default ARCHDATADIR/qml)"); - desc( "-datadir ", "Data used by Qt programs will be installed to \n(default PREFIX)"); - desc( "-docdir ", "Documentation will be installed to \n(default DATADIR/doc)"); - desc( "-translationdir ", "Translations of Qt programs will be installed to \n(default DATADIR/translations)"); - desc( "-examplesdir ", "Examples will be installed to \n(default PREFIX/examples)"); - desc( "-testsdir ", "Tests will be installed to \n(default PREFIX/tests)\n"); - - desc( "-hostbindir ", "Host executables will be installed to \n(default HOSTPREFIX/bin)"); - desc( "-hostlibdir ", "Host libraries will be installed to \n(default HOSTPREFIX/lib)"); - desc( "-hostdatadir ", "Data used by qmake will be installed to \n(default HOSTPREFIX)"); - - desc("\nConfigure options:\n\n"); - - desc(" The defaults (*) are usually acceptable. A plus (+) denotes a default value" - " that needs to be evaluated. If the evaluation succeeds, the feature is" - " included. Here is a short explanation of each option:\n\n", 0, 1); - - desc("BUILD", "release","-release", "Compile and link Qt with debugging turned off."); - desc("BUILD", "debug", "-debug", "Compile and link Qt with debugging turned on."); - desc("BUILDALL", "yes", "-debug-and-release", "Compile and link two Qt libraries, with and without debugging turned on.\n"); - - desc("FORCEDEBUGINFO", "yes","-force-debug-info", "Create symbol files for release builds."); - desc("SEPARATE_DEBUG_INFO", "yes","-separate-debug-info", "Strip debug information into a separate file.\n"); - - desc("BUILDDEV", "yes", "-developer-build", "Compile and link Qt with Qt developer options (including auto-tests exporting)\n"); - - desc("RELEASE_TOOLS", "yes", "-optimized-tools", "Build optimized host tools even in debug build."); - desc("RELEASE_TOOLS", "no", "-no-optimized-tools", "Do not build optimized host tools even in debug build.\n"); - - desc("OPENSOURCE", "opensource", "-opensource", "Compile and link the Open-Source Edition of Qt."); - desc("COMMERCIAL", "commercial", "-commercial", "Compile and link the Commercial Edition of Qt.\n"); - - desc( "-c++std ", "Compile Qt with C++ standard edition (c++11, c++14, c++1z)\n" - "Default: highest supported. This option is not supported for MSVC.\n"); - - desc("USE_GOLD_LINKER", "yes", "-use-gold-linker", "Link using the GNU gold linker (gcc only)."); - desc("USE_GOLD_LINKER", "no", "-no-use-gold-linker", "Do not link using the GNU gold linker.\n"); - - desc("ENABLE_NEW_DTAGS", "yes", "-enable-new-dtags", "Use new DTAGS for RPATH (Linux only)."); - desc("ENABLE_NEW_DTAGS", "no", "-disable-new-dtags", "Do not use new DTAGS for RPATH.\n"); - - desc("SHARED", "yes", "-shared", "Create and use shared Qt libraries."); - desc("SHARED", "no", "-static", "Create and use static Qt libraries.\n"); - - desc("STATIC_RUNTIME", "no", "-static-runtime","Statically link the C/C++ runtime library.\n"); - - desc("LTCG", "yes", "-ltcg", "Use Link Time Code Generation. (Release builds only)"); - desc("LTCG", "no", "-no-ltcg", "Do not use Link Time Code Generation.\n"); - - desc( "-make ", "Add part to the list of parts to be built at make time"); - for (int i=0; i", "Exclude part from the list of parts to be built.\n"); - - desc( "-skip ", "Exclude an entire module from the build.\n"); - - desc( "-no-compile-examples", "Install only the sources of examples.\n"); - - desc("WIDGETS", "no", "-no-widgets", "Disable Qt Widgets module.\n"); - desc("GUI", "no", "-no-gui", "Disable Qt GUI module.\n"); - - desc("ACCESSIBILITY", "no", "-no-accessibility", "Disable accessibility support.\n"); - desc( "", "Disabling accessibility is not recommended, as it will break QStyle\n" - "and may break other internal parts of Qt.\n" - "With this switch you create a source incompatible version of Qt,\n" - "which is unsupported.\n"); - desc("ACCESSIBILITY", "yes", "-accessibility", "Enable accessibility support.\n"); - - desc( "-no-sql-", "Disable SQL entirely, by default none are turned on."); - desc( "-qt-sql-", "Enable a SQL in the Qt Library."); - desc( "-plugin-sql-", "Enable SQL as a plugin to be linked to at run time.\n" - "Available values for :"); - desc("SQL_MYSQL", "auto", "", " mysql", ' '); - desc("SQL_PSQL", "auto", "", " psql", ' '); - desc("SQL_OCI", "auto", "", " oci", ' '); - desc("SQL_ODBC", "auto", "", " odbc", ' '); - desc("SQL_TDS", "auto", "", " tds", ' '); - desc("SQL_DB2", "auto", "", " db2", ' '); - desc("SQL_SQLITE", "auto", "", " sqlite", ' '); - desc("SQL_SQLITE2", "auto", "", " sqlite2", ' '); - desc("SQL_IBASE", "auto", "", " ibase", ' '); - desc( "", "(drivers marked with a '+' have been detected as available on this system)\n", false, ' '); - - desc( "-system-sqlite", "Use sqlite from the operating system.\n"); - - desc("OPENGL", "no","-no-opengl", "Do not support OpenGL."); - desc("OPENGL", "no","-opengl ", "Enable OpenGL support with specified API version.\n" - "Available values for :"); - desc("", "no", "", " desktop - Enable support for Desktop OpenGL", ' '); - desc("", "no", "", " dynamic - Enable support for dynamically loaded OpenGL (either desktop or ES)", ' '); - desc("OPENGL_ES_2", "yes", "", " es2 - Enable support for OpenGL ES 2.0\n", ' '); - - desc( "-force-asserts", "Activate asserts in release mode.\n"); - desc( "-platform ", "The operating system and compiler you are building on.\n(default %QMAKESPEC%)\n"); - desc( "-xplatform ", "The operating system and compiler you are cross compiling to.\n"); - desc( "", "See the README file for a list of supported operating systems and compilers.\n", false, ' '); - - desc( "-sysroot ", "Sets as the target compiler's and qmake's sysroot and also sets pkg-config paths."); - desc( "-no-gcc-sysroot", "When using -sysroot, it disables the passing of --sysroot to the compiler.\n"); - - desc( "-qconfig ", "Use src/corelib/global/qconfig-.h rather than the\n" - "default 'full'.\n"); - - desc("NIS", "no", "-no-nis", "Do not compile NIS support."); - desc("NIS", "yes", "-nis", "Compile NIS support.\n"); - - desc("QT_ICONV", "disable", "-no-iconv", "Do not enable support for iconv(3)."); - desc("QT_ICONV", "yes", "-iconv", "Enable support for iconv(3)."); - desc("QT_ICONV", "yes", "-sun-iconv", "Enable support for iconv(3) using sun-iconv."); - desc("QT_ICONV", "yes", "-gnu-iconv", "Enable support for iconv(3) using gnu-libiconv.\n"); - - desc("QT_EVDEV", "no", "-no-evdev", "Do not enable support for evdev."); - desc("QT_EVDEV", "yes", "-evdev", "Enable support for evdev."); - - desc("QT_MTDEV", "no", "-no-mtdev", "Do not enable support for mtdev."); - desc("QT_MTDEV", "yes", "-mtdev", "Enable support for mtdev."); - - desc("QT_INOTIFY", "yes", "-inotify", "Explicitly enable Qt inotify(7) support."); - desc("QT_INOTIFY", "no", "-no-inotify", "Explicitly disable Qt inotify(7) support.\n"); - - desc("QT_EVENTFD", "yes", "-eventfd", "Enable eventfd(7) support in the UNIX event loop."); - desc("QT_EVENTFD", "no", "-no-eventfd", "Disable eventfd(7) support in the UNIX event loop.\n"); - - desc("POSIX_IPC", "yes", "-posix-ipc", "Enable POSIX IPC.\n"); - - desc("QT_GLIB", "yes", "-glib", "Compile Glib support.\n"); - - desc("QT_INSTALL_SETTINGS", "auto", "-sysconfdir ", "Settings used by Qt programs will be looked for in\n.\n"); - - desc("SYSTEM_PROXIES", "yes", "-system-proxies", "Use system network proxies by default."); - desc("SYSTEM_PROXIES", "no", "-no-system-proxies", "Do not use system network proxies by default.\n"); - - desc("SCTP", "yes", "-sctp", "Compile SCTP support."); - desc("SCTP", "no", "-no-sctp", "Do not compile SCTP network protocol support.\n"); - - desc("WERROR", "yes", "-warnings-are-errors", "Make warnings be treated as errors."); - desc("WERROR", "no", "-no-warnings-are-errors","Make warnings be treated normally."); - - desc( "-qtnamespace ", "Wraps all Qt library code in 'namespace name {...}'."); - desc( "-qtlibinfix ", "Renames all Qt* libs to Qt*.\n"); - desc( "-D ", "Add an explicit define to the preprocessor."); - desc( "-I ", "Add an explicit include path."); - desc( "-L ", "Add an explicit library path."); - - desc("PCH", "no", "-no-pch", "Do not use precompiled header support."); - desc("PCH", "yes", "-pch", "Use precopmiled header support.\n"); - - desc( "-help, -h, -?", "Display this information.\n"); - - // 3rd party stuff options go below here -------------------------------------------------------------------------------- - desc("Third Party Libraries:\n\n"); - - desc("SYSTEM_ZLIB", "no", "-qt-zlib", "Use the zlib bundled with Qt."); - desc("SYSTEM_ZLIB", "yes", "-system-zlib", "Use zlib from the operating system.\nSee http://www.gzip.org/zlib\n"); - - desc("PCRE", "qt", "-qt-pcre", "Use the PCRE library bundled with Qt."); - desc("PCRE", "system", "-system-pcre", "Use the PCRE library from the operating system.\nSee http://pcre.org/\n"); - - desc("ICU", "yes", "-icu", "Use the ICU library."); - desc("ICU", "no", "-no-icu", "Do not use the ICU library.\nSee http://site.icu-project.org/\n"); - - desc("GIF", "no", "-no-gif", "Do not compile GIF reading support.\n"); - - desc("LIBPNG", "no", "-no-libpng", "Do not compile PNG support."); - desc("LIBPNG", "qt", "-qt-libpng", "Use the libpng bundled with Qt."); - desc("LIBPNG", "system","-system-libpng", "Use libpng from the operating system.\nSee http://www.libpng.org/pub/png\n"); - - desc("LIBJPEG", "no", "-no-libjpeg", "Do not compile JPEG support."); - desc("LIBJPEG", "qt", "-qt-libjpeg", "Use the libjpeg bundled with Qt."); - desc("LIBJPEG", "system","-system-libjpeg", "Use libjpeg from the operating system.\nSee http://www.ijg.org\n"); - - desc("DOUBLECONVERSION", "no", "-no-doubleconversion", "Use sscanf_l and snprintf_l for (imprecise) double conversion."); - desc("DOUBLECONVERSION", "qt", "-qt-doubleconversion", "Use the libdouble-conversion bundled with Qt."); - desc("DOUBLECONVERSION", "system", "-system-doubleconversion", "Use the libdouble-conversion provided by the system."); - - desc("FREETYPE", "no", "-no-freetype", "Do not compile in Freetype2 support."); - desc("FREETYPE", "yes", "-qt-freetype", "Use the libfreetype bundled with Qt."); - desc("FREETYPE", "system","-system-freetype", "Use the libfreetype provided by the system.\n"); - - desc("FONT_CONFIG", "yes", "-fontconfig", "Build with FontConfig support."); - desc("FONT_CONFIG", "no", "-no-fontconfig", "Do not build with FontConfig support.\n"); - - desc("HARFBUZZ", "no", "-no-harfbuzz", "Do not compile in HarfBuzz-NG support."); - desc("HARFBUZZ", "qt", "-qt-harfbuzz", "Use HarfBuzz-NG bundled with Qt to do text shaping.\n" - "It can still be disabled by setting\n" - "the QT_HARFBUZZ environment variable to \"old\"."); - desc("HARFBUZZ", "system","-system-harfbuzz", "Use HarfBuzz-NG from the operating system\n" - "to do text shaping. It can still be disabled\n" - "by setting the QT_HARFBUZZ environment variable to \"old\".\n" - "See http://www.harfbuzz.org\n"); - - if (platform() == QNX) { - desc("SLOG2", "yes", "-slog2", "Compile with slog2 support."); - desc("SLOG2", "no", "-no-slog2", "Do not compile with slog2 support."); - desc("QNX_IMF", "yes", "-imf", "Compile with imf support."); - desc("QNX_IMF", "no", "-no-imf", "Do not compile with imf support."); - desc("PPS", "yes", "-pps", "Compile with PPS support."); - desc("PPS", "no", "-no-pps", "Do not compile with PPS support."); - desc("LGMON", "yes", "-lgmon", "Compile with lgmon support."); - desc("LGMON", "no", "-no-lgmon", "Do not compile with lgmon support.\n"); - } - - desc("ANGLE", "yes", "-angle", "Use the ANGLE implementation of OpenGL ES 2.0."); - desc("ANGLE", "no", "-no-angle", "Do not use ANGLE.\nSee https://chromium.googlesource.com/angle/angle/+/master/README.md\n"); - // Qt\Windows only options go below here -------------------------------------------------------------------------------- - desc("\nQt for Windows only:\n\n"); - - desc("INCREDIBUILD_XGE", "no", "-no-incredibuild-xge", "Do not add IncrediBuild XGE distribution commands to custom build steps."); - desc("INCREDIBUILD_XGE", "yes", "-incredibuild-xge", "Add IncrediBuild XGE distribution commands to custom build steps. This will distribute MOC and UIC steps, and other custom buildsteps which are added to the INCREDIBUILD_XGE variable.\n(The IncrediBuild distribution commands are only added to Visual Studio projects)\n"); - - desc("PLUGIN_MANIFESTS", "no", "-no-plugin-manifests", "Do not embed manifests in plugins."); - desc("PLUGIN_MANIFESTS", "yes", "-plugin-manifests", "Embed manifests in plugins.\n"); - - desc( "-qreal [double|float]", "typedef qreal to the specified type. The default is double.\n" - "Note that changing this flag affects binary compatibility.\n"); - - desc("RTTI", "no", "-no-rtti", "Do not compile runtime type information."); - desc("RTTI", "yes", "-rtti", "Compile runtime type information."); - desc("STRIP", "no", "-no-strip", "Do not strip libraries and executables of debug info when installing."); - desc("STRIP", "yes", "-strip", "Strip libraries and executables of debug info when installing.\n"); - - desc("SSE2", "no", "-no-sse2", "Do not compile with use of SSE2 instructions."); - desc("SSE2", "yes", "-sse2", "Compile with use of SSE2 instructions."); - desc("SSE3", "no", "-no-sse3", "Do not compile with use of SSE3 instructions."); - desc("SSE3", "yes", "-sse3", "Compile with use of SSE3 instructions."); - desc("SSSE3", "no", "-no-ssse3", "Do not compile with use of SSSE3 instructions."); - desc("SSSE3", "yes", "-ssse3", "Compile with use of SSSE3 instructions."); - desc("SSE4_1", "no", "-no-sse4.1", "Do not compile with use of SSE4.1 instructions."); - desc("SSE4_1", "yes", "-sse4.1", "Compile with use of SSE4.1 instructions."); - desc("SSE4_2", "no", "-no-sse4.2", "Do not compile with use of SSE4.2 instructions."); - desc("SSE4_2", "yes", "-sse4.2", "Compile with use of SSE4.2 instructions."); - desc("AVX", "no", "-no-avx", "Do not compile with use of AVX instructions."); - desc("AVX", "yes", "-avx", "Compile with use of AVX instructions."); - desc("AVX2", "no", "-no-avx2", "Do not compile with use of AVX2 instructions."); - desc("AVX2", "yes", "-avx2", "Compile with use of AVX2 instructions.\n"); - desc("AVX512", "no", "-no-avx512", "Do not compile with use of AVX512 instructions."); - desc("AVX512", "yes", "-avx512", "Compile with use of AVX512 instructions.\n"); - desc("SSL", "no", "-no-ssl", "Do not compile support for SSL."); - desc("SSL", "yes", "-ssl", "Enable run-time SSL support."); - desc("OPENSSL", "no", "-no-openssl", "Do not compile support for OpenSSL."); - desc("OPENSSL", "yes", "-openssl", "Enable run-time OpenSSL support."); - desc("OPENSSL", "linked","-openssl-linked", "Enable linked OpenSSL support.\n"); - desc("LIBPROXY", "no", "-no-libproxy", "Do not compile in libproxy support."); - desc("LIBPROXY", "yes", "-libproxy", "Compile in libproxy support (for cross compilation targets).\n"); - desc("DBUS", "no", "-no-dbus", "Do not compile in D-Bus support."); - desc("DBUS", "linked", "-dbus-linked", "Compile in D-Bus support and link to libdbus-1.\n"); - desc("DBUS", "runtime", "-dbus-runtime", "Compile in D-Bus support and load libdbus-1\ndynamically."); - desc("WMF_BACKEND", "no","-no-wmf-backend", "Do not compile in the windows media foundation backend\ninto Qt Multimedia."); - desc("WMF_BACKEND", "yes","-wmf-backend", "Compile in the windows media foundation backend into Qt Multimedia.\n"); - desc("QML_DEBUG", "no", "-no-qml-debug", "Do not build the in-process QML debugging support."); - desc("QML_DEBUG", "yes", "-qml-debug", "Build the in-process QML debugging support.\n"); - desc("DIRECTWRITE", "no", "-no-directwrite", "Do not build support for DirectWrite font rendering."); - desc("DIRECTWRITE", "yes", "-directwrite", "Build support for DirectWrite font rendering.\n"); - - desc("DIRECT2D", "no", "-no-direct2d", "Do not build the Direct2D platform plugin."); - desc("DIRECT2D", "yes", "-direct2d", "Build the Direct2D platform plugin (experimental,\n" - "requires Direct2D availability on target systems,\n" - "e.g. Windows 7 with Platform Update, Windows 8, etc.)\n"); - - desc( "-no-style-