aboutsummaryrefslogtreecommitdiffstats
path: root/tools
diff options
context:
space:
mode:
authorSimon Hausmann <simon.hausmann@qt.io>2017-04-07 14:48:56 +0200
committerSimon Hausmann <simon.hausmann@qt.io>2017-04-07 12:53:23 +0000
commit017350a8a9b4ac866c9b79186bf5a1dd6f6f06ec (patch)
treef98070d9bf0bd5659d34355b5eb9647637874187 /tools
parentb361a59c699fca02379c149cf0b9c59490a1ba62 (diff)
parent67d1d7843ab5e1c904c8f0f76eadb9fc3f1bbb17 (diff)
Merge remote-tracking branch 'origin/5.9' into dev
Conflicts: src/qml/jit/qv4assembler.cpp src/qml/jit/qv4assembler_p.h src/qml/jit/qv4isel_masm.cpp src/qml/jsruntime/qv4vme_moth.cpp Change-Id: I865d794e550a263387a39ca8d051ebf48b70cbc0
Diffstat (limited to 'tools')
-rw-r--r--tools/qml/main.cpp4
-rw-r--r--tools/qmlcachegen/qmlcache.prf5
-rw-r--r--tools/qmlcachegen/qmlcachegen.cpp23
-rw-r--r--tools/tools.pro5
4 files changed, 27 insertions, 10 deletions
diff --git a/tools/qml/main.cpp b/tools/qml/main.cpp
index 53dd35da07..3b20fba5d4 100644
--- a/tools/qml/main.cpp
+++ b/tools/qml/main.cpp
@@ -55,7 +55,9 @@
#include <QLibraryInfo>
#include <qqml.h>
#include <qqmldebug.h>
+#if QT_CONFIG(animation)
#include <private/qabstractanimation_p.h>
+#endif
#include <cstdio>
#include <cstring>
@@ -476,10 +478,12 @@ int main(int argc, char *argv[])
break;
else if (arg == QLatin1String("-verbose"))
verboseMode = true;
+#if QT_CONFIG(animation)
else if (arg == QLatin1String("-slow-animations"))
QUnifiedTimer::instance()->setSlowModeEnabled(true);
else if (arg == QLatin1String("-fixed-animations"))
QUnifiedTimer::instance()->setConsistentTiming(true);
+#endif
else if (arg == QLatin1String("-I")) {
if (i+1 == argList.count())
continue;//Invalid usage, but just ignore it
diff --git a/tools/qmlcachegen/qmlcache.prf b/tools/qmlcachegen/qmlcache.prf
index 31c18a231b..4470db0d09 100644
--- a/tools/qmlcachegen/qmlcache.prf
+++ b/tools/qmlcachegen/qmlcache.prf
@@ -10,7 +10,10 @@ isEmpty(TARGETPATH): error("Must set TARGETPATH (QML import name) for ahead-of-t
!isEmpty(QT_TARGET_ARCH):QML_CACHEGEN_ARCH=$$QT_TARGET_ARCH
else:QML_CACHEGEN_ARCH=$$QT_ARCH
-QML_CACHEGEN_ARGS=--target-architecture=$$QML_CACHEGEN_ARCH
+!isEmpty(QT_TARGET_BUILDABI):QML_CACHEGEN_ABI=$$QT_TARGET_BUILDABI
+else:QML_CACHEGEN_ABI=$$QT_BUILDABI
+
+QML_CACHEGEN_ARGS=--target-architecture=$$QML_CACHEGEN_ARCH --target-abi=$$QML_CACHEGEN_ABI
!system($$QML_CACHEGEN_ARCH_CHECK $$QML_CACHEGEN_ARGS --check-if-supported) {
message("QML cache generation requested but target architecture $$QML_CACHEGEN_ARCH is not supported.")
diff --git a/tools/qmlcachegen/qmlcachegen.cpp b/tools/qmlcachegen/qmlcachegen.cpp
index f24ec40184..b201176d5e 100644
--- a/tools/qmlcachegen/qmlcachegen.cpp
+++ b/tools/qmlcachegen/qmlcachegen.cpp
@@ -37,6 +37,7 @@
#include <private/qqmlirbuilder_p.h>
#include <private/qv4isel_moth_p.h>
#include <private/qqmljsparser_p.h>
+#include <private/qv4jssimplifier_p.h>
QT_BEGIN_NAMESPACE
@@ -113,9 +114,10 @@ static void annotateListElements(QmlIR::Document *document)
}
}
-static bool compileQmlFile(const QString &inputFileName, const QString &outputFileName, QV4::EvalISelFactory *iselFactory, Error *error)
+static bool compileQmlFile(const QString &inputFileName, const QString &outputFileName, QV4::EvalISelFactory *iselFactory, const QString &targetABI, Error *error)
{
QmlIR::Document irDocument(/*debugMode*/false);
+ irDocument.jsModule.targetABI = targetABI;
QString sourceCode;
{
@@ -173,7 +175,10 @@ static bool compileQmlFile(const QString &inputFileName, const QString &outputFi
QmlIR::QmlUnitGenerator generator;
- // ### translation binding simplification
+ {
+ QQmlJavaScriptBindingExpressionSimplificationPass pass(irDocument.objects, &irDocument.jsModule, &irDocument.jsGenerator);
+ pass.reduceTranslationBindings();
+ }
QV4::ExecutableAllocator allocator;
QScopedPointer<QV4::EvalInstructionSelection> isel(iselFactory->create(/*engine*/nullptr, &allocator, &irDocument.jsModule, &irDocument.jsGenerator));
@@ -193,9 +198,10 @@ static bool compileQmlFile(const QString &inputFileName, const QString &outputFi
return true;
}
-static bool compileJSFile(const QString &inputFileName, const QString &outputFileName, QV4::EvalISelFactory *iselFactory, Error *error)
+static bool compileJSFile(const QString &inputFileName, const QString &outputFileName, QV4::EvalISelFactory *iselFactory, const QString &targetABI, Error *error)
{
QmlIR::Document irDocument(/*debugMode*/false);
+ irDocument.jsModule.targetABI = targetABI;
QString sourceCode;
{
@@ -262,8 +268,6 @@ static bool compileJSFile(const QString &inputFileName, const QString &outputFil
QmlIR::QmlUnitGenerator generator;
- // ### translation binding simplification
-
QV4::ExecutableAllocator allocator;
QScopedPointer<QV4::EvalInstructionSelection> isel(iselFactory->create(/*engine*/nullptr, &allocator, &irDocument.jsModule, &irDocument.jsGenerator));
// Disable lookups in non-standalone (aka QML) mode
@@ -300,6 +304,9 @@ int main(int argc, char **argv)
QCommandLineOption targetArchitectureOption(QStringLiteral("target-architecture"), QCoreApplication::translate("main", "Target architecture"), QCoreApplication::translate("main", "architecture"));
parser.addOption(targetArchitectureOption);
+ QCommandLineOption targetABIOption(QStringLiteral("target-abi"), QCoreApplication::translate("main", "Target architecture binary interface"), QCoreApplication::translate("main", "abi"));
+ parser.addOption(targetABIOption);
+
QCommandLineOption outputFileOption(QStringLiteral("o"), QCoreApplication::translate("main", "Output file name"), QCoreApplication::translate("main", "file name"));
parser.addOption(outputFileOption);
@@ -347,13 +354,15 @@ int main(int argc, char **argv)
if (parser.isSet(outputFileOption))
outputFileName = parser.value(outputFileOption);
+ const QString targetABI = parser.value(targetABIOption);
+
if (inputFile.endsWith(QLatin1String(".qml"))) {
- if (!compileQmlFile(inputFile, outputFileName, isel.data(), &error)) {
+ if (!compileQmlFile(inputFile, outputFileName, isel.data(), targetABI, &error)) {
error.augment(QLatin1String("Error compiling qml file: ")).print();
return EXIT_FAILURE;
}
} else if (inputFile.endsWith(QLatin1String(".js"))) {
- if (!compileJSFile(inputFile, outputFileName, isel.data(), &error)) {
+ if (!compileJSFile(inputFile, outputFileName, isel.data(), targetABI, &error)) {
error.augment(QLatin1String("Error compiling qml file: ")).print();
return EXIT_FAILURE;
}
diff --git a/tools/tools.pro b/tools/tools.pro
index 5d9d3740ce..20a3600fb8 100644
--- a/tools/tools.pro
+++ b/tools/tools.pro
@@ -2,8 +2,9 @@ TEMPLATE = subdirs
QT_FOR_CONFIG += qml-private
SUBDIRS += \
qmlmin \
- qmlimportscanner \
- qmlcachegen
+ qmlimportscanner
+
+qtConfig(commandlineparser): SUBDIRS += qmlcachegen
!android|android_app {
SUBDIRS += \