tools/configure/configureapp.cpp
changeset 37 758a864f9613
parent 33 3e2da88830cd
equal deleted inserted replaced
36:ef0373b55136 37:758a864f9613
   339 
   339 
   340     dictionary[ "QT3SUPPORT" ]      = "yes";
   340     dictionary[ "QT3SUPPORT" ]      = "yes";
   341     dictionary[ "ACCESSIBILITY" ]   = "yes";
   341     dictionary[ "ACCESSIBILITY" ]   = "yes";
   342     dictionary[ "OPENGL" ]          = "yes";
   342     dictionary[ "OPENGL" ]          = "yes";
   343     dictionary[ "OPENVG" ]          = "no";
   343     dictionary[ "OPENVG" ]          = "no";
   344     dictionary[ "IPV6" ]            = "yes"; // Always, dynamicly loaded
   344     dictionary[ "IPV6" ]            = "yes"; // Always, dynamically loaded
   345     dictionary[ "OPENSSL" ]         = "auto";
   345     dictionary[ "OPENSSL" ]         = "auto";
   346     dictionary[ "DBUS" ]            = "auto";
   346     dictionary[ "DBUS" ]            = "auto";
   347     dictionary[ "S60" ]             = "yes";
   347     dictionary[ "S60" ]             = "yes";
   348 
   348 
   349     dictionary[ "STYLE_WINDOWS" ]   = "yes";
   349     dictionary[ "STYLE_WINDOWS" ]   = "yes";
   379     dictionary[ "QMAKESPEC" ] = tmp;
   379     dictionary[ "QMAKESPEC" ] = tmp;
   380 
   380 
   381     dictionary[ "INCREDIBUILD_XGE" ] = "auto";
   381     dictionary[ "INCREDIBUILD_XGE" ] = "auto";
   382     dictionary[ "LTCG" ]            = "no";
   382     dictionary[ "LTCG" ]            = "no";
   383     dictionary[ "NATIVE_GESTURES" ] = "yes";
   383     dictionary[ "NATIVE_GESTURES" ] = "yes";
       
   384     dictionary[ "MSVC_MP" ] = "no";
   384 }
   385 }
   385 
   386 
   386 Configure::~Configure()
   387 Configure::~Configure()
   387 {
   388 {
   388     for (int i=0; i<3; ++i) {
   389     for (int i=0; i<3; ++i) {
   532             dictionary[ "LTCG" ] = "yes";
   533             dictionary[ "LTCG" ] = "yes";
   533         }
   534         }
   534         else if (configCmdLine.at(i) == "-no-ltcg") {
   535         else if (configCmdLine.at(i) == "-no-ltcg") {
   535             dictionary[ "LTCG" ] = "no";
   536             dictionary[ "LTCG" ] = "no";
   536         }
   537         }
       
   538         else if (configCmdLine.at(i) == "-mp") {
       
   539             dictionary[ "MSVC_MP" ] = "yes";
       
   540         }
       
   541         else if (configCmdLine.at(i) == "-no-mp") {
       
   542             dictionary[ "MSVC_MP" ] = "no";
       
   543         }
       
   544 
   537 #endif
   545 #endif
   538 
   546 
   539         else if (configCmdLine.at(i) == "-platform") {
   547         else if (configCmdLine.at(i) == "-platform") {
   540             ++i;
   548             ++i;
   541             if (i == argCount)
   549             if (i == argCount)
   986 
   994 
   987         else if (configCmdLine.at(i) == "-qtnamespace") {
   995         else if (configCmdLine.at(i) == "-qtnamespace") {
   988             ++i;
   996             ++i;
   989             if (i == argCount)
   997             if (i == argCount)
   990                 break;
   998                 break;
   991             qmakeDefines += "QT_NAMESPACE="+configCmdLine.at(i);
       
   992             dictionary[ "QT_NAMESPACE" ] = configCmdLine.at(i);
   999             dictionary[ "QT_NAMESPACE" ] = configCmdLine.at(i);
   993         } else if (configCmdLine.at(i) == "-qtlibinfix") {
  1000         } else if (configCmdLine.at(i) == "-qtlibinfix") {
   994             ++i;
  1001             ++i;
   995             if (i == argCount)
  1002             if (i == argCount)
   996                 break;
  1003                 break;
  1027             qmakeLibs += QString("-l" + configCmdLine.at(i));
  1034             qmakeLibs += QString("-l" + configCmdLine.at(i));
  1028         } else if (configCmdLine.at(i).startsWith("OPENSSL_LIBS=")) {
  1035         } else if (configCmdLine.at(i).startsWith("OPENSSL_LIBS=")) {
  1029             opensslLibs = configCmdLine.at(i);
  1036             opensslLibs = configCmdLine.at(i);
  1030         } else if (configCmdLine.at(i).startsWith("PSQL_LIBS=")) {
  1037         } else if (configCmdLine.at(i).startsWith("PSQL_LIBS=")) {
  1031             psqlLibs = configCmdLine.at(i);
  1038             psqlLibs = configCmdLine.at(i);
       
  1039         } else if (configCmdLine.at(i).startsWith("SYBASE=")) {
       
  1040             sybase = configCmdLine.at(i);
       
  1041         } else if (configCmdLine.at(i).startsWith("SYBASE_LIBS=")) {
       
  1042             sybaseLibs = configCmdLine.at(i);
  1032         }
  1043         }
  1033 
  1044 
  1034         else if ((configCmdLine.at(i) == "-override-version") || (configCmdLine.at(i) == "-version-override")){
  1045         else if ((configCmdLine.at(i) == "-override-version") || (configCmdLine.at(i) == "-version-override")){
  1035             ++i;
  1046             ++i;
  1036             if (i == argCount)
  1047             if (i == argCount)
  1155             if (system == QLatin1String("raster")
  1166             if (system == QLatin1String("raster")
  1156                 || system == QLatin1String("opengl")
  1167                 || system == QLatin1String("opengl")
  1157                 || system == QLatin1String("openvg")
  1168                 || system == QLatin1String("openvg")
  1158                 || system == QLatin1String("runtime"))
  1169                 || system == QLatin1String("runtime"))
  1159                 dictionary["GRAPHICS_SYSTEM"] = configCmdLine.at(i);
  1170                 dictionary["GRAPHICS_SYSTEM"] = configCmdLine.at(i);
       
  1171         }
       
  1172 
       
  1173         else if (configCmdLine.at(i) == "-runtimegraphicssystem") {
       
  1174             ++i;
       
  1175             if (i == argCount)
       
  1176                 break;
       
  1177             dictionary["RUNTIME_SYSTEM"] = configCmdLine.at(i);
  1160         }
  1178         }
  1161 
  1179 
  1162         else if (configCmdLine.at(i).indexOf(QRegExp("^-(en|dis)able-")) != -1) {
  1180         else if (configCmdLine.at(i).indexOf(QRegExp("^-(en|dis)able-")) != -1) {
  1163             // Scan to see if any specific modules and drivers are enabled or disabled
  1181             // Scan to see if any specific modules and drivers are enabled or disabled
  1164             for (QStringList::Iterator module = modules.begin(); module != modules.end(); ++module) {
  1182             for (QStringList::Iterator module = modules.begin(); module != modules.end(); ++module) {
  1500         dictionary[ "STYLE_S60" ]           = "yes";
  1518         dictionary[ "STYLE_S60" ]           = "yes";
  1501         dictionary[ "FREETYPE" ]            = "no";
  1519         dictionary[ "FREETYPE" ]            = "no";
  1502         dictionary[ "QT3SUPPORT" ]          = "no";
  1520         dictionary[ "QT3SUPPORT" ]          = "no";
  1503         dictionary[ "OPENGL" ]              = "no";
  1521         dictionary[ "OPENGL" ]              = "no";
  1504         dictionary[ "OPENSSL" ]             = "yes";
  1522         dictionary[ "OPENSSL" ]             = "yes";
       
  1523         // We accidently enabled IPv6 for Qt Symbian in 4.6.x. However the underlying OpenC does not fully support IPV6.
       
  1524         // Therefore for 4.7.1 and following we disable it until OpenC either supports it or we have the native Qt
       
  1525         // symbian socket engine.
       
  1526         dictionary[ "IPV6" ]                = "no";
  1505         dictionary[ "STL" ]                 = "yes";
  1527         dictionary[ "STL" ]                 = "yes";
  1506         dictionary[ "EXCEPTIONS" ]          = "yes";
  1528         dictionary[ "EXCEPTIONS" ]          = "yes";
  1507         dictionary[ "RTTI" ]                = "yes";
  1529         dictionary[ "RTTI" ]                = "yes";
  1508         dictionary[ "ARCHITECTURE" ]        = "symbian";
  1530         dictionary[ "ARCHITECTURE" ]        = "symbian";
  1509         dictionary[ "3DNOW" ]               = "no";
  1531         dictionary[ "3DNOW" ]               = "no";
  1625                     "[-no-openssl] [-no-dbus] [-dbus] [-dbus-linked] [-platform <spec>]\n"
  1647                     "[-no-openssl] [-no-dbus] [-dbus] [-dbus-linked] [-platform <spec>]\n"
  1626                     "[-qtnamespace <namespace>] [-qtlibinfix <infix>] [-no-phonon]\n"
  1648                     "[-qtnamespace <namespace>] [-qtlibinfix <infix>] [-no-phonon]\n"
  1627                     "[-phonon] [-no-phonon-backend] [-phonon-backend]\n"
  1649                     "[-phonon] [-no-phonon-backend] [-phonon-backend]\n"
  1628                     "[-no-multimedia] [-multimedia] [-no-audio-backend] [-audio-backend]\n"
  1650                     "[-no-multimedia] [-multimedia] [-no-audio-backend] [-audio-backend]\n"
  1629                     "[-no-script] [-script] [-no-scripttools] [-scripttools]\n"
  1651                     "[-no-script] [-script] [-no-scripttools] [-scripttools]\n"
  1630                     "[-no-webkit] [-webkit] [-graphicssystem raster|opengl|openvg|runtime]\n\n", 0, 7);
  1652                     "[-no-webkit] [-webkit] [-graphicssystem raster|opengl|openvg]\n\n", 0, 7);
  1631 
  1653 
  1632         desc("Installation options:\n\n");
  1654         desc("Installation options:\n\n");
  1633 
  1655 
  1634 #if !defined(EVAL)
  1656 #if !defined(EVAL)
  1635 /*
  1657 /*
  1730 #endif
  1752 #endif
  1731         desc(                   "-graphicssystem <sys>",   "Specify which graphicssystem should be used.\n"
  1753         desc(                   "-graphicssystem <sys>",   "Specify which graphicssystem should be used.\n"
  1732                                 "Available values for <sys>:");
  1754                                 "Available values for <sys>:");
  1733         desc("GRAPHICS_SYSTEM", "raster", "",  "  raster - Software rasterizer", ' ');
  1755         desc("GRAPHICS_SYSTEM", "raster", "",  "  raster - Software rasterizer", ' ');
  1734         desc("GRAPHICS_SYSTEM", "opengl", "",  "  opengl - Using OpenGL acceleration, experimental!", ' ');
  1756         desc("GRAPHICS_SYSTEM", "opengl", "",  "  opengl - Using OpenGL acceleration, experimental!", ' ');
  1735         desc("GRAPHICS_SYSTEM", "openvg", "",  "  openvg - Using OpenVG acceleration, experimental!", ' ');
  1757         desc("GRAPHICS_SYSTEM", "openvg", "",  "  openvg - Using OpenVG acceleration, experimental!\n", ' ');
  1736         desc("GRAPHICS_SYSTEM", "runtime", "", "  runtime - Runtime switching of graphics sytems", ' ');
       
  1737 
       
  1738 
  1758 
  1739         desc(                   "-help, -h, -?",        "Display this information.\n");
  1759         desc(                   "-help, -h, -?",        "Display this information.\n");
  1740 
  1760 
  1741 #if !defined(EVAL)
  1761 #if !defined(EVAL)
  1742         // 3rd party stuff options go below here --------------------------------------------------------------------------------
  1762         // 3rd party stuff options go below here --------------------------------------------------------------------------------
  1841         desc("STYLE_WINDOWSCE", "yes", "",              "  windowsce", ' ');
  1861         desc("STYLE_WINDOWSCE", "yes", "",              "  windowsce", ' ');
  1842         desc("STYLE_WINDOWSMOBILE" , "yes", "",         "  windowsmobile", ' ');
  1862         desc("STYLE_WINDOWSMOBILE" , "yes", "",         "  windowsmobile", ' ');
  1843         desc("STYLE_S60" , "yes", "",                   "  s60\n", ' ');
  1863         desc("STYLE_S60" , "yes", "",                   "  s60\n", ' ');
  1844         desc("NATIVE_GESTURES", "no", "-no-native-gestures", "Do not use native gestures on Windows 7.");
  1864         desc("NATIVE_GESTURES", "no", "-no-native-gestures", "Do not use native gestures on Windows 7.");
  1845         desc("NATIVE_GESTURES", "yes", "-native-gestures", "Use native gestures on Windows 7.");
  1865         desc("NATIVE_GESTURES", "yes", "-native-gestures", "Use native gestures on Windows 7.");
       
  1866         desc("MSVC_MP", "no", "-no-mp",                 "Do not use multiple processors for compiling with MSVC");
       
  1867         desc("MSVC_MP", "yes", "-mp",                   "Use multiple processors for compiling with MSVC (-MP)");
  1846 
  1868 
  1847 /*      We do not support -qconfig on Windows yet
  1869 /*      We do not support -qconfig on Windows yet
  1848 
  1870 
  1849         desc(                   "-qconfig <local>",     "Use src/tools/qconfig-local.h rather than the default.\nPossible values for local:");
  1871         desc(                   "-qconfig <local>",     "Use src/tools/qconfig-local.h rather than the default.\nPossible values for local:");
  1850         for (int i=0; i<allConfigs.size(); ++i)
  1872         for (int i=0; i<allConfigs.size(); ++i)
  2142                         ++i;
  2164                         ++i;
  2143                 }
  2165                 }
  2144 
  2166 
  2145                 available = (paths.size() == 0);
  2167                 available = (paths.size() == 0);
  2146                 if (!available) {
  2168                 if (!available) {
  2147                     if (epocRoot.isNull() || epocRoot == "")
  2169                     if (epocRoot.isEmpty())
  2148                         epocRoot = "<empty string>";
  2170                         epocRoot = "<empty string>";
  2149                     cout << endl
  2171                     cout << endl
  2150                          << "The QtMultimedia audio backend will not be built because required" << endl
  2172                          << "The QtMultimedia audio backend will not be built because required" << endl
  2151                          << "support for CMMFDevSound was not found in the SDK." << endl
  2173                          << "support for CMMFDevSound was not found in the SDK." << endl
  2152                          << "The SDK which was examined was located at the following path:" << endl
  2174                          << "The SDK which was examined was located at the following path:" << endl
  2660         qtConfig += "multimedia";
  2682         qtConfig += "multimedia";
  2661         if (dictionary["AUDIO_BACKEND"] == "yes")
  2683         if (dictionary["AUDIO_BACKEND"] == "yes")
  2662             qtConfig += "audio-backend";
  2684             qtConfig += "audio-backend";
  2663     }
  2685     }
  2664 
  2686 
  2665     if (dictionary["WEBKIT"] == "yes")
  2687     if (dictionary["WEBKIT"] == "yes") {
  2666         qtConfig += "webkit";
  2688         // This include takes care of adding "webkit" to QT_CONFIG.
       
  2689         QString src = sourcePath + "/src/3rdparty/webkit/WebKit/qt/qt_webkit_version.pri";
       
  2690         QString dst = buildPath + "/mkspecs/modules/qt_webkit_version.pri";
       
  2691         QFile::remove(dst);
       
  2692         QFile::copy(src, dst);
       
  2693     }
  2667 
  2694 
  2668     if (dictionary["DECLARATIVE"] == "yes") {
  2695     if (dictionary["DECLARATIVE"] == "yes") {
  2669         if (dictionary[ "SCRIPT" ] == "no") {
  2696         if (dictionary[ "SCRIPT" ] == "no") {
  2670             cout << "QtDeclarative was requested, but it can't be built due to QtScript being "
  2697             cout << "QtDeclarative was requested, but it can't be built due to QtScript being "
  2671                     "disabled." << endl;
  2698                     "disabled." << endl;
  2688         << "large"
  2715         << "large"
  2689         << "full";
  2716         << "full";
  2690 
  2717 
  2691     QString set_config = dictionary["QCONFIG"];
  2718     QString set_config = dictionary["QCONFIG"];
  2692     if (possible_configs.contains(set_config)) {
  2719     if (possible_configs.contains(set_config)) {
  2693         foreach(QString cfg, possible_configs) {
  2720         foreach (const QString &cfg, possible_configs) {
  2694             qtConfig += (cfg + "-config");
  2721             qtConfig += (cfg + "-config");
  2695             if (cfg == set_config)
  2722             if (cfg == set_config)
  2696                 break;
  2723                 break;
  2697         }
  2724         }
  2698     }
  2725     }
  2748         else
  2775         else
  2749             qmakeVars += QString("OPENSSL_LIBS    = -lssleay32 -llibeay32");
  2776             qmakeVars += QString("OPENSSL_LIBS    = -lssleay32 -llibeay32");
  2750         }
  2777         }
  2751     if (!psqlLibs.isEmpty())
  2778     if (!psqlLibs.isEmpty())
  2752         qmakeVars += QString("QT_LFLAGS_PSQL=") + psqlLibs.section("=", 1);
  2779         qmakeVars += QString("QT_LFLAGS_PSQL=") + psqlLibs.section("=", 1);
       
  2780 
       
  2781     {
       
  2782         QStringList lflagsTDS;
       
  2783         if (!sybase.isEmpty())
       
  2784             lflagsTDS += QString("-L") + fixSeparators(sybase.section("=", 1) + "/lib");
       
  2785         if (!sybaseLibs.isEmpty())
       
  2786             lflagsTDS += sybaseLibs.section("=", 1);
       
  2787         if (!lflagsTDS.isEmpty())
       
  2788             qmakeVars += QString("QT_LFLAGS_TDS=") + lflagsTDS.join(" ");
       
  2789     }
       
  2790 
  2753     if (!qmakeSql.isEmpty())
  2791     if (!qmakeSql.isEmpty())
  2754         qmakeVars += QString("sql-drivers    += ") + qmakeSql.join(" ");
  2792         qmakeVars += QString("sql-drivers    += ") + qmakeSql.join(" ");
  2755     if (!qmakeSqlPlugins.isEmpty())
  2793     if (!qmakeSqlPlugins.isEmpty())
  2756         qmakeVars += QString("sql-plugins    += ") + qmakeSqlPlugins.join(" ");
  2794         qmakeVars += QString("sql-plugins    += ") + qmakeSqlPlugins.join(" ");
  2757     if (!qmakeStyles.isEmpty())
  2795     if (!qmakeStyles.isEmpty())
  2799     if (cacheFile.open(QFile::WriteOnly | QFile::Text)) { // Truncates any existing file.
  2837     if (cacheFile.open(QFile::WriteOnly | QFile::Text)) { // Truncates any existing file.
  2800         QTextStream cacheStream(&cacheFile);
  2838         QTextStream cacheStream(&cacheFile);
  2801         for (QStringList::Iterator var = qmakeVars.begin(); var != qmakeVars.end(); ++var) {
  2839         for (QStringList::Iterator var = qmakeVars.begin(); var != qmakeVars.end(); ++var) {
  2802             cacheStream << (*var) << endl;
  2840             cacheStream << (*var) << endl;
  2803         }
  2841         }
  2804         cacheStream << "CONFIG         += " << qmakeConfig.join(" ") << " incremental create_prl link_prl depend_includepath QTDIR_build" << endl;
  2842         cacheStream << "CONFIG         += " << qmakeConfig.join(" ") << " incremental msvc_mp create_prl link_prl depend_includepath QTDIR_build" << endl;
  2805 
  2843 
  2806         QStringList buildParts;
  2844         QStringList buildParts;
  2807         buildParts << "libs" << "tools" << "examples" << "demos" << "docs" << "translations";
  2845         buildParts << "libs" << "tools" << "examples" << "demos" << "docs" << "translations";
  2808         foreach(QString item, disabledBuildParts) {
  2846         foreach (const QString &item, disabledBuildParts) {
  2809             buildParts.removeAll(item);
  2847             buildParts.removeAll(item);
  2810         }
  2848         }
  2811         cacheStream << "QT_BUILD_PARTS  = " << buildParts.join(" ") << endl;
  2849         cacheStream << "QT_BUILD_PARTS  = " << buildParts.join(" ") << endl;
  2812 
  2850 
  2813         QString targetSpec = dictionary.contains("XQMAKESPEC") ? dictionary[ "XQMAKESPEC" ] : dictionary[ "QMAKESPEC" ];
  2851         QString targetSpec = dictionary.contains("XQMAKESPEC") ? dictionary[ "XQMAKESPEC" ] : dictionary[ "QMAKESPEC" ];
  2862         else
  2900         else
  2863             configStream << " static";
  2901             configStream << " static";
  2864 
  2902 
  2865         if (dictionary[ "LTCG" ] == "yes")
  2903         if (dictionary[ "LTCG" ] == "yes")
  2866             configStream << " ltcg";
  2904             configStream << " ltcg";
       
  2905         if (dictionary[ "MSVC_MP" ] == "yes")
       
  2906             configStream << " msvc_mp";
  2867         if (dictionary[ "STL" ] == "yes")
  2907         if (dictionary[ "STL" ] == "yes")
  2868             configStream << " stl";
  2908             configStream << " stl";
  2869         if (dictionary[ "EXCEPTIONS" ] == "yes")
  2909         if (dictionary[ "EXCEPTIONS" ] == "yes")
  2870             configStream << " exceptions";
  2910             configStream << " exceptions";
  2871         if (dictionary[ "EXCEPTIONS" ] == "no")
  2911         if (dictionary[ "EXCEPTIONS" ] == "no")
  2926         }
  2966         }
  2927         if (!dictionary["QT_NAMESPACE"].isEmpty()) {
  2967         if (!dictionary["QT_NAMESPACE"].isEmpty()) {
  2928             configStream << "#namespaces" << endl << "QT_NAMESPACE = " << dictionary["QT_NAMESPACE"] << endl;
  2968             configStream << "#namespaces" << endl << "QT_NAMESPACE = " << dictionary["QT_NAMESPACE"] << endl;
  2929         }
  2969         }
  2930 
  2970 
  2931         configStream << "#modules" << endl << "for(mod,$$list($$files($$[QMAKE_MKSPECS]/modules/qt_*.pri))):include($$mod)" << endl;
       
  2932 
       
  2933         configStream.flush();
  2971         configStream.flush();
  2934         configFile.close();
  2972         configFile.close();
  2935     }
  2973     }
  2936 }
  2974 }
  2937 #endif
  2975 #endif
  3026         else
  3064         else
  3027             tmpStream << "#define Q_BYTE_ORDER Q_LITTLE_ENDIAN" << endl;
  3065             tmpStream << "#define Q_BYTE_ORDER Q_LITTLE_ENDIAN" << endl;
  3028 
  3066 
  3029         tmpStream << endl << "// Compile time features" << endl;
  3067         tmpStream << endl << "// Compile time features" << endl;
  3030         tmpStream << "#define QT_ARCH_" << dictionary["ARCHITECTURE"].toUpper() << endl;
  3068         tmpStream << "#define QT_ARCH_" << dictionary["ARCHITECTURE"].toUpper() << endl;
       
  3069         if (dictionary["GRAPHICS_SYSTEM"] == "runtime" && dictionary["RUNTIME_SYSTEM"] != "runtime")
       
  3070             tmpStream << "#define QT_DEFAULT_RUNTIME_SYSTEM \"" << dictionary["RUNTIME_SYSTEM"] << "\"" << endl;
       
  3071 
  3031         QStringList qconfigList;
  3072         QStringList qconfigList;
  3032         if (dictionary["STL"] == "no")                qconfigList += "QT_NO_STL";
  3073         if (dictionary["STL"] == "no")                qconfigList += "QT_NO_STL";
  3033         if (dictionary["STYLE_WINDOWS"] != "yes")     qconfigList += "QT_NO_STYLE_WINDOWS";
  3074         if (dictionary["STYLE_WINDOWS"] != "yes")     qconfigList += "QT_NO_STYLE_WINDOWS";
  3034         if (dictionary["STYLE_PLASTIQUE"] != "yes")   qconfigList += "QT_NO_STYLE_PLASTIQUE";
  3075         if (dictionary["STYLE_PLASTIQUE"] != "yes")   qconfigList += "QT_NO_STYLE_PLASTIQUE";
  3035         if (dictionary["STYLE_CLEANLOOKS"] != "yes")   qconfigList += "QT_NO_STYLE_CLEANLOOKS";
  3076         if (dictionary["STYLE_CLEANLOOKS"] != "yes")   qconfigList += "QT_NO_STYLE_CLEANLOOKS";
  3115         {
  3156         {
  3116             // Check for keyboard, mouse, gfx.
  3157             // Check for keyboard, mouse, gfx.
  3117             QStringList kbdDrivers = dictionary["KBD_DRIVERS"].split(" ");;
  3158             QStringList kbdDrivers = dictionary["KBD_DRIVERS"].split(" ");;
  3118             QStringList allKbdDrivers;
  3159             QStringList allKbdDrivers;
  3119             allKbdDrivers<<"tty"<<"usb"<<"sl5000"<<"yopy"<<"vr41xx"<<"qvfb"<<"um";
  3160             allKbdDrivers<<"tty"<<"usb"<<"sl5000"<<"yopy"<<"vr41xx"<<"qvfb"<<"um";
  3120             foreach(QString kbd, allKbdDrivers) {
  3161             foreach (const QString &kbd, allKbdDrivers) {
  3121                 if (!kbdDrivers.contains(kbd))
  3162                 if (!kbdDrivers.contains(kbd))
  3122                     tmpStream<<"#define QT_NO_QWS_KBD_"<<kbd.toUpper()<<endl;
  3163                     tmpStream<<"#define QT_NO_QWS_KBD_"<<kbd.toUpper()<<endl;
  3123             }
  3164             }
  3124 
  3165 
  3125             QStringList mouseDrivers = dictionary["MOUSE_DRIVERS"].split(" ");
  3166             QStringList mouseDrivers = dictionary["MOUSE_DRIVERS"].split(" ");
  3126             QStringList allMouseDrivers;
  3167             QStringList allMouseDrivers;
  3127             allMouseDrivers << "pc"<<"bus"<<"linuxtp"<<"yopy"<<"vr41xx"<<"tslib"<<"qvfb";
  3168             allMouseDrivers << "pc"<<"bus"<<"linuxtp"<<"yopy"<<"vr41xx"<<"tslib"<<"qvfb";
  3128             foreach(QString mouse, allMouseDrivers) {
  3169             foreach (const QString &mouse, allMouseDrivers) {
  3129                 if (!mouseDrivers.contains(mouse))
  3170                 if (!mouseDrivers.contains(mouse))
  3130                     tmpStream<<"#define QT_NO_QWS_MOUSE_"<<mouse.toUpper()<<endl;
  3171                     tmpStream<<"#define QT_NO_QWS_MOUSE_"<<mouse.toUpper()<<endl;
  3131             }
  3172             }
  3132 
  3173 
  3133             QStringList gfxDrivers = dictionary["GFX_DRIVERS"].split(" ");
  3174             QStringList gfxDrivers = dictionary["GFX_DRIVERS"].split(" ");
  3134             QStringList allGfxDrivers;
  3175             QStringList allGfxDrivers;
  3135             allGfxDrivers<<"linuxfb"<<"transformed"<<"qvfb"<<"vnc"<<"multiscreen"<<"ahi";
  3176             allGfxDrivers<<"linuxfb"<<"transformed"<<"qvfb"<<"vnc"<<"multiscreen"<<"ahi";
  3136             foreach(QString gfx, allGfxDrivers) {
  3177             foreach (const QString &gfx, allGfxDrivers) {
  3137                 if (!gfxDrivers.contains(gfx))
  3178                 if (!gfxDrivers.contains(gfx))
  3138                     tmpStream<<"#define QT_NO_QWS_"<<gfx.toUpper()<<endl;
  3179                     tmpStream<<"#define QT_NO_QWS_"<<gfx.toUpper()<<endl;
  3139             }
  3180             }
  3140 
  3181 
  3141             tmpStream<<"#define Q_WS_QWS"<<endl;
  3182             tmpStream<<"#define Q_WS_QWS"<<endl;
  3142 
  3183 
  3143             QStringList depths = dictionary[ "QT_QWS_DEPTH" ].split(" ");
  3184             QStringList depths = dictionary[ "QT_QWS_DEPTH" ].split(" ");
  3144             foreach(QString depth, depths)
  3185             foreach (const QString &depth, depths)
  3145               tmpStream<<"#define QT_QWS_DEPTH_"+depth<<endl;
  3186               tmpStream<<"#define QT_QWS_DEPTH_"+depth<<endl;
  3146         }
  3187         }
  3147 
  3188 
  3148         if (dictionary[ "QT_CUPS" ] == "no")
  3189         if (dictionary[ "QT_CUPS" ] == "no")
  3149           tmpStream<<"#define QT_NO_CUPS"<<endl;
  3190           tmpStream<<"#define QT_NO_CUPS"<<endl;
  3588         QString toolSourcePath = sourcePath + "/" + hostToolsDirs.at(i);
  3629         QString toolSourcePath = sourcePath + "/" + hostToolsDirs.at(i);
  3589 
  3630 
  3590         // generate Makefile
  3631         // generate Makefile
  3591         QStringList args;
  3632         QStringList args;
  3592         args << QDir::toNativeSeparators(buildPath + "/bin/qmake");
  3633         args << QDir::toNativeSeparators(buildPath + "/bin/qmake");
  3593         args << "-spec" << dictionary["QMAKESPEC"] << "-r";
  3634         // override .qmake.cache because we are not cross-building these.
       
  3635         // we need a full path so that a build with -prefix will still find it.
       
  3636         args << "-spec" << QDir::toNativeSeparators(buildPath + "/mkspecs/" + dictionary["QMAKESPEC"]);
       
  3637         args << "-r";
  3594         args << "-o" << QDir::toNativeSeparators(toolBuildPath + "/Makefile");
  3638         args << "-o" << QDir::toNativeSeparators(toolBuildPath + "/Makefile");
  3595 
  3639 
  3596         QDir().mkpath(toolBuildPath);
  3640         QDir().mkpath(toolBuildPath);
  3597         QDir::setCurrent(toolSourcePath);
  3641         QDir::setCurrent(toolSourcePath);
  3598         int exitCode = Environment::execute(args, QStringList(), QStringList());
  3642         int exitCode = Environment::execute(args, QStringList(), QStringList());
  3726                     printf("Generating Visual Studio project files...\n");
  3770                     printf("Generating Visual Studio project files...\n");
  3727                 } else {
  3771                 } else {
  3728                     printf("Generating Makefiles...\n");
  3772                     printf("Generating Makefiles...\n");
  3729                     generate = false; // Now Makefiles will be done
  3773                     generate = false; // Now Makefiles will be done
  3730                 }
  3774                 }
  3731                 args << "-spec";
  3775                 // don't pass -spec - .qmake.cache has it already
  3732                 args << spec;
       
  3733                 args << "-r";
  3776                 args << "-r";
  3734                 args << (sourcePath + "/projects.pro");
  3777                 args << (sourcePath + "/projects.pro");
  3735                 args << "-o";
  3778                 args << "-o";
  3736                 args << buildPath;
  3779                 args << buildPath;
  3737                 if (!dictionary[ "QMAKEADDITIONALARGS" ].isEmpty())
  3780                 if (!dictionary[ "QMAKEADDITIONALARGS" ].isEmpty())