aboutsummaryrefslogtreecommitdiffstats
path: root/tools/qmlcachegen
diff options
context:
space:
mode:
authorSimon Hausmann <simon.hausmann@qt.io>2017-01-30 15:40:42 +0100
committerSimon Hausmann <simon.hausmann@qt.io>2017-02-01 11:52:40 +0000
commit835f8a90387c8d62e7ab262d23e3ab103aa6d133 (patch)
treeb697ebf83658dc8cb198526bc85d8ba38c83cf35 /tools/qmlcachegen
parent9d890a575ce32f97d0b4a9272198e35d047cd3f6 (diff)
Allow selecting armv7 as target architecture in qmlcachegen
Change-Id: I36e8f95e83ea3de6553145efc762e3bc46f60071 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
Diffstat (limited to 'tools/qmlcachegen')
-rw-r--r--tools/qmlcachegen/qmlcache.prf5
-rw-r--r--tools/qmlcachegen/qmlcachegen.cpp20
-rw-r--r--tools/qmlcachegen/qmlcachegen.pro2
3 files changed, 22 insertions, 5 deletions
diff --git a/tools/qmlcachegen/qmlcache.prf b/tools/qmlcachegen/qmlcache.prf
index f151218811..fed9f0d2f3 100644
--- a/tools/qmlcachegen/qmlcache.prf
+++ b/tools/qmlcachegen/qmlcache.prf
@@ -1,8 +1,11 @@
qtPrepareTool(QML_CACHEGEN, qmlcachegen)
+!isEmpty(QT_TARGET_ARCH):QML_CACHEGEN_ARCH=$$QT_TARGET_ARCH
+else:QML_CACHEGEN_ARCH=$$QT_ARCH
+
qmlcachegen.input = QML_FILES
qmlcachegen.output = ${QMAKE_FILE_IN}c
-qmlcachegen.commands = $$QML_CACHEGEN ${QMAKE_FILE_IN}
+qmlcachegen.commands = $$QML_CACHEGEN --target-architecture=$$QML_CACHEGEN_ARCH ${QMAKE_FILE_IN}
qmlcachegen.name = Generate QML Cache ${QMAKE_FILE_IN}
qmlcachegen.variable_out = AUX_QML_FILES
diff --git a/tools/qmlcachegen/qmlcachegen.cpp b/tools/qmlcachegen/qmlcachegen.cpp
index 21ff882c2f..4b902eda0f 100644
--- a/tools/qmlcachegen/qmlcachegen.cpp
+++ b/tools/qmlcachegen/qmlcachegen.cpp
@@ -39,6 +39,11 @@
QT_BEGIN_NAMESPACE
extern Q_CORE_EXPORT QBasicAtomicInt qt_qhash_seed;
+
+namespace QV4 { namespace JIT {
+Q_QML_EXPORT QV4::EvalISelFactory *createISelForArchitecture(const QString &architecture);
+} }
+
QT_END_NAMESPACE
struct Error
@@ -261,6 +266,9 @@ int main(int argc, char **argv)
parser.addHelpOption();
parser.addVersionOption();
+ QCommandLineOption targetArchitectureOption(QStringLiteral("target-architecture"), QCoreApplication::translate("main", "Target architecture"), QCoreApplication::translate("main", "architecture"));
+ parser.addOption(targetArchitectureOption);
+
parser.addPositionalArgument(QStringLiteral("[qml file]"),
QStringLiteral("QML source file to generate cache for."));
@@ -273,17 +281,23 @@ int main(int argc, char **argv)
}
const QString inputFile = sources.first();
- QV4::Moth::ISelFactory interpreterISelFactory;
+ QScopedPointer<QV4::EvalISelFactory> isel;
+ const QString targetArchitecture = parser.value(targetArchitectureOption);
+
+ isel.reset(QV4::JIT::createISelForArchitecture(targetArchitecture));
+
+ if (!isel)
+ isel.reset(new QV4::Moth::ISelFactory);
Error error;
if (inputFile.endsWith(QLatin1String(".qml"))) {
- if (!compileQmlFile(inputFile, &interpreterISelFactory, &error)) {
+ if (!compileQmlFile(inputFile, isel.data(), &error)) {
error.augment(QLatin1String("Error compiling qml file: ")).print();
return EXIT_FAILURE;
}
} else if (inputFile.endsWith(QLatin1String(".js"))) {
- if (!compileJSFile(inputFile, &interpreterISelFactory, &error)) {
+ if (!compileJSFile(inputFile, isel.data(), &error)) {
error.augment(QLatin1String("Error compiling qml file: ")).print();
return EXIT_FAILURE;
}
diff --git a/tools/qmlcachegen/qmlcachegen.pro b/tools/qmlcachegen/qmlcachegen.pro
index 48e08b0946..81783d0396 100644
--- a/tools/qmlcachegen/qmlcachegen.pro
+++ b/tools/qmlcachegen/qmlcachegen.pro
@@ -13,7 +13,7 @@ BUILD_INTEGRATION = qmlcache.prf
qmake_integration.commands = $$QMAKE_COPY ${QMAKE_FILE_IN} ${QMAKE_FILE_OUT}
qmake_integration.name = COPY ${QMAKE_FILE_IN} ${QMAKE_FILE_OUT}
qmake_integration.CONFIG = no_clean no_link
- !contains(TEMPLATE, vc.*): qmake_integration.variable_out = PRE_TARGETDEPS
+ !contains(TEMPLATE, vc.*): qmake_integration.variable_out = GENERATED_FILES
QMAKE_EXTRA_COMPILERS += qmake_integration
}