make lupdate compilable without qml/js support
authorCorentin Jabot <corentinjabot@gmail.com>
Fri, 27 Jul 2012 16:00:18 +0000 (18:00 +0200)
committerQt by Nokia <qt-info@nokia.com>
Mon, 30 Jul 2012 13:31:53 +0000 (15:31 +0200)
In case the declarative module is not present.

Change-Id: I2652b245506e2a04c4e588f62de2a39ebf652677
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
src/linguist/lupdate/lupdate.h
src/linguist/lupdate/lupdate.pro
src/linguist/lupdate/main.cpp

index 796e0a3..cb9f8bf 100644 (file)
@@ -77,9 +77,12 @@ Translator merge(const Translator &tor, const Translator &virginTor,
 void fetchtrInlinedCpp(const QString &in, Translator &translator, const QString &context);
 void loadCPP(Translator &translator, const QStringList &filenames, ConversionData &cd);
 bool loadJava(Translator &translator, const QString &filename, ConversionData &cd);
-bool loadQScript(Translator &translator, const QString &filename, ConversionData &cd);
 bool loadUI(Translator &translator, const QString &filename, ConversionData &cd);
+
+#ifndef QT_NO_QML
+bool loadQScript(Translator &translator, const QString &filename, ConversionData &cd);
 bool loadQml(Translator &translator, const QString &filename, ConversionData &cd);
+#endif
 
 QT_END_NAMESPACE
 
index 36b7fe4..a40005d 100644 (file)
@@ -2,7 +2,14 @@ load(qt_build_config)
 
 DESTDIR = $$QT.designer.bins
 
-QT = core-private qmldevtools-private
+QT = core-private
+
+!isEmpty(QT.declarative.name) {
+    QT += qmldevtools-private
+} else {
+    DEFINES += QT_NO_QML
+}
+
 DEFINES += QT_NO_CAST_TO_ASCII QT_NO_CAST_FROM_ASCII
 
 include(../shared/formats.pri)
@@ -15,9 +22,10 @@ SOURCES += \
     \
     cpp.cpp \
     java.cpp \
-    qdeclarative.cpp \
     ui.cpp
 
+!isEmpty(QT.declarative.name): SOURCES += qdeclarative.cpp
+
 HEADERS += \
     lupdate.h \
     ../shared/simtexth.h
index 7ae3fe6..a90e112 100644 (file)
@@ -302,6 +302,9 @@ static QStringList getSources(const ProFileEvaluator &visitor, const QString &pr
 static void processSources(Translator &fetchedTor,
                            const QStringList &sourceFiles, ConversionData &cd)
 {
+#ifdef QT_NO_QML
+    bool requireQmlSupport = false;
+#endif
     QStringList sourceFilesCpp;
     for (QStringList::const_iterator it = sourceFiles.begin(); it != sourceFiles.end(); ++it) {
         if (it->endsWith(QLatin1String(".java"), Qt::CaseInsensitive))
@@ -309,14 +312,27 @@ static void processSources(Translator &fetchedTor,
         else if (it->endsWith(QLatin1String(".ui"), Qt::CaseInsensitive)
                  || it->endsWith(QLatin1String(".jui"), Qt::CaseInsensitive))
             loadUI(fetchedTor, *it, cd);
+#ifndef QT_NO_QML
         else if (it->endsWith(QLatin1String(".js"), Qt::CaseInsensitive)
                  || it->endsWith(QLatin1String(".qs"), Qt::CaseInsensitive))
             loadQScript(fetchedTor, *it, cd);
         else if (it->endsWith(QLatin1String(".qml"), Qt::CaseInsensitive))
             loadQml(fetchedTor, *it, cd);
+#else
+        else if (it->endsWith(QLatin1String(".qml"), Qt::CaseInsensitive)
+                 || it->endsWith(QLatin1String(".js"), Qt::CaseInsensitive)
+                 || it->endsWith(QLatin1String(".qs"), Qt::CaseInsensitive))
+            requireQmlSupport = true;
+#endif // QT_NO_QML
         else
             sourceFilesCpp << *it;
     }
+
+#ifdef QT_NO_QML
+    if (requireQmlSupport)
+        printErr(LU::tr("lupdate warning: Some files have been ignored due to missing qml/javascript support\n"));
+#endif
+
     loadCPP(fetchedTor, sourceFilesCpp, cd);
     if (!cd.error().isEmpty())
         printErr(cd.error());