dictionary[ "VCPROJFILES" ] = "yes";
dictionary[ "QMAKE_INTERNAL" ] = "no";
dictionary[ "FAST" ] = "no";
- dictionary[ "NOPROCESS" ] = "no";
+ dictionary[ "PROCESS" ] = "partial";
dictionary[ "WIDGETS" ] = "yes";
dictionary[ "RTTI" ] = "yes";
dictionary[ "SSE2" ] = "auto";
dictionary[ "BUILD" ] = "debug";
dictionary[ "BUILDALL" ] = "auto"; // Means yes, but not explicitly
+ dictionary[ "FORCEDEBUGINFO" ] = "no";
dictionary[ "BUILDTYPE" ] = "none";
dictionary[ "BUILDALL" ] = "no";
} else if (configCmdLine.at(i) == "-debug-and-release")
dictionary[ "BUILDALL" ] = "yes";
+ else if (configCmdLine.at(i) == "-force-debug-info")
+ dictionary[ "FORCEDEBUGINFO" ] = "yes";
else if (configCmdLine.at(i) == "-shared")
dictionary[ "SHARED" ] = "yes";
dictionary[ "BUILD_QMAKE" ] = "yes";
else if (configCmdLine.at(i) == "-dont-process")
- dictionary[ "NOPROCESS" ] = "yes";
+ dictionary[ "PROCESS" ] = "no";
else if (configCmdLine.at(i) == "-process")
- dictionary[ "NOPROCESS" ] = "no";
+ dictionary[ "PROCESS" ] = "partial";
+ else if (configCmdLine.at(i) == "-fully-process")
+ dictionary[ "PROCESS" ] = "full";
else if (configCmdLine.at(i) == "-no-qmake-deps")
dictionary[ "DEPENDENCIES" ] = "no";
opensslLibsDebug = configCmdLine.at(i);
} else if (configCmdLine.at(i).startsWith("OPENSSL_LIBS_RELEASE=")) {
opensslLibsRelease = configCmdLine.at(i);
+ } else if (configCmdLine.at(i).startsWith("OPENSSL_PATH=")) {
+ opensslPath = QDir::fromNativeSeparators(configCmdLine.at(i));
} else if (configCmdLine.at(i).startsWith("PSQL_LIBS=")) {
psqlLibs = configCmdLine.at(i);
} else if (configCmdLine.at(i).startsWith("SYBASE=")) {
sybase = configCmdLine.at(i);
} else if (configCmdLine.at(i).startsWith("SYBASE_LIBS=")) {
sybaseLibs = configCmdLine.at(i);
+ } else if (configCmdLine.at(i).startsWith("DBUS_PATH=")) {
+ dbusPath = QDir::fromNativeSeparators(configCmdLine.at(i));
+ } else if (configCmdLine.at(i).startsWith("MYSQL_PATH=")) {
+ mysqlPath = QDir::fromNativeSeparators(configCmdLine.at(i));
+ } else if (configCmdLine.at(i).startsWith("ZLIB_LIBS=")) {
+ zlibLibs = QDir::fromNativeSeparators(configCmdLine.at(i));
}
else if ((configCmdLine.at(i) == "-override-version") || (configCmdLine.at(i) == "-version-override")){
dictionary[ "QMAKESPEC" ].endsWith("-msvc2005") ||
dictionary[ "QMAKESPEC" ].endsWith("-msvc2008") ||
dictionary[ "QMAKESPEC" ].endsWith("-msvc2010") ||
- dictionary[ "QMAKESPEC" ].endsWith("-msvc11")) {
+ dictionary[ "QMAKESPEC" ].endsWith("-msvc2012")) {
if (dictionary[ "MAKE" ].isEmpty()) dictionary[ "MAKE" ] = "nmake";
dictionary[ "QMAKEMAKEFILE" ] = "Makefile.win32";
} else if (dictionary[ "QMAKESPEC" ] == QString("win32-g++")) {
dictionary[ "STYLE_WINDOWSMOBILE" ] = "yes";
dictionary[ "STYLE_MOTIF" ] = "no";
dictionary[ "STYLE_CDE" ] = "no";
- dictionary[ "FREETYPE" ] = "no";
dictionary[ "OPENGL" ] = "no";
dictionary[ "OPENSSL" ] = "no";
dictionary[ "RTTI" ] = "no";
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("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("FORCEDEBUGINFO", "yes","-force-debug-info", "Create symbol files for release builds.\n");
desc("BUILDDEV", "yes", "-developer-build", "Compile and link Qt with Qt developer options (including auto-tests exporting)\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("SHARED", "yes", "-shared", "Create and use shared Qt libraries.");
desc("SHARED", "no", "-static", "Create and use static Qt libraries.\n");
desc("BUILD_QMAKE", "no", "-no-qmake", "Do not compile qmake.");
desc("BUILD_QMAKE", "yes", "-qmake", "Compile qmake.\n");
- desc("NOPROCESS", "yes", "-dont-process", "Do not generate Makefiles/Project files. This will override -no-fast if specified.");
- desc("NOPROCESS", "no", "-process", "Generate Makefiles/Project files.\n");
+ desc("PROCESS", "partial", "-process", "Generate top-level Makefiles/Project files.\n");
+ desc("PROCESS", "full", "-fully-process", "Generate Makefiles/Project files for the entire Qt tree.\n");
+ desc("PROCESS", "no", "-dont-process", "Do not generate Makefiles/Project files. This will override -no-fast if specified.");
desc("RTTI", "no", "-no-rtti", "Do not compile runtime type information.");
desc("RTTI", "yes", "-rtti", "Compile runtime type information.\n");
if (dictionary[ "BUILDALL" ] == "yes") {
qtConfig += "build_all";
}
+ if (dictionary[ "FORCEDEBUGINFO" ] == "yes")
+ qtConfig += "force_debug_info";
qmakeConfig += dictionary[ "BUILD" ];
dictionary[ "QMAKE_OUTDIR" ] = dictionary[ "BUILD" ];
// Directories and settings for .qmake.cache --------------------
if (dictionary.contains("XQMAKESPEC") && dictionary[ "XQMAKESPEC" ].startsWith("linux"))
- dictionary[ "QMAKE_RPATHDIR" ] = dictionary[ "QT_INSTALL_LIBS" ];
+ qtConfig += "rpath";
qmakeVars += QString("OBJECTS_DIR = ") + formatPath("tmp/obj/" + dictionary["QMAKE_OUTDIR"]);
qmakeVars += QString("MOC_DIR = ") + formatPath("tmp/moc/" + dictionary["QMAKE_OUTDIR"]);
} else if (opensslLibs.isEmpty()) {
qmakeVars += QString("OPENSSL_LIBS = -lssleay32 -llibeay32");
}
+ if (!opensslPath.isEmpty())
+ qmakeVars += opensslPath;
}
+ if (dictionary[ "DBUS" ] != "no" && !dbusPath.isEmpty())
+ qmakeVars += dbusPath;
+ if (dictionary[ "SQL_MYSQL" ] != "no" && !mysqlPath.isEmpty())
+ qmakeVars += mysqlPath;
if (!psqlLibs.isEmpty())
qmakeVars += QString("QT_LFLAGS_PSQL=") + psqlLibs.section("=", 1);
+ if (!zlibLibs.isEmpty())
+ qmakeVars += zlibLibs;
{
QStringList lflagsTDS;
configStream << "QT_HOST_ARCH = " << dictionary["QT_HOST_ARCH"] << endl;
configStream << "QT_CPU_FEATURES = " << dictionary["QT_CPU_FEATURES"] << endl;
configStream << "QT_HOST_CPU_FEATURES = " << dictionary["QT_HOST_CPU_FEATURES"] << endl;
+ if (!dictionary["XQMAKESPEC"].isEmpty() && !dictionary["XQMAKESPEC"].startsWith("wince")) {
+ // FIXME: add detection
+ configStream << "QMAKE_DEFAULT_LIBDIRS = /lib /usr/lib" << endl;
+ configStream << "QMAKE_DEFAULT_INCDIRS = /usr/include /usr/local/include" << endl;
+ }
if (dictionary["QT_EDITION"].contains("OPENSOURCE"))
configStream << "QT_EDITION = " << QLatin1String("OpenSource") << endl;
else
tmpStream << endl;
}
+ tmpStream << endl << "// Compiler sub-arch support" << endl;
+ if (dictionary[ "SSE2" ] == "yes")
+ tmpStream << "#define QT_COMPILER_SUPPORTS_SSE2" << endl;
+ if (dictionary[ "SSE3" ] == "yes")
+ tmpStream << "#define QT_COMPILER_SUPPORTS_SSE3" << endl;
+ if (dictionary[ "SSSE3" ] == "yes")
+ tmpStream << "#define QT_COMPILER_SUPPORTS_SSSE3" << endl;
+ if (dictionary[ "SSE4_1" ] == "yes")
+ tmpStream << "#define QT_COMPILER_SUPPORTS_SSE4_1" << endl;
+ if (dictionary[ "SSE4_2" ] == "yes")
+ tmpStream << "#define QT_COMPILER_SUPPORTS_SSE4_2" << endl;
+ if (dictionary[ "AVX" ] == "yes")
+ tmpStream << "#define QT_COMPILER_SUPPORTS_AVX" << endl;
+ if (dictionary[ "AVX2" ] == "yes")
+ tmpStream << "#define QT_COMPILER_SUPPORTS_AVX2" << endl;
+ if (dictionary[ "IWMMXT" ] == "yes")
+ tmpStream << "#define QT_COMPILER_SUPPORTS_IWMMXT" << endl;
+ if (dictionary[ "NEON" ] == "yes")
+ tmpStream << "#define QT_COMPILER_SUPPORTS_NEON" << endl;
+
+
tmpStream << endl << "// Compile time features" << endl;
QStringList qconfigList;
else
qconfigList += "QT_NO_NIS";
- if (dictionary["LARGE_FILE"] == "yes")
- tmpStream << "#define QT_LARGEFILE_SUPPORT 64" << endl;
-
+ if (dictionary["LARGE_FILE"] == "yes") qconfigList += "QT_LARGEFILE_SUPPORT=64";
+ if (dictionary["QT_CUPS"] == "no") qconfigList += "QT_NO_CUPS";
+ if (dictionary["QT_ICONV"] == "no") qconfigList += "QT_NO_ICONV";
+ if (dictionary["QT_GLIB"] == "no") qconfigList += "QT_NO_GLIB";
+ if (dictionary["QT_INOTIFY"] == "no") qconfigList += "QT_NO_INOTIFY";
qconfigList.sort();
for (int i = 0; i < qconfigList.count(); ++i)
tmpStream << addDefine(qconfigList.at(i));
- if (dictionary[ "QT_CUPS" ] == "no")
- tmpStream<<"#define QT_NO_CUPS"<<endl;
-
- if (dictionary[ "QT_ICONV" ] == "no")
- tmpStream<<"#define QT_NO_ICONV"<<endl;
-
- if (dictionary[ "QT_GLIB" ] == "no")
- tmpStream<<"#define QT_NO_GLIB"<<endl;
-
- if (dictionary[ "QT_INOTIFY" ] == "no")
- tmpStream<<"#define QT_NO_INOTIFY"<<endl;
-
tmpStream<<"#define QT_QPA_DEFAULT_PLATFORM_NAME \"" << qpaPlatformName() << "\""<<endl;
tmpStream.flush();
sout << "Host Architecture..........." << dictionary["QT_HOST_ARCH"]
<< ", features:" << dictionary["QT_HOST_CPU_FEATURES"] << endl;
sout << "Maketool...................." << dictionary[ "MAKE" ] << endl;
- sout << "Debug symbols..............." << (dictionary[ "BUILD" ] == "debug" ? "yes" : "no") << endl;
+ if (dictionary[ "BUILDALL" ] == "yes") {
+ sout << "Debug build................." << "yes (combined)" << endl;
+ sout << "Default build..............." << dictionary[ "BUILD" ] << endl;
+ } else {
+ sout << "Debug......................." << (dictionary[ "BUILD" ] == "debug" ? "yes" : "no") << endl;
+ }
+ if (dictionary[ "BUILD" ] == "release" || dictionary[ "BUILDALL" ] == "yes")
+ sout << "Force debug info............" << dictionary[ "FORCEDEBUGINFO" ] << endl;
sout << "Link Time Code Generation..." << dictionary[ "LTCG" ] << endl;
sout << "Accessibility support......." << dictionary[ "ACCESSIBILITY" ] << endl;
sout << "RTTI support................" << dictionary[ "RTTI" ] << endl;
// display config.summary
sout.seekg(0, ios::beg);
- while (sout) {
+ while (sout.good()) {
string str;
getline(sout, str);
cout << str << endl;
void Configure::findProjects(const QString& dirName)
{
- if (dictionary[ "NOPROCESS" ] == "no") {
+ if (dictionary[ "PROCESS" ] != "no") {
QDir dir(dirName);
QString entryName;
int makeListNumber;
void Configure::generateMakefiles()
{
- if (dictionary[ "NOPROCESS" ] == "no") {
+ if (dictionary[ "PROCESS" ] != "no") {
QString spec = dictionary.contains("XQMAKESPEC") ? dictionary[ "XQMAKESPEC" ] : dictionary[ "QMAKESPEC" ];
if (spec != "win32-msvc.net" && !spec.startsWith("win32-msvc2") && !spec.startsWith(QLatin1String("wince")))
dictionary[ "VCPROJFILES" ] = "no";
printf("Generating Makefiles...\n");
generate = false; // Now Makefiles will be done
}
- args << "-r";
+ if (dictionary[ "PROCESS" ] == "full")
+ args << "-r";
args << (sourcePath + "/qtbase.pro");
args << "-o";
args << buildPath;