print project errors after all. sometimes.
authorOswald Buddenhagen <oswald.buddenhagen@digia.com>
Mon, 2 Sep 2013 14:43:49 +0000 (16:43 +0200)
committerThe Qt Project <gerrit-noreply@qt-project.org>
Wed, 4 Sep 2013 09:47:27 +0000 (11:47 +0200)
we evaluate prf files precisely, so we need to see their errors, as they
may give a hint why they terminated prematurely.
however, we prefix the errors with "WARNING:" to make them less scary.

Change-Id: Ia14953a5a9dc31af56ad6c338017dd5b85bb4494
Reviewed-by: hjk <hjk121@nokiamail.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
src/linguist/lrelease/main.cpp
src/linguist/lupdate/main.cpp
src/linguist/shared/qmakebuiltins.cpp
src/linguist/shared/qmakeevaluator.h
src/linguist/shared/qmakeparser.h

index 3239d47..26d9c89 100644 (file)
@@ -209,7 +209,13 @@ public:
             print(fileName, lineNo, msg);
     }
 
-    virtual void fileMessage(const QString &) {}
+    virtual void fileMessage(int type, const QString &msg)
+    {
+        if (verbose && !(type & CumulativeEvalMessage) && (type & CategoryMask) == ErrorMessage) {
+            // "Downgrade" errors, as we don't really care for them
+            printErr(QLatin1String("WARNING: ") + msg + QLatin1Char('\n'));
+        }
+    }
 
     virtual void aboutToEval(ProFile *, ProFile *, EvalFileType) {}
     virtual void doneWithEval(ProFile *) {}
index 74eab78..001841b 100644 (file)
@@ -252,7 +252,13 @@ public:
             print(fileName, lineNo, msg);
     }
 
-    virtual void fileMessage(const QString &) {}
+    virtual void fileMessage(int type, const QString &msg)
+    {
+        if (verbose && !(type & CumulativeEvalMessage) && (type & CategoryMask) == ErrorMessage) {
+            // "Downgrade" errors, as we don't really care for them
+            printErr(QLatin1String("WARNING: ") + msg + QLatin1Char('\n'));
+        }
+    }
 
     virtual void aboutToEval(ProFile *, ProFile *, EvalFileType) {}
     virtual void doneWithEval(ProFile *) {}
index 4712df5..8750b76 100644 (file)
@@ -1360,8 +1360,12 @@ QMakeEvaluator::VisitReturn QMakeEvaluator::evaluateBuiltinConditional(
                 fputs(msg.toLatin1().constData(), stderr);
 #endif
             } else {
-                m_handler->fileMessage(fL1S("Project %1: %2")
-                                       .arg(function.toQString(m_tmp1).toUpper(), msg));
+                m_handler->fileMessage(
+                        (func_t == T_ERROR   ? QMakeHandler::ErrorMessage :
+                         func_t == T_WARNING ? QMakeHandler::WarningMessage :
+                                               QMakeHandler::InfoMessage)
+                        | (m_cumulative ? QMakeHandler::CumulativeEvalMessage : 0),
+                        fL1S("Project %1: %2").arg(function.toQString(m_tmp1).toUpper(), msg));
             }
         }
         return (func_t == T_ERROR && !m_cumulative) ? ReturnError : ReturnTrue;
index 13198c3..8a10722 100644 (file)
@@ -73,6 +73,8 @@ public:
     enum {
         SourceEvaluator = 0x10,
 
+        CumulativeEvalMessage = 0x1000,
+
         EvalWarnLanguage = SourceEvaluator |  WarningMessage | WarnLanguage,
         EvalWarnDeprecated = SourceEvaluator | WarningMessage | WarnDeprecated,
 
@@ -80,7 +82,7 @@ public:
     };
 
     // error(), warning() and message() from .pro file
-    virtual void fileMessage(const QString &msg) = 0;
+    virtual void fileMessage(int type, const QString &msg) = 0;
 
     enum EvalFileType { EvalProjectFile, EvalIncludeFile, EvalConfigFile, EvalFeatureFile, EvalAuxFile };
     virtual void aboutToEval(ProFile *parent, ProFile *proFile, EvalFileType type) = 0;
index dd55659..15897cf 100644 (file)
@@ -58,8 +58,9 @@ class QMAKE_EXPORT QMakeParserHandler
 public:
     enum {
         CategoryMask = 0xf00,
-        WarningMessage = 0x000,
-        ErrorMessage = 0x100,
+        InfoMessage = 0x100,
+        WarningMessage = 0x200,
+        ErrorMessage = 0x300,
 
         SourceMask = 0xf0,
         SourceParser = 0,