Title: [128461] trunk/Tools
Revision
128461
Author
[email protected]
Date
2012-09-13 08:03:24 -0700 (Thu, 13 Sep 2012)

Log Message

[Qt] Fix build of Qt WTR/MiniBrowser with MSVC and nmake
https://bugs.webkit.org/show_bug.cgi?id=96633

Reviewed by Csaba Osztrogonác.

WTR and MiniBrowser both have DRT in their include path (for the shared font stuff). Batch
builds with MSVC and nmake result in nmake picking up main.cpp from the wrong directory.
It's the usual problem and the usual solution is to rename one of the conflicting files.
This patch chooses to rename DRT instead of WTR and MBR.

Fixed include order at the same time to match style guide.

* DumpRenderTree/qt/DumpRenderTree.pro:
* DumpRenderTree/qt/DumpRenderTreeMain.cpp: Renamed from Tools/DumpRenderTree/qt/main.cpp.
(messageHandler):
(isOption):
(takeOptionValue):
(printUsage):
(main):

Modified Paths

Added Paths

Removed Paths

Diff

Modified: trunk/Tools/ChangeLog (128460 => 128461)


--- trunk/Tools/ChangeLog	2012-09-13 14:59:22 UTC (rev 128460)
+++ trunk/Tools/ChangeLog	2012-09-13 15:03:24 UTC (rev 128461)
@@ -1,3 +1,25 @@
+2012-09-13  Simon Hausmann  <[email protected]>
+
+        [Qt] Fix build of Qt WTR/MiniBrowser with MSVC and nmake
+        https://bugs.webkit.org/show_bug.cgi?id=96633
+
+        Reviewed by Csaba Osztrogonác.
+
+        WTR and MiniBrowser both have DRT in their include path (for the shared font stuff). Batch
+        builds with MSVC and nmake result in nmake picking up main.cpp from the wrong directory.
+        It's the usual problem and the usual solution is to rename one of the conflicting files.
+        This patch chooses to rename DRT instead of WTR and MBR.
+
+        Fixed include order at the same time to match style guide.
+
+        * DumpRenderTree/qt/DumpRenderTree.pro:
+        * DumpRenderTree/qt/DumpRenderTreeMain.cpp: Renamed from Tools/DumpRenderTree/qt/main.cpp.
+        (messageHandler):
+        (isOption):
+        (takeOptionValue):
+        (printUsage):
+        (main):
+
 2012-09-13  Kenneth Rohde Christiansen  <[email protected]>
 
         The Script run-launcher should support -2 in combination with --efl

Modified: trunk/Tools/DumpRenderTree/qt/DumpRenderTree.pro (128460 => 128461)


--- trunk/Tools/DumpRenderTree/qt/DumpRenderTree.pro	2012-09-13 14:59:22 UTC (rev 128460)
+++ trunk/Tools/DumpRenderTree/qt/DumpRenderTree.pro	2012-09-13 15:03:24 UTC (rev 128461)
@@ -47,7 +47,7 @@
     GCControllerQt.cpp \
     QtInitializeTestFonts.cpp \
     testplugin.cpp \
-    main.cpp
+    DumpRenderTreeMain.cpp
 
 wince*: {
     INCLUDEPATH += $$QT.core.sources/../3rdparty/ce-compat $$WCECOMPAT/include

Copied: trunk/Tools/DumpRenderTree/qt/DumpRenderTreeMain.cpp (from rev 128460, trunk/Tools/DumpRenderTree/qt/main.cpp) (0 => 128461)


--- trunk/Tools/DumpRenderTree/qt/DumpRenderTreeMain.cpp	                        (rev 0)
+++ trunk/Tools/DumpRenderTree/qt/DumpRenderTreeMain.cpp	2012-09-13 15:03:24 UTC (rev 128461)
@@ -0,0 +1,196 @@
+/*
+ * Copyright (C) 2006 Nikolas Zimmermann <[email protected]>
+ * Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies)
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1.  Redistributions of source code must retain the above copyright
+ *     notice, this list of conditions and the following disclaimer.
+ * 2.  Redistributions in binary form must reproduce the above copyright
+ *     notice, this list of conditions and the following disclaimer in the
+ *     documentation and/or other materials provided with the distribution.
+ * 3.  Neither the name of Apple Computer, Inc. ("Apple") nor the names of
+ *     its contributors may be used to endorse or promote products derived
+ *     from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "DumpRenderTreeQt.h"
+
+#include "QtInitializeTestFonts.h"
+
+#include <qapplication.h>
+#include <qdebug.h>
+#include <qdir.h>
+#include <qfont.h>
+#include <qstringlist.h>
+#include <qtimer.h>
+#include <qurl.h>
+#include <qwebdatabase.h>
+#include <qwindowsstyle.h>
+
+#include <wtf/AlwaysInline.h>
+#include <wtf/ExportMacros.h>
+
+#ifdef Q_WS_X11
+#include <qx11info_x11.h>
+#endif
+
+#ifdef Q_OS_WIN
+#include <fcntl.h>
+#include <io.h>
+#endif
+
+#include <limits.h>
+
+#include <wtf/Assertions.h>
+
+void messageHandler(QtMsgType type, const char *message)
+{
+    if (type == QtCriticalMsg) {
+        fprintf(stderr, "%s\n", message);
+        return;
+    }
+    // do nothing
+}
+
+// We only support -v or --stdout or --stderr or -, all the others will be
+// pass as test case name (even -abc.html is a valid test case name)
+bool isOption(const QString& str)
+{
+    return str == QString("-v")
+           || str == QString("--stdout") || str == QString("--stderr")
+           || str == QString("--timeout") || str == QString("--no-timeout")
+           || str == QString("-");
+}
+
+QString takeOptionValue(QStringList& arguments, int index)
+{
+    QString result;
+
+    if (index + 1 < arguments.count() && !isOption(arguments.at(index + 1)))
+        result = arguments.takeAt(index + 1);
+    arguments.removeAt(index);
+
+    return result;
+}
+
+void printUsage()
+{
+    fprintf(stderr, "Usage: DumpRenderTree [-v] [--stdout output_filename] [-stderr error_filename] [--no-timeout] [--timeout timeout_MS] filename [filename2..n]\n");
+    fprintf(stderr, "Or folder containing test files: DumpRenderTree [-v] dirpath\n");
+    fflush(stderr);
+}
+
+int main(int argc, char* argv[])
+{
+#ifdef Q_OS_WIN
+    _setmode(1, _O_BINARY);
+    _setmode(2, _O_BINARY);
+#endif
+
+    // Suppress debug output from Qt if not started with -v
+    bool suppressQtDebugOutput = true;
+    for (int i = 1; i < argc; ++i) {
+        if (!qstrcmp(argv[i], "-v")) {
+            suppressQtDebugOutput = false;
+            break;
+        }
+    }
+
+    // Has to be done before QApplication is constructed in case
+    // QApplication itself produces debug output.
+    if (suppressQtDebugOutput)
+        qInstallMsgHandler(messageHandler);
+
+    WebKit::initializeTestFonts();
+
+    QApplication::setStyle(new QWindowsStyle);
+    QApplication::setDesktopSettingsAware(false);
+
+    QApplication app(argc, argv);
+    app.setQuitOnLastWindowClosed(false);
+
+    QCoreApplication::setAttribute(Qt::AA_Use96Dpi, true);
+
+    WTFInstallReportBacktraceOnCrashHook();
+
+    QStringList args = app.arguments();
+    if (args.count() < (!suppressQtDebugOutput ? 3 : 2)) {
+        printUsage();
+        exit(1);
+    }
+
+    // Remove the first arguments, it is application name itself
+    args.removeAt(0);
+
+    WebCore::DumpRenderTree dumper;
+
+    int index = args.indexOf(QLatin1String("--stdout"));
+    if (index != -1) {
+        QString fileName = takeOptionValue(args, index);
+        dumper.setRedirectOutputFileName(fileName);
+        if (fileName.isEmpty() || !freopen(qPrintable(fileName), "w", stdout)) {
+            fprintf(stderr, "STDOUT redirection failed.");
+            exit(1);
+        }
+    }
+    index = args.indexOf(QLatin1String("--stderr"));
+    if (index != -1) {
+        QString fileName = takeOptionValue(args, index);
+        dumper.setRedirectErrorFileName(fileName);
+        if (!freopen(qPrintable(fileName), "w", stderr)) {
+            fprintf(stderr, "STDERR redirection failed.");
+            exit(1);
+        }
+    }
+    QWebDatabase::removeAllDatabases();
+
+    index = args.indexOf(QLatin1String("--timeout"));
+    if (index != -1) {
+        int timeout = takeOptionValue(args, index).toInt();
+        dumper.setTimeout(timeout);
+    }
+
+    index = args.indexOf(QLatin1String("--no-timeout"));
+    if (index != -1) {
+        dumper.setShouldTimeout(false);
+        args.removeAt(index);
+    }
+
+    index = args.indexOf(QLatin1String("-"));
+    if (index != -1) {
+        args.removeAt(index);
+
+        // Continue waiting in STDIN for more test case after process one test case
+        QObject::connect(&dumper, SIGNAL(ready()), &dumper, SLOT(readLine()), Qt::QueuedConnection);   
+
+        // Read and only read the first test case, ignore the others 
+        if (args.size() > 0) { 
+            // Process the argument first
+            dumper.processLine(args[0]);
+        } else
+           QTimer::singleShot(0, &dumper, SLOT(readLine()));
+    } else {
+        // Go into standalone mode
+        // Standalone mode need at least one test case
+        if (args.count() < 1) {
+            printUsage();
+            exit(1);
+        }
+        dumper.processArgsLine(args);
+    }
+    return app.exec();
+}

Deleted: trunk/Tools/DumpRenderTree/qt/main.cpp (128460 => 128461)


--- trunk/Tools/DumpRenderTree/qt/main.cpp	2012-09-13 14:59:22 UTC (rev 128460)
+++ trunk/Tools/DumpRenderTree/qt/main.cpp	2012-09-13 15:03:24 UTC (rev 128461)
@@ -1,196 +0,0 @@
-/*
- * Copyright (C) 2006 Nikolas Zimmermann <[email protected]>
- * Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies)
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1.  Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- * 2.  Redistributions in binary form must reproduce the above copyright
- *     notice, this list of conditions and the following disclaimer in the
- *     documentation and/or other materials provided with the distribution.
- * 3.  Neither the name of Apple Computer, Inc. ("Apple") nor the names of
- *     its contributors may be used to endorse or promote products derived
- *     from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "DumpRenderTreeQt.h"
-
-#include "QtInitializeTestFonts.h"
-
-#include <wtf/AlwaysInline.h>
-
-#include <qstringlist.h>
-#include <qapplication.h>
-#include <qurl.h>
-#include <qdir.h>
-#include <qdebug.h>
-#include <qfont.h>
-#include <qwebdatabase.h>
-#include <qtimer.h>
-#include <qwindowsstyle.h>
-
-#ifdef Q_WS_X11
-#include <qx11info_x11.h>
-#endif
-
-#ifdef Q_OS_WIN
-#include <io.h>
-#include <fcntl.h>
-#endif
-
-#include <limits.h>
-
-#include <wtf/ExportMacros.h>
-#include <wtf/Assertions.h>
-
-void messageHandler(QtMsgType type, const char *message)
-{
-    if (type == QtCriticalMsg) {
-        fprintf(stderr, "%s\n", message);
-        return;
-    }
-    // do nothing
-}
-
-// We only support -v or --stdout or --stderr or -, all the others will be
-// pass as test case name (even -abc.html is a valid test case name)
-bool isOption(const QString& str)
-{
-    return str == QString("-v")
-           || str == QString("--stdout") || str == QString("--stderr")
-           || str == QString("--timeout") || str == QString("--no-timeout")
-           || str == QString("-");
-}
-
-QString takeOptionValue(QStringList& arguments, int index)
-{
-    QString result;
-
-    if (index + 1 < arguments.count() && !isOption(arguments.at(index + 1)))
-        result = arguments.takeAt(index + 1);
-    arguments.removeAt(index);
-
-    return result;
-}
-
-void printUsage()
-{
-    fprintf(stderr, "Usage: DumpRenderTree [-v] [--stdout output_filename] [-stderr error_filename] [--no-timeout] [--timeout timeout_MS] filename [filename2..n]\n");
-    fprintf(stderr, "Or folder containing test files: DumpRenderTree [-v] dirpath\n");
-    fflush(stderr);
-}
-
-int main(int argc, char* argv[])
-{
-#ifdef Q_OS_WIN
-    _setmode(1, _O_BINARY);
-    _setmode(2, _O_BINARY);
-#endif
-
-    // Suppress debug output from Qt if not started with -v
-    bool suppressQtDebugOutput = true;
-    for (int i = 1; i < argc; ++i) {
-        if (!qstrcmp(argv[i], "-v")) {
-            suppressQtDebugOutput = false;
-            break;
-        }
-    }
-
-    // Has to be done before QApplication is constructed in case
-    // QApplication itself produces debug output.
-    if (suppressQtDebugOutput)
-        qInstallMsgHandler(messageHandler);
-
-    WebKit::initializeTestFonts();
-
-    QApplication::setStyle(new QWindowsStyle);
-    QApplication::setDesktopSettingsAware(false);
-
-    QApplication app(argc, argv);
-    app.setQuitOnLastWindowClosed(false);
-
-    QCoreApplication::setAttribute(Qt::AA_Use96Dpi, true);
-
-    WTFInstallReportBacktraceOnCrashHook();
-
-    QStringList args = app.arguments();
-    if (args.count() < (!suppressQtDebugOutput ? 3 : 2)) {
-        printUsage();
-        exit(1);
-    }
-
-    // Remove the first arguments, it is application name itself
-    args.removeAt(0);
-
-    WebCore::DumpRenderTree dumper;
-
-    int index = args.indexOf(QLatin1String("--stdout"));
-    if (index != -1) {
-        QString fileName = takeOptionValue(args, index);
-        dumper.setRedirectOutputFileName(fileName);
-        if (fileName.isEmpty() || !freopen(qPrintable(fileName), "w", stdout)) {
-            fprintf(stderr, "STDOUT redirection failed.");
-            exit(1);
-        }
-    }
-    index = args.indexOf(QLatin1String("--stderr"));
-    if (index != -1) {
-        QString fileName = takeOptionValue(args, index);
-        dumper.setRedirectErrorFileName(fileName);
-        if (!freopen(qPrintable(fileName), "w", stderr)) {
-            fprintf(stderr, "STDERR redirection failed.");
-            exit(1);
-        }
-    }
-    QWebDatabase::removeAllDatabases();
-
-    index = args.indexOf(QLatin1String("--timeout"));
-    if (index != -1) {
-        int timeout = takeOptionValue(args, index).toInt();
-        dumper.setTimeout(timeout);
-    }
-
-    index = args.indexOf(QLatin1String("--no-timeout"));
-    if (index != -1) {
-        dumper.setShouldTimeout(false);
-        args.removeAt(index);
-    }
-
-    index = args.indexOf(QLatin1String("-"));
-    if (index != -1) {
-        args.removeAt(index);
-
-        // Continue waiting in STDIN for more test case after process one test case
-        QObject::connect(&dumper, SIGNAL(ready()), &dumper, SLOT(readLine()), Qt::QueuedConnection);   
-
-        // Read and only read the first test case, ignore the others 
-        if (args.size() > 0) { 
-            // Process the argument first
-            dumper.processLine(args[0]);
-        } else
-           QTimer::singleShot(0, &dumper, SLOT(readLine()));
-    } else {
-        // Go into standalone mode
-        // Standalone mode need at least one test case
-        if (args.count() < 1) {
-            printUsage();
-            exit(1);
-        }
-        dumper.processArgsLine(args);
-    }
-    return app.exec();
-}
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to