tools/configure/configureapp.cpp
branchRCL_3
changeset 7 3f74d0d4af4c
parent 5 d3bac044e0f0
equal deleted inserted replaced
6:dee5afe5301f 7:3f74d0d4af4c
   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[ "AUDIO_BACKEND" ]   = "auto";
   251     dictionary[ "DIRECTSHOW" ]      = "no";
   251     dictionary[ "DIRECTSHOW" ]      = "no";
   252     dictionary[ "WEBKIT" ]          = "auto";
   252     dictionary[ "WEBKIT" ]          = "auto";
   253     dictionary[ "DECLARATIVE" ]     = "auto";
   253     dictionary[ "DECLARATIVE" ]     = "auto";
   254     dictionary[ "PLUGIN_MANIFESTS" ] = "yes";
   254     dictionary[ "PLUGIN_MANIFESTS" ] = "yes";
   255 
   255 
   480             cout << "Nokia employees and agents are allowed to use this software under" << endl;
   480             cout << "Nokia employees and agents are allowed to use this software under" << endl;
   481             cout << "the authority of Nokia Corporation and/or its subsidiary(-ies)" << endl;
   481             cout << "the authority of Nokia Corporation and/or its subsidiary(-ies)" << endl;
   482             dictionary[ "BUILDNOKIA" ] = "yes";
   482             dictionary[ "BUILDNOKIA" ] = "yes";
   483             dictionary[ "BUILDDEV" ] = "yes";
   483             dictionary[ "BUILDDEV" ] = "yes";
   484             dictionary["LICENSE_CONFIRMED"] = "yes";
   484             dictionary["LICENSE_CONFIRMED"] = "yes";
   485             dictionary[ "SYMBIAN_DEFFILES" ] = "no";
   485             if (dictionary.contains("XQMAKESPEC") && dictionary["XQMAKESPEC"].startsWith("symbian")) {
       
   486                 dictionary[ "SYMBIAN_DEFFILES" ] = "no";
       
   487             }
   486         }
   488         }
   487         else if( configCmdLine.at(i) == "-opensource" ) {
   489         else if( configCmdLine.at(i) == "-opensource" ) {
   488             dictionary[ "BUILDTYPE" ] = "opensource";
   490             dictionary[ "BUILDTYPE" ] = "opensource";
   489         }
   491         }
   490         else if( configCmdLine.at(i) == "-commercial" ) {
   492         else if( configCmdLine.at(i) == "-commercial" ) {
   965         } else if( configCmdLine.at(i) == "-qtlibinfix" ) {
   967         } else if( configCmdLine.at(i) == "-qtlibinfix" ) {
   966             ++i;
   968             ++i;
   967             if(i==argCount)
   969             if(i==argCount)
   968                 break;
   970                 break;
   969             dictionary[ "QT_LIBINFIX" ] = configCmdLine.at(i);
   971             dictionary[ "QT_LIBINFIX" ] = configCmdLine.at(i);
       
   972             if (dictionary.contains("XQMAKESPEC") && dictionary["XQMAKESPEC"].startsWith("symbian")) {
       
   973                 dictionary[ "QT_INSTALL_PLUGINS" ] =
       
   974                     QString("\\resource\\qt%1\\plugins").arg(dictionary[ "QT_LIBINFIX" ]);
       
   975             }
   970         } else if( configCmdLine.at(i) == "-D" ) {
   976         } else if( configCmdLine.at(i) == "-D" ) {
   971             ++i;
   977             ++i;
   972             if (i==argCount)
   978             if (i==argCount)
   973                 break;
   979                 break;
   974             qmakeDefines += configCmdLine.at(i);
   980             qmakeDefines += configCmdLine.at(i);
  1483         dictionary[ "QT_ICONV" ]            = "no";
  1489         dictionary[ "QT_ICONV" ]            = "no";
  1484         dictionary[ "SCRIPTTOOLS" ]         = "no";
  1490         dictionary[ "SCRIPTTOOLS" ]         = "no";
  1485         dictionary[ "QT_HOST_PREFIX" ]      = dictionary[ "QT_INSTALL_PREFIX" ];
  1491         dictionary[ "QT_HOST_PREFIX" ]      = dictionary[ "QT_INSTALL_PREFIX" ];
  1486         dictionary[ "QT_INSTALL_PREFIX" ]   = "";
  1492         dictionary[ "QT_INSTALL_PREFIX" ]   = "";
  1487         dictionary[ "QT_INSTALL_PLUGINS" ]  = "\\resource\\qt\\plugins";
  1493         dictionary[ "QT_INSTALL_PLUGINS" ]  = "\\resource\\qt\\plugins";
       
  1494         dictionary[ "QT_INSTALL_TRANSLATIONS" ]  = "\\resource\\qt\\translations";
  1488         dictionary[ "ARM_FPU_TYPE" ]        = "softvfp";
  1495         dictionary[ "ARM_FPU_TYPE" ]        = "softvfp";
  1489         dictionary[ "SQL_SQLITE" ]          = "yes";
  1496         dictionary[ "SQL_SQLITE" ]          = "yes";
  1490         dictionary[ "SQL_SQLITE_LIB" ]      = "system";
  1497         dictionary[ "SQL_SQLITE_LIB" ]      = "system";
  1491 
  1498 
  1492         // Disable building docs and translations for now
  1499         // Disable building docs and translations for now
  2064         available = true;
  2071         available = true;
  2065     } else if (part == "WEBKIT") {
  2072     } else if (part == "WEBKIT") {
  2066         available = (dictionary.value("QMAKESPEC") == "win32-msvc2005") || (dictionary.value("QMAKESPEC") == "win32-msvc2008") || (dictionary.value("QMAKESPEC") == "win32-g++");
  2073         available = (dictionary.value("QMAKESPEC") == "win32-msvc2005") || (dictionary.value("QMAKESPEC") == "win32-msvc2008") || (dictionary.value("QMAKESPEC") == "win32-g++");
  2067     } else if (part == "DECLARATIVE") {
  2074     } else if (part == "DECLARATIVE") {
  2068         available = QFile::exists(sourcePath + "/src/declarative/qml/qmlcomponent.h");
  2075         available = QFile::exists(sourcePath + "/src/declarative/qml/qmlcomponent.h");
       
  2076     } else if (part == "AUDIO_BACKEND") {
       
  2077         available = true;
       
  2078         if (dictionary.contains("XQMAKESPEC") && dictionary["XQMAKESPEC"].startsWith("symbian")) {
       
  2079             QString epocRoot = Environment::symbianEpocRoot();
       
  2080             const QDir epocRootDir(epocRoot);
       
  2081             if (epocRootDir.exists()) {
       
  2082                 QStringList paths;
       
  2083                 paths << "epoc32/release/armv5/lib/mmfdevsound.dso"
       
  2084                       << "epoc32/release/armv5/lib/mmfdevsound.lib"
       
  2085                       << "epoc32/release/winscw/udeb/mmfdevsound.dll"
       
  2086                       << "epoc32/release/winscw/udeb/mmfdevsound.lib"
       
  2087                       << "epoc32/include/mmf/server/sounddevice.h";
       
  2088 
       
  2089                 QStringList::iterator i = paths.begin();
       
  2090                 while (i != paths.end()) {
       
  2091                     const QString &path = epocRoot + *i;
       
  2092                     if (QFile::exists(path))
       
  2093                         i = paths.erase(i);
       
  2094                     else
       
  2095                         ++i;
       
  2096                 }
       
  2097 
       
  2098                 available = (paths.size() == 0);
       
  2099                 if (!available) {
       
  2100                     if (epocRoot.isNull() || epocRoot == "")
       
  2101                         epocRoot = "<empty string>";
       
  2102                     cout << endl
       
  2103                          << "The QtMultimedia audio backend will not be built because required" << endl
       
  2104                          << "support for CMMFDevSound was not found in the SDK." << endl
       
  2105                          << "The SDK which was examined was located at the following path:" << endl
       
  2106                          << "    " << epocRoot << endl
       
  2107                          << "The following required files were missing from the SDK:" << endl;
       
  2108                     QString path;
       
  2109                     foreach (path, paths)
       
  2110                         cout << "    " << path << endl;
       
  2111                     cout << endl;
       
  2112                 }
       
  2113             } else {
       
  2114                 cout << endl
       
  2115                      << "The SDK root was determined to be '" << epocRoot << "'." << endl
       
  2116                      << "This directory was not found, so the SDK could not be checked for" << endl
       
  2117                      << "CMMFDevSound support.  The QtMultimedia audio backend will therefore" << endl
       
  2118                      << "not be built." << endl << endl;
       
  2119                 available = false;
       
  2120             }
       
  2121         }
  2069     }
  2122     }
  2070 
  2123 
  2071     return available;
  2124     return available;
  2072 }
  2125 }
  2073 
  2126 
  2152         dictionary["PHONON"] = checkAvailability("PHONON") ? "yes" : "no";
  2205         dictionary["PHONON"] = checkAvailability("PHONON") ? "yes" : "no";
  2153     if (dictionary["WEBKIT"] == "auto")
  2206     if (dictionary["WEBKIT"] == "auto")
  2154         dictionary["WEBKIT"] = checkAvailability("WEBKIT") ? "yes" : "no";
  2207         dictionary["WEBKIT"] = checkAvailability("WEBKIT") ? "yes" : "no";
  2155     if (dictionary["DECLARATIVE"] == "auto")
  2208     if (dictionary["DECLARATIVE"] == "auto")
  2156         dictionary["DECLARATIVE"] = checkAvailability("DECLARATIVE") ? "yes" : "no";
  2209         dictionary["DECLARATIVE"] = checkAvailability("DECLARATIVE") ? "yes" : "no";
       
  2210     if (dictionary["AUDIO_BACKEND"] == "auto")
       
  2211         dictionary["AUDIO_BACKEND"] = checkAvailability("AUDIO_BACKEND") ? "yes" : "no";
  2157 
  2212 
  2158     // Qt/WinCE remote test application
  2213     // Qt/WinCE remote test application
  2159     if (dictionary["CETEST"] == "auto")
  2214     if (dictionary["CETEST"] == "auto")
  2160         dictionary["CETEST"] = checkAvailability("CETEST") ? "yes" : "no";
  2215         dictionary["CETEST"] = checkAvailability("CETEST") ? "yes" : "no";
  2161 
  2216 
  2264     if (!dictionary["USER_BUILD_KEY"].isEmpty())
  2319     if (!dictionary["USER_BUILD_KEY"].isEmpty())
  2265         buildKey += dictionary["USER_BUILD_KEY"] + " ";
  2320         buildKey += dictionary["USER_BUILD_KEY"] + " ";
  2266 
  2321 
  2267     QString build32Key = buildKey + "Windows " + compiler + " %1 " + build_options.join(" ") + " " + build_defines.join(" ");
  2322     QString build32Key = buildKey + "Windows " + compiler + " %1 " + build_options.join(" ") + " " + build_defines.join(" ");
  2268     QString build64Key = buildKey + "Windows x64 " + compiler + " %1 " + build_options.join(" ") + " " + build_defines.join(" ");
  2323     QString build64Key = buildKey + "Windows x64 " + compiler + " %1 " + build_options.join(" ") + " " + build_defines.join(" ");
       
  2324     QString buildSymbianKey = buildKey + "Symbian " + build_options.join(" ") + " " + build_defines.join(" ");
  2269     build32Key = build32Key.simplified();
  2325     build32Key = build32Key.simplified();
  2270     build64Key = build64Key.simplified();
  2326     build64Key = build64Key.simplified();
  2271     build32Key.prepend("#  define ");
  2327     buildSymbianKey = buildSymbianKey.simplified();
  2272     build64Key.prepend("#  define ");
  2328     build32Key.prepend("#   define ");
  2273 
  2329     build64Key.prepend("#   define ");
  2274     QString buildkey = // Debug builds
  2330     buildSymbianKey.prepend("# define ");
  2275                        "#if (defined(_DEBUG) || defined(DEBUG))\n"
  2331 
  2276                        "# if (defined(WIN64) || defined(_WIN64) || defined(__WIN64__))\n"
  2332     QString buildkey = "#if defined(__SYMBIAN32__)\n"
       
  2333                        + buildSymbianKey + "\"\n"
       
  2334                        "#else\n"
       
  2335                        // Debug builds
       
  2336                        "# if (defined(_DEBUG) || defined(DEBUG))\n"
       
  2337                        "#  if (defined(WIN64) || defined(_WIN64) || defined(__WIN64__))\n"
  2277                        + build64Key.arg("debug") + "\"\n"
  2338                        + build64Key.arg("debug") + "\"\n"
       
  2339                        "#  else\n"
       
  2340                        + build32Key.arg("debug") + "\"\n"
       
  2341                        "#  endif\n"
  2278                        "# else\n"
  2342                        "# else\n"
  2279                        + build32Key.arg("debug") + "\"\n"
       
  2280                        "# endif\n"
       
  2281                        "#else\n"
       
  2282                        // Release builds
  2343                        // Release builds
  2283                        "# if (defined(WIN64) || defined(_WIN64) || defined(__WIN64__))\n"
  2344                        "#  if (defined(WIN64) || defined(_WIN64) || defined(__WIN64__))\n"
  2284                        + build64Key.arg("release") + "\"\n"
  2345                        + build64Key.arg("release") + "\"\n"
  2285                        "# else\n"
  2346                        "#  else\n"
  2286                        + build32Key.arg("release") + "\"\n"
  2347                        + build32Key.arg("release") + "\"\n"
       
  2348                        "#  endif\n"
  2287                        "# endif\n"
  2349                        "# endif\n"
  2288                        "#endif\n";
  2350                        "#endif\n";
  2289 
  2351 
  2290     dictionary["BUILD_KEY"] = buildkey;
  2352     dictionary["BUILD_KEY"] = buildkey;
  2291 }
  2353 }
  2966             qconfigList += "QT_NO_CONCURRENT";
  3028             qconfigList += "QT_NO_CONCURRENT";
  2967             qconfigList += "QT_NO_QFUTURE";
  3029             qconfigList += "QT_NO_QFUTURE";
  2968             qconfigList += "QT_NO_CRASHHANDLER";
  3030             qconfigList += "QT_NO_CRASHHANDLER";
  2969             qconfigList += "QT_NO_PRINTER";
  3031             qconfigList += "QT_NO_PRINTER";
  2970             qconfigList += "QT_NO_SYSTEMTRAYICON";
  3032             qconfigList += "QT_NO_SYSTEMTRAYICON";
       
  3033             if (dictionary.contains("QT_LIBINFIX"))
       
  3034                 tmpStream << QString("#define QT_LIBINFIX \"%1\"").arg(dictionary["QT_LIBINFIX"]) << endl;
  2971         }
  3035         }
  2972 
  3036 
  2973         qconfigList.sort();
  3037         qconfigList.sort();
  2974         for (int i = 0; i < qconfigList.count(); ++i)
  3038         for (int i = 0; i < qconfigList.count(); ++i)
  2975             tmpStream << addDefine(qconfigList.at(i));
  3039             tmpStream << addDefine(qconfigList.at(i));
  3644                         continue;
  3708                         continue;
  3645                     }
  3709                     }
  3646                     QTextStream txt(&file);
  3710                     QTextStream txt(&file);
  3647                     txt << "all:\n";
  3711                     txt << "all:\n";
  3648                     txt << "\t" << args.join(" ") << "\n";
  3712                     txt << "\t" << args.join(" ") << "\n";
  3649                     txt << "\t" << dictionary[ "MAKE" ] << " -f " << it->target << "\n";
  3713                     txt << "\t\"$(MAKE)\" -$(MAKEFLAGS) -f " << it->target << "\n";
  3650                     txt << "first: all\n";
  3714                     txt << "first: all\n";
  3651                     txt << "qmake:\n";
  3715                     txt << "qmake:\n";
  3652                     txt << "\t" << args.join(" ") << "\n";
  3716                     txt << "\t" << args.join(" ") << "\n";
  3653                 }
  3717                 }
  3654             }
  3718             }