tools/configure/configureapp.cpp
changeset 3 41300fa6a67c
parent 0 1918ee327afb
child 4 3b1da2848fc7
child 7 f7bc934e204c
child 18 2f34d5167611
equal deleted inserted replaced
2:56cd8111b7f7 3:41300fa6a67c
   245     dictionary[ "SCRIPTTOOLS" ]     = "auto";
   245     dictionary[ "SCRIPTTOOLS" ]     = "auto";
   246     dictionary[ "XMLPATTERNS" ]     = "auto";
   246     dictionary[ "XMLPATTERNS" ]     = "auto";
   247     dictionary[ "PHONON" ]          = "auto";
   247     dictionary[ "PHONON" ]          = "auto";
   248     dictionary[ "PHONON_BACKEND" ]  = "yes";
   248     dictionary[ "PHONON_BACKEND" ]  = "yes";
   249     dictionary[ "MULTIMEDIA" ]      = "yes";
   249     dictionary[ "MULTIMEDIA" ]      = "yes";
       
   250     dictionary[ "AUDIO_BACKEND" ]   = "yes";
   250     dictionary[ "DIRECTSHOW" ]      = "no";
   251     dictionary[ "DIRECTSHOW" ]      = "no";
   251     dictionary[ "WEBKIT" ]          = "auto";
   252     dictionary[ "WEBKIT" ]          = "auto";
       
   253     dictionary[ "DECLARATIVE" ]     = "auto";
   252     dictionary[ "PLUGIN_MANIFESTS" ] = "yes";
   254     dictionary[ "PLUGIN_MANIFESTS" ] = "yes";
   253 
   255 
   254     QString version;
   256     QString version;
   255     QFile qglobal_h(sourcePath + "/src/corelib/global/qglobal.h");
   257     QFile qglobal_h(sourcePath + "/src/corelib/global/qglobal.h");
   256     if (qglobal_h.open(QFile::ReadOnly)) {
   258     if (qglobal_h.open(QFile::ReadOnly)) {
   348     }
   350     }
   349     dictionary[ "QMAKESPEC" ] = tmp;
   351     dictionary[ "QMAKESPEC" ] = tmp;
   350 
   352 
   351     dictionary[ "INCREDIBUILD_XGE" ] = "auto";
   353     dictionary[ "INCREDIBUILD_XGE" ] = "auto";
   352     dictionary[ "LTCG" ]            = "no";
   354     dictionary[ "LTCG" ]            = "no";
       
   355     dictionary[ "NATIVE_GESTURES" ] = "yes";
   353 }
   356 }
   354 
   357 
   355 Configure::~Configure()
   358 Configure::~Configure()
   356 {
   359 {
   357     for (int i=0; i<3; ++i) {
   360     for (int i=0; i<3; ++i) {
   793 
   796 
   794         else if( configCmdLine.at(i) == "-no-incredibuild-xge" )
   797         else if( configCmdLine.at(i) == "-no-incredibuild-xge" )
   795             dictionary[ "INCREDIBUILD_XGE" ] = "no";
   798             dictionary[ "INCREDIBUILD_XGE" ] = "no";
   796         else if( configCmdLine.at(i) == "-incredibuild-xge" )
   799         else if( configCmdLine.at(i) == "-incredibuild-xge" )
   797             dictionary[ "INCREDIBUILD_XGE" ] = "yes";
   800             dictionary[ "INCREDIBUILD_XGE" ] = "yes";
       
   801         else if( configCmdLine.at(i) == "-native-gestures" )
       
   802             dictionary[ "NATIVE_GESTURES" ] = "yes";
       
   803         else if( configCmdLine.at(i) == "-no-native-gestures" )
       
   804             dictionary[ "NATIVE_GESTURES" ] = "no";
   798 #if !defined(EVAL)
   805 #if !defined(EVAL)
   799         // Others ---------------------------------------------------
   806         // Others ---------------------------------------------------
   800         else if (configCmdLine.at(i) == "-fpu" )
   807         else if (configCmdLine.at(i) == "-fpu" )
   801         {
   808         {
   802             ++i;
   809             ++i;
   889             dictionary[ "XMLPATTERNS" ] = "yes";
   896             dictionary[ "XMLPATTERNS" ] = "yes";
   890         } else if( configCmdLine.at(i) == "-no-multimedia" ) {
   897         } else if( configCmdLine.at(i) == "-no-multimedia" ) {
   891             dictionary[ "MULTIMEDIA" ] = "no";
   898             dictionary[ "MULTIMEDIA" ] = "no";
   892         } else if( configCmdLine.at(i) == "-multimedia" ) {
   899         } else if( configCmdLine.at(i) == "-multimedia" ) {
   893             dictionary[ "MULTIMEDIA" ] = "yes";
   900             dictionary[ "MULTIMEDIA" ] = "yes";
       
   901         } else if( configCmdLine.at(i) == "-audio-backend" ) {
       
   902             dictionary[ "AUDIO_BACKEND" ] = "yes";
       
   903         } else if( configCmdLine.at(i) == "-no-audio-backend" ) {
       
   904             dictionary[ "AUDIO_BACKEND" ] = "no";
   894         } else if( configCmdLine.at(i) == "-no-phonon" ) {
   905         } else if( configCmdLine.at(i) == "-no-phonon" ) {
   895             dictionary[ "PHONON" ] = "no";
   906             dictionary[ "PHONON" ] = "no";
   896         } else if( configCmdLine.at(i) == "-phonon" ) {
   907         } else if( configCmdLine.at(i) == "-phonon" ) {
   897             dictionary[ "PHONON" ] = "yes";
   908             dictionary[ "PHONON" ] = "yes";
   898         } else if( configCmdLine.at(i) == "-no-phonon-backend" ) {
   909         } else if( configCmdLine.at(i) == "-no-phonon-backend" ) {
   903             dictionary[ "DIRECTSHOW" ] = "yes";
   914             dictionary[ "DIRECTSHOW" ] = "yes";
   904         } else if( configCmdLine.at(i) == "-no-webkit" ) {
   915         } else if( configCmdLine.at(i) == "-no-webkit" ) {
   905             dictionary[ "WEBKIT" ] = "no";
   916             dictionary[ "WEBKIT" ] = "no";
   906         } else if( configCmdLine.at(i) == "-webkit" ) {
   917         } else if( configCmdLine.at(i) == "-webkit" ) {
   907             dictionary[ "WEBKIT" ] = "yes";
   918             dictionary[ "WEBKIT" ] = "yes";
       
   919         } else if( configCmdLine.at(i) == "-no-declarative" ) {
       
   920             dictionary[ "DECLARATIVE" ] = "no";
       
   921         } else if( configCmdLine.at(i) == "-declarative" ) {
       
   922             dictionary[ "DECLARATIVE" ] = "yes";
   908         } else if( configCmdLine.at(i) == "-no-plugin-manifests" ) {
   923         } else if( configCmdLine.at(i) == "-no-plugin-manifests" ) {
   909             dictionary[ "PLUGIN_MANIFESTS" ] = "no";
   924             dictionary[ "PLUGIN_MANIFESTS" ] = "no";
   910         } else if( configCmdLine.at(i) == "-plugin-manifests" ) {
   925         } else if( configCmdLine.at(i) == "-plugin-manifests" ) {
   911             dictionary[ "PLUGIN_MANIFESTS" ] = "yes";
   926             dictionary[ "PLUGIN_MANIFESTS" ] = "yes";
   912         }
   927         }
  1413         dictionary[ "IWMMXT" ]              = "no";
  1428         dictionary[ "IWMMXT" ]              = "no";
  1414         dictionary[ "CE_CRT" ]              = "yes";
  1429         dictionary[ "CE_CRT" ]              = "yes";
  1415         dictionary[ "WEBKIT" ]              = "no";
  1430         dictionary[ "WEBKIT" ]              = "no";
  1416         dictionary[ "PHONON" ]              = "yes";
  1431         dictionary[ "PHONON" ]              = "yes";
  1417         dictionary[ "DIRECTSHOW" ]          = "no";
  1432         dictionary[ "DIRECTSHOW" ]          = "no";
  1418         dictionary[ "LTCG" ]                = "yes";
       
  1419         // We only apply MMX/IWMMXT for mkspecs we know they work
  1433         // We only apply MMX/IWMMXT for mkspecs we know they work
  1420         if (dictionary[ "XQMAKESPEC" ].startsWith("wincewm")) {
  1434         if (dictionary[ "XQMAKESPEC" ].startsWith("wincewm")) {
  1421             dictionary[ "MMX" ]    = "yes";
  1435             dictionary[ "MMX" ]    = "yes";
  1422             dictionary[ "IWMMXT" ] = "yes";
  1436             dictionary[ "IWMMXT" ] = "yes";
  1423             dictionary[ "DIRECTSHOW" ] = "yes";
  1437             dictionary[ "DIRECTSHOW" ] = "yes";
  1449         dictionary[ "SSE2" ]                = "no";
  1463         dictionary[ "SSE2" ]                = "no";
  1450         dictionary[ "MMX" ]                 = "no";
  1464         dictionary[ "MMX" ]                 = "no";
  1451         dictionary[ "IWMMXT" ]              = "no";
  1465         dictionary[ "IWMMXT" ]              = "no";
  1452         dictionary[ "CE_CRT" ]              = "no";
  1466         dictionary[ "CE_CRT" ]              = "no";
  1453         dictionary[ "DIRECT3D" ]            = "no";
  1467         dictionary[ "DIRECT3D" ]            = "no";
  1454         dictionary[ "WEBKIT" ]              = "no";
  1468         dictionary[ "WEBKIT" ]              = "yes";
  1455         dictionary[ "ASSISTANT_WEBKIT" ]    = "no";
  1469         dictionary[ "ASSISTANT_WEBKIT" ]    = "no";
  1456         dictionary[ "PHONON" ]              = "yes";
  1470         dictionary[ "PHONON" ]              = "yes";
  1457         dictionary[ "XMLPATTERNS" ]         = "no";
  1471         dictionary[ "XMLPATTERNS" ]         = "yes";
  1458         dictionary[ "QT_GLIB" ]             = "no";
  1472         dictionary[ "QT_GLIB" ]             = "no";
  1459         dictionary[ "S60" ]                 = "yes";
  1473         dictionary[ "S60" ]                 = "yes";
  1460         // iconv makes makes apps start and run ridiculously slowly in symbian emulator (HW not tested)
  1474         // iconv makes makes apps start and run ridiculously slowly in symbian emulator (HW not tested)
  1461         // iconv_open seems to return -1 always, so something is probably missing from the platform.
  1475         // iconv_open seems to return -1 always, so something is probably missing from the platform.
  1462         dictionary[ "QT_ICONV" ]            = "no";
  1476         dictionary[ "QT_ICONV" ]            = "no";
  1559                     "[-no-mmx] [-3dnow] [-no-3dnow] [-sse] [-no-sse] [-sse2] [-no-sse2]\n"
  1573                     "[-no-mmx] [-3dnow] [-no-3dnow] [-sse] [-no-sse] [-sse2] [-no-sse2]\n"
  1560                     "[-no-iwmmxt] [-iwmmxt] [-openssl] [-openssl-linked]\n"
  1574                     "[-no-iwmmxt] [-iwmmxt] [-openssl] [-openssl-linked]\n"
  1561                     "[-no-openssl] [-no-dbus] [-dbus] [-dbus-linked] [-platform <spec>]\n"
  1575                     "[-no-openssl] [-no-dbus] [-dbus] [-dbus-linked] [-platform <spec>]\n"
  1562                     "[-qtnamespace <namespace>] [-qtlibinfix <infix>] [-no-phonon]\n"
  1576                     "[-qtnamespace <namespace>] [-qtlibinfix <infix>] [-no-phonon]\n"
  1563                     "[-phonon] [-no-phonon-backend] [-phonon-backend]\n"
  1577                     "[-phonon] [-no-phonon-backend] [-phonon-backend]\n"
  1564                     "[-no-multimedia] [-multimedia] [-no-webkit] [-webkit]\n"
  1578                     "[-no-multimedia] [-multimedia] [-no-audio-backend] [-audio-backend]\n"
  1565                     "[-no-script] [-script] [-no-scripttools] [-scripttools]\n"
  1579                     "[-no-script] [-script] [-no-scripttools] [-scripttools]\n"
  1566                     "[-graphicssystem raster|opengl|openvg]\n\n", 0, 7);
  1580                     "[-no-webkit] [-webkit] [-graphicssystem raster|opengl|openvg]\n\n", 0, 7);
  1567 
  1581 
  1568         desc("Installation options:\n\n");
  1582         desc("Installation options:\n\n");
  1569 
  1583 
  1570 #if !defined(EVAL)
  1584 #if !defined(EVAL)
  1571 /*
  1585 /*
  1741         desc("PHONON", "yes",   "-phonon",              "Compile the Phonon module (Phonon is built if a decent C++ compiler is used.)");
  1755         desc("PHONON", "yes",   "-phonon",              "Compile the Phonon module (Phonon is built if a decent C++ compiler is used.)");
  1742         desc("PHONON_BACKEND","no", "-no-phonon-backend","Do not compile the platform-specific Phonon backend-plugin");
  1756         desc("PHONON_BACKEND","no", "-no-phonon-backend","Do not compile the platform-specific Phonon backend-plugin");
  1743         desc("PHONON_BACKEND","yes","-phonon-backend",  "Compile in the platform-specific Phonon backend-plugin");
  1757         desc("PHONON_BACKEND","yes","-phonon-backend",  "Compile in the platform-specific Phonon backend-plugin");
  1744         desc("MULTIMEDIA", "no", "-no-multimedia",      "Do not compile the multimedia module");
  1758         desc("MULTIMEDIA", "no", "-no-multimedia",      "Do not compile the multimedia module");
  1745         desc("MULTIMEDIA", "yes","-multimedia",         "Compile in multimedia module");
  1759         desc("MULTIMEDIA", "yes","-multimedia",         "Compile in multimedia module");
       
  1760         desc("AUDIO_BACKEND", "no","-no-audio-backend", "Do not compile in the platform audio backend into QtMultimedia");
       
  1761         desc("AUDIO_BACKEND", "yes","-audio-backend",   "Compile in the platform audio backend into QtMultimedia");
  1746         desc("WEBKIT", "no",    "-no-webkit",           "Do not compile in the WebKit module");
  1762         desc("WEBKIT", "no",    "-no-webkit",           "Do not compile in the WebKit module");
  1747         desc("WEBKIT", "yes",   "-webkit",              "Compile in the WebKit module (WebKit is built if a decent C++ compiler is used.)");
  1763         desc("WEBKIT", "yes",   "-webkit",              "Compile in the WebKit module (WebKit is built if a decent C++ compiler is used.)");
  1748         desc("SCRIPT", "no",    "-no-script",           "Do not build the QtScript module.");
  1764         desc("SCRIPT", "no",    "-no-script",           "Do not build the QtScript module.");
  1749         desc("SCRIPT", "yes",   "-script",              "Build the QtScript module.");
  1765         desc("SCRIPT", "yes",   "-script",              "Build the QtScript module.");
  1750         desc("SCRIPTTOOLS", "no", "-no-scripttools",    "Do not build the QtScriptTools module.");
  1766         desc("SCRIPTTOOLS", "no", "-no-scripttools",    "Do not build the QtScriptTools module.");
  1751         desc("SCRIPTTOOLS", "yes", "-scripttools",      "Build the QtScriptTools module.");
  1767         desc("SCRIPTTOOLS", "yes", "-scripttools",      "Build the QtScriptTools module.");
       
  1768         desc("DECLARATIVE", "no",    "-no-declarative", "Do not build the declarative module");
       
  1769         desc("DECLARATIVE", "yes",   "-declarative",    "Build the declarative module");
  1752 
  1770 
  1753         desc(                   "-arch <arch>",         "Specify an architecture.\n"
  1771         desc(                   "-arch <arch>",         "Specify an architecture.\n"
  1754                                                         "Available values for <arch>:");
  1772                                                         "Available values for <arch>:");
  1755         desc("ARCHITECTURE","windows",       "",        "  windows", ' ');
  1773         desc("ARCHITECTURE","windows",       "",        "  windows", ' ');
  1756         desc("ARCHITECTURE","windowsce",     "",        "  windowsce", ' ');
  1774         desc("ARCHITECTURE","windowsce",     "",        "  windowsce", ' ');
  1769         desc("STYLE_MOTIF", "yes", "",                  "  motif", ' ');
  1787         desc("STYLE_MOTIF", "yes", "",                  "  motif", ' ');
  1770         desc("STYLE_CDE", "yes", "",                    "  cde", ' ');
  1788         desc("STYLE_CDE", "yes", "",                    "  cde", ' ');
  1771         desc("STYLE_WINDOWSCE", "yes", "",              "  windowsce", ' ');
  1789         desc("STYLE_WINDOWSCE", "yes", "",              "  windowsce", ' ');
  1772         desc("STYLE_WINDOWSMOBILE" , "yes", "",         "  windowsmobile", ' ');
  1790         desc("STYLE_WINDOWSMOBILE" , "yes", "",         "  windowsmobile", ' ');
  1773         desc("STYLE_S60" , "yes", "",                   "  s60\n", ' ');
  1791         desc("STYLE_S60" , "yes", "",                   "  s60\n", ' ');
       
  1792         desc("NATIVE_GESTURES", "no", "-no-native-gestures", "Do not use native gestures on Windows 7.");
       
  1793         desc("NATIVE_GESTURES", "yes", "-native-gestures", "Use native gestures on Windows 7.");
  1774 
  1794 
  1775 /*      We do not support -qconfig on Windows yet
  1795 /*      We do not support -qconfig on Windows yet
  1776 
  1796 
  1777         desc(                   "-qconfig <local>",     "Use src/tools/qconfig-local.h rather than the default.\nPossible values for local:");
  1797         desc(                   "-qconfig <local>",     "Use src/tools/qconfig-local.h rather than the default.\nPossible values for local:");
  1778         for (int i=0; i<allConfigs.size(); ++i)
  1798         for (int i=0; i<allConfigs.size(); ++i)
  2033         }
  2053         }
  2034     } else if (part == "MULTIMEDIA" || part == "SCRIPT" || part == "SCRIPTTOOLS") {
  2054     } else if (part == "MULTIMEDIA" || part == "SCRIPT" || part == "SCRIPTTOOLS") {
  2035         available = true;
  2055         available = true;
  2036     } else if (part == "WEBKIT") {
  2056     } else if (part == "WEBKIT") {
  2037         available = (dictionary.value("QMAKESPEC") == "win32-msvc2005") || (dictionary.value("QMAKESPEC") == "win32-msvc2008") || (dictionary.value("QMAKESPEC") == "win32-g++");
  2057         available = (dictionary.value("QMAKESPEC") == "win32-msvc2005") || (dictionary.value("QMAKESPEC") == "win32-msvc2008") || (dictionary.value("QMAKESPEC") == "win32-g++");
       
  2058     } else if (part == "DECLARATIVE") {
       
  2059         available = QFile::exists(sourcePath + "/src/declarative/qml/qmlcomponent.h");
  2038     }
  2060     }
  2039 
  2061 
  2040     return available;
  2062     return available;
  2041 }
  2063 }
  2042 
  2064 
  2119         dictionary["XMLPATTERNS"] = checkAvailability("XMLPATTERNS") ? "yes" : "no";
  2141         dictionary["XMLPATTERNS"] = checkAvailability("XMLPATTERNS") ? "yes" : "no";
  2120     if (dictionary["PHONON"] == "auto")
  2142     if (dictionary["PHONON"] == "auto")
  2121         dictionary["PHONON"] = checkAvailability("PHONON") ? "yes" : "no";
  2143         dictionary["PHONON"] = checkAvailability("PHONON") ? "yes" : "no";
  2122     if (dictionary["WEBKIT"] == "auto")
  2144     if (dictionary["WEBKIT"] == "auto")
  2123         dictionary["WEBKIT"] = checkAvailability("WEBKIT") ? "yes" : "no";
  2145         dictionary["WEBKIT"] = checkAvailability("WEBKIT") ? "yes" : "no";
       
  2146     if (dictionary["DECLARATIVE"] == "auto")
       
  2147         dictionary["DECLARATIVE"] = checkAvailability("DECLARATIVE") ? "yes" : "no";
  2124 
  2148 
  2125     // Qt/WinCE remote test application
  2149     // Qt/WinCE remote test application
  2126     if (dictionary["CETEST"] == "auto")
  2150     if (dictionary["CETEST"] == "auto")
  2127         dictionary["CETEST"] = checkAvailability("CETEST") ? "yes" : "no";
  2151         dictionary["CETEST"] = checkAvailability("CETEST") ? "yes" : "no";
  2128 
  2152 
  2439     if (dictionary[ "OPENGL" ] == "yes")
  2463     if (dictionary[ "OPENGL" ] == "yes")
  2440         qtConfig += "opengl";
  2464         qtConfig += "opengl";
  2441 
  2465 
  2442     if ( dictionary["OPENGL_ES_CM"] == "yes" ) {
  2466     if ( dictionary["OPENGL_ES_CM"] == "yes" ) {
  2443         qtConfig += "opengles1";
  2467         qtConfig += "opengles1";
       
  2468         qtConfig += "egl";
  2444     }
  2469     }
  2445 
  2470 
  2446     if ( dictionary["OPENGL_ES_2"] == "yes" ) {
  2471     if ( dictionary["OPENGL_ES_2"] == "yes" ) {
  2447         qtConfig += "opengles2";
  2472         qtConfig += "opengles2";
       
  2473         qtConfig += "egl";
  2448     }
  2474     }
  2449 
  2475 
  2450     if ( dictionary["OPENGL_ES_CL"] == "yes" ) {
  2476     if ( dictionary["OPENGL_ES_CL"] == "yes" ) {
  2451         qtConfig += "opengles1cl";
  2477         qtConfig += "opengles1cl";
       
  2478         qtConfig += "egl";
  2452     }
  2479     }
  2453 
  2480 
  2454     if ( dictionary["OPENVG"] == "yes" ) {
  2481     if ( dictionary["OPENVG"] == "yes" ) {
  2455         qtConfig += "openvg";
  2482         qtConfig += "openvg";
  2456         qtConfig += "egl";
  2483         qtConfig += "egl";
  2505     if (dictionary["MULTIMEDIA"] == "yes")
  2532     if (dictionary["MULTIMEDIA"] == "yes")
  2506         qtConfig += "multimedia";
  2533         qtConfig += "multimedia";
  2507 
  2534 
  2508     if (dictionary["WEBKIT"] == "yes")
  2535     if (dictionary["WEBKIT"] == "yes")
  2509         qtConfig += "webkit";
  2536         qtConfig += "webkit";
       
  2537 
       
  2538     if (dictionary["DECLARATIVE"] == "yes")
       
  2539         qtConfig += "declarative";
       
  2540 
       
  2541     if( dictionary[ "NATIVE_GESTURES" ] == "yes" )
       
  2542         qtConfig += "native-gestures";
  2510 
  2543 
  2511     // We currently have no switch for QtSvg, so add it unconditionally.
  2544     // We currently have no switch for QtSvg, so add it unconditionally.
  2512     qtConfig += "svg";
  2545     qtConfig += "svg";
  2513 
  2546 
  2514     // Add config levels --------------------------------------------
  2547     // Add config levels --------------------------------------------
  2570     if (!qmakeIncludes.isEmpty())
  2603     if (!qmakeIncludes.isEmpty())
  2571         qmakeVars += QString("INCLUDEPATH    += ") + qmakeIncludes.join( " " );
  2604         qmakeVars += QString("INCLUDEPATH    += ") + qmakeIncludes.join( " " );
  2572     if (!opensslLibs.isEmpty())
  2605     if (!opensslLibs.isEmpty())
  2573         qmakeVars += opensslLibs;
  2606         qmakeVars += opensslLibs;
  2574     else if (dictionary[ "OPENSSL" ] == "linked") {
  2607     else if (dictionary[ "OPENSSL" ] == "linked") {
  2575     	if(dictionary[ "XQMAKESPEC" ].startsWith("symbian") )
  2608     	if(dictionary.contains("XQMAKESPEC") && dictionary[ "XQMAKESPEC" ].startsWith("symbian") )
  2576             qmakeVars += QString("OPENSSL_LIBS    = -llibssl -llibcrypto");
  2609             qmakeVars += QString("OPENSSL_LIBS    = -llibssl -llibcrypto");
  2577         else
  2610         else
  2578             qmakeVars += QString("OPENSSL_LIBS    = -lssleay32 -llibeay32");
  2611             qmakeVars += QString("OPENSSL_LIBS    = -lssleay32 -llibeay32");
  2579         }
  2612         }
  2580     if (!qmakeSql.isEmpty())
  2613     if (!qmakeSql.isEmpty())
  2781     result.replace("$DEF", def);
  2814     result.replace("$DEF", def);
  2782     return result;
  2815     return result;
  2783 }
  2816 }
  2784 
  2817 
  2785 #if !defined(EVAL)
  2818 #if !defined(EVAL)
  2786 // ### This should be removed once Qt for S60 is out.
       
  2787 static void applyTemporarySymbianFlags(QStringList &qconfigList)
       
  2788 {
       
  2789     qconfigList += "QT_NO_CONCURRENT";
       
  2790     qconfigList += "QT_NO_QFUTURE";
       
  2791     // This is removed because it uses UNIX signals which are not implemented yet
       
  2792     qconfigList += "QT_NO_CRASHHANDLER";
       
  2793     qconfigList += "QT_NO_PRINTER";
       
  2794     qconfigList += "QT_NO_SYSTEMTRAYICON";
       
  2795 }
       
  2796 
       
  2797 void Configure::generateConfigfiles()
  2819 void Configure::generateConfigfiles()
  2798 {
  2820 {
  2799     QDir(buildPath).mkpath("src/corelib/global");
  2821     QDir(buildPath).mkpath("src/corelib/global");
  2800     QString outName( buildPath + "/src/corelib/global/qconfig.h" );
  2822     QString outName( buildPath + "/src/corelib/global/qconfig.h" );
  2801     QTemporaryFile tmpFile;
  2823     QTemporaryFile tmpFile;
  2885         if(dictionary["OPENSSL"] == "no")           qconfigList += "QT_NO_OPENSSL";
  2907         if(dictionary["OPENSSL"] == "no")           qconfigList += "QT_NO_OPENSSL";
  2886         if(dictionary["OPENSSL"] == "linked")       qconfigList += "QT_LINKED_OPENSSL";
  2908         if(dictionary["OPENSSL"] == "linked")       qconfigList += "QT_LINKED_OPENSSL";
  2887         if(dictionary["DBUS"] == "no")              qconfigList += "QT_NO_DBUS";
  2909         if(dictionary["DBUS"] == "no")              qconfigList += "QT_NO_DBUS";
  2888         if(dictionary["IPV6"] == "no")              qconfigList += "QT_NO_IPV6";
  2910         if(dictionary["IPV6"] == "no")              qconfigList += "QT_NO_IPV6";
  2889         if(dictionary["WEBKIT"] == "no")            qconfigList += "QT_NO_WEBKIT";
  2911         if(dictionary["WEBKIT"] == "no")            qconfigList += "QT_NO_WEBKIT";
       
  2912         if(dictionary["DECLARATIVE"] == "no")       qconfigList += "QT_NO_DECLARATIVE";
  2890         if(dictionary["PHONON"] == "no")            qconfigList += "QT_NO_PHONON";
  2913         if(dictionary["PHONON"] == "no")            qconfigList += "QT_NO_PHONON";
  2891         if(dictionary["MULTIMEDIA"] == "no")        qconfigList += "QT_NO_MULTIMEDIA";
  2914         if(dictionary["MULTIMEDIA"] == "no")        qconfigList += "QT_NO_MULTIMEDIA";
  2892         if(dictionary["XMLPATTERNS"] == "no")       qconfigList += "QT_NO_XMLPATTERNS";
  2915         if(dictionary["XMLPATTERNS"] == "no")       qconfigList += "QT_NO_XMLPATTERNS";
  2893         if(dictionary["SCRIPT"] == "no")            qconfigList += "QT_NO_SCRIPT";
  2916         if(dictionary["SCRIPT"] == "no")            qconfigList += "QT_NO_SCRIPT";
  2894         if(dictionary["SCRIPTTOOLS"] == "no")       qconfigList += "QT_NO_SCRIPTTOOLS";
  2917         if(dictionary["SCRIPTTOOLS"] == "no")       qconfigList += "QT_NO_SCRIPTTOOLS";
  2895         if(dictionary["FREETYPE"] == "no")          qconfigList += "QT_NO_FREETYPE";
  2918         if(dictionary["FREETYPE"] == "no")          qconfigList += "QT_NO_FREETYPE";
  2896         if(dictionary["S60"] == "no")               qconfigList += "QT_NO_S60";
  2919         if(dictionary["S60"] == "no")               qconfigList += "QT_NO_S60";
       
  2920         if(dictionary["NATIVE_GESTURES"] == "no")   qconfigList += "QT_NO_NATIVE_GESTURES";
  2897 
  2921 
  2898         if(dictionary["OPENGL_ES_CM"] == "yes" ||
  2922         if(dictionary["OPENGL_ES_CM"] == "yes" ||
  2899            dictionary["OPENGL_ES_CL"] == "yes" ||
  2923            dictionary["OPENGL_ES_CL"] == "yes" ||
  2900            dictionary["OPENGL_ES_2"]  == "yes")     qconfigList += "QT_OPENGL_ES";
  2924            dictionary["OPENGL_ES_2"]  == "yes")     qconfigList += "QT_OPENGL_ES";
  2901 
  2925 
  2914         if(dictionary["SQL_IBASE"] == "yes")        qconfigList += "QT_SQL_IBASE";
  2938         if(dictionary["SQL_IBASE"] == "yes")        qconfigList += "QT_SQL_IBASE";
  2915 
  2939 
  2916         if (dictionary["GRAPHICS_SYSTEM"] == "openvg") qconfigList += "QT_GRAPHICSSYSTEM_OPENVG";
  2940         if (dictionary["GRAPHICS_SYSTEM"] == "openvg") qconfigList += "QT_GRAPHICSSYSTEM_OPENVG";
  2917         if (dictionary["GRAPHICS_SYSTEM"] == "opengl") qconfigList += "QT_GRAPHICSSYSTEM_OPENGL";
  2941         if (dictionary["GRAPHICS_SYSTEM"] == "opengl") qconfigList += "QT_GRAPHICSSYSTEM_OPENGL";
  2918         if (dictionary["GRAPHICS_SYSTEM"] == "raster") qconfigList += "QT_GRAPHICSSYSTEM_RASTER";
  2942         if (dictionary["GRAPHICS_SYSTEM"] == "raster") qconfigList += "QT_GRAPHICSSYSTEM_RASTER";
  2919         // ### This block should be removed once Qt for S60 is out.
  2943 
  2920         if (dictionary.contains("XQMAKESPEC") && dictionary["XQMAKESPEC"].startsWith("symbian")) {
  2944         if (dictionary.contains("XQMAKESPEC") && dictionary["XQMAKESPEC"].startsWith("symbian")) {
  2921             applyTemporarySymbianFlags(qconfigList);
  2945             // These features are not ported to Symbian (yet)
       
  2946             qconfigList += "QT_NO_CONCURRENT";
       
  2947             qconfigList += "QT_NO_QFUTURE";
       
  2948             qconfigList += "QT_NO_CRASHHANDLER";
       
  2949             qconfigList += "QT_NO_PRINTER";
       
  2950             qconfigList += "QT_NO_SYSTEMTRAYICON";
  2922         }
  2951         }
  2923 
  2952 
  2924         qconfigList.sort();
  2953         qconfigList.sort();
  2925         for (int i = 0; i < qconfigList.count(); ++i)
  2954         for (int i = 0; i < qconfigList.count(); ++i)
  2926             tmpStream << addDefine(qconfigList.at(i));
  2955             tmpStream << addDefine(qconfigList.at(i));
  3034     QTemporaryFile tmpFile2;
  3063     QTemporaryFile tmpFile2;
  3035     if (tmpFile2.open()) {
  3064     if (tmpFile2.open()) {
  3036         tmpStream.setDevice(&tmpFile2);
  3065         tmpStream.setDevice(&tmpFile2);
  3037         tmpStream << "/* Licensed */" << endl
  3066         tmpStream << "/* Licensed */" << endl
  3038                   << "static const char qt_configure_licensee_str          [512 + 12] = \"qt_lcnsuser=" << licenseInfo["LICENSEE"] << "\";" << endl
  3067                   << "static const char qt_configure_licensee_str          [512 + 12] = \"qt_lcnsuser=" << licenseInfo["LICENSEE"] << "\";" << endl
  3039                   << "static const char qt_configure_licensed_products_str [512 + 12] = \"qt_lcnsprod=" << dictionary["EDITION"] << "\";" << endl;
  3068                   << "static const char qt_configure_licensed_products_str [512 + 12] = \"qt_lcnsprod=" << dictionary["EDITION"] << "\";" << endl
       
  3069                   << endl
       
  3070                   << "/* Build date */" << endl
       
  3071                   << "static const char qt_configure_installation          [11  + 12] = \"qt_instdate=" << QDate::currentDate().toString(Qt::ISODate) << "\";" << endl
       
  3072                   << endl;
  3040         if(!dictionary[ "QT_HOST_PREFIX" ].isNull())
  3073         if(!dictionary[ "QT_HOST_PREFIX" ].isNull())
  3041             tmpStream << "#if !defined(QT_BOOTSTRAPPED) && !defined(QT_BUILD_QMAKE)" << endl;
  3074             tmpStream << "#if !defined(QT_BOOTSTRAPPED) && !defined(QT_BUILD_QMAKE)" << endl;
  3042         tmpStream << "static const char qt_configure_prefix_path_str       [512 + 12] = \"qt_prfxpath=" << QString(dictionary["QT_INSTALL_PREFIX"]).replace( "\\", "\\\\" ) << "\";" << endl
  3075         tmpStream << "static const char qt_configure_prefix_path_str       [512 + 12] = \"qt_prfxpath=" << QString(dictionary["QT_INSTALL_PREFIX"]).replace( "\\", "\\\\" ) << "\";" << endl
  3043                   << "static const char qt_configure_documentation_path_str[512 + 12] = \"qt_docspath=" << QString(dictionary["QT_INSTALL_DOCS"]).replace( "\\", "\\\\" ) << "\";"  << endl
  3076                   << "static const char qt_configure_documentation_path_str[512 + 12] = \"qt_docspath=" << QString(dictionary["QT_INSTALL_DOCS"]).replace( "\\", "\\\\" ) << "\";"  << endl
  3044                   << "static const char qt_configure_headers_path_str      [512 + 12] = \"qt_hdrspath=" << QString(dictionary["QT_INSTALL_HEADERS"]).replace( "\\", "\\\\" ) << "\";"  << endl
  3077                   << "static const char qt_configure_headers_path_str      [512 + 12] = \"qt_hdrspath=" << QString(dictionary["QT_INSTALL_HEADERS"]).replace( "\\", "\\\\" ) << "\";"  << endl
  3088         ::SetFileAttributes((wchar_t*)outName.utf16(), FILE_ATTRIBUTE_NORMAL );
  3121         ::SetFileAttributes((wchar_t*)outName.utf16(), FILE_ATTRIBUTE_NORMAL );
  3089         QFile::remove( outName );
  3122         QFile::remove( outName );
  3090         tmpFile2.copy(outName);
  3123         tmpFile2.copy(outName);
  3091         tmpFile2.close();
  3124         tmpFile2.close();
  3092     }
  3125     }
       
  3126 
       
  3127     QTemporaryFile tmpFile3;
       
  3128     if (tmpFile3.open()) {
       
  3129         tmpStream.setDevice(&tmpFile3);
       
  3130         tmpStream << "/* Evaluation license key */" << endl
       
  3131                   << "static const char qt_eval_key_data              [512 + 12] = \"qt_qevalkey=" << licenseInfo["LICENSEKEYEXT"] << "\";" << endl;
       
  3132 
       
  3133         tmpStream.flush();
       
  3134         tmpFile3.flush();
       
  3135 
       
  3136         outName = buildPath + "/src/corelib/global/qconfig_eval.cpp";
       
  3137         ::SetFileAttributes((wchar_t*)outName.utf16(), FILE_ATTRIBUTE_NORMAL );
       
  3138         QFile::remove( outName );
       
  3139 
       
  3140         if (dictionary["EDITION"] == "Evaluation" || qmakeDefines.contains("QT_EVAL"))
       
  3141             tmpFile3.copy(outName);
       
  3142         tmpFile3.close();
       
  3143     }
  3093 }
  3144 }
  3094 #endif
  3145 #endif
  3095 
  3146 
  3096 #if !defined(EVAL)
  3147 #if !defined(EVAL)
  3097 void Configure::displayConfig()
  3148 void Configure::displayConfig()
  3156     cout << "QtDBus support.............." << dictionary[ "DBUS" ] << endl;
  3207     cout << "QtDBus support.............." << dictionary[ "DBUS" ] << endl;
  3157     cout << "QtXmlPatterns support......." << dictionary[ "XMLPATTERNS" ] << endl;
  3208     cout << "QtXmlPatterns support......." << dictionary[ "XMLPATTERNS" ] << endl;
  3158     cout << "Phonon support.............." << dictionary[ "PHONON" ] << endl;
  3209     cout << "Phonon support.............." << dictionary[ "PHONON" ] << endl;
  3159     cout << "QtMultimedia support........" << dictionary[ "MULTIMEDIA" ] << endl;
  3210     cout << "QtMultimedia support........" << dictionary[ "MULTIMEDIA" ] << endl;
  3160     cout << "WebKit support.............." << dictionary[ "WEBKIT" ] << endl;
  3211     cout << "WebKit support.............." << dictionary[ "WEBKIT" ] << endl;
       
  3212     cout << "Declarative support........." << dictionary[ "DECLARATIVE" ] << endl;
  3161     cout << "QtScript support............" << dictionary[ "SCRIPT" ] << endl;
  3213     cout << "QtScript support............" << dictionary[ "SCRIPT" ] << endl;
  3162     cout << "QtScriptTools support......." << dictionary[ "SCRIPTTOOLS" ] << endl;
  3214     cout << "QtScriptTools support......." << dictionary[ "SCRIPTTOOLS" ] << endl;
  3163     cout << "Graphics System............." << dictionary[ "GRAPHICS_SYSTEM" ] << endl;
  3215     cout << "Graphics System............." << dictionary[ "GRAPHICS_SYSTEM" ] << endl;
  3164     cout << "Qt3 compatibility..........." << dictionary[ "QT3SUPPORT" ] << endl << endl;
  3216     cout << "Qt3 compatibility..........." << dictionary[ "QT3SUPPORT" ] << endl << endl;
  3165 
  3217 
  3358         return;
  3410         return;
  3359 
  3411 
  3360     QString pwd = QDir::currentPath();
  3412     QString pwd = QDir::currentPath();
  3361     QStringList hostToolsDirs;
  3413     QStringList hostToolsDirs;
  3362     hostToolsDirs
  3414     hostToolsDirs
  3363         << "src/tools";
  3415         << "src/tools"
       
  3416         << "tools/linguist/lrelease";
  3364 
  3417 
  3365     if(dictionary["XQMAKESPEC"].startsWith("wince"))
  3418     if(dictionary["XQMAKESPEC"].startsWith("wince"))
  3366         hostToolsDirs << "tools/checksdk";
  3419         hostToolsDirs << "tools/checksdk";
  3367 
  3420 
  3368     if (dictionary[ "CETEST" ] == "yes")
  3421     if (dictionary[ "CETEST" ] == "yes")