diff options
author | Simon Hausmann <simon.hausmann@qt.io> | 2017-04-07 14:48:56 +0200 |
---|---|---|
committer | Simon Hausmann <simon.hausmann@qt.io> | 2017-04-07 12:53:23 +0000 |
commit | 017350a8a9b4ac866c9b79186bf5a1dd6f6f06ec (patch) | |
tree | f98070d9bf0bd5659d34355b5eb9647637874187 /tools | |
parent | b361a59c699fca02379c149cf0b9c59490a1ba62 (diff) | |
parent | 67d1d7843ab5e1c904c8f0f76eadb9fc3f1bbb17 (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.cpp | 4 | ||||
-rw-r--r-- | tools/qmlcachegen/qmlcache.prf | 5 | ||||
-rw-r--r-- | tools/qmlcachegen/qmlcachegen.cpp | 23 | ||||
-rw-r--r-- | tools/tools.pro | 5 |
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 += \ |