diff options
Diffstat (limited to 'src/lib/corelib/jsextensions/utilitiesextension.cpp')
-rw-r--r-- | src/lib/corelib/jsextensions/utilitiesextension.cpp | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/src/lib/corelib/jsextensions/utilitiesextension.cpp b/src/lib/corelib/jsextensions/utilitiesextension.cpp index 1463438fc..5155545f2 100644 --- a/src/lib/corelib/jsextensions/utilitiesextension.cpp +++ b/src/lib/corelib/jsextensions/utilitiesextension.cpp @@ -71,6 +71,8 @@ class UtilitiesExtension : public QObject, QScriptable public: static QScriptValue js_ctor(QScriptContext *context, QScriptEngine *engine); static QScriptValue js_canonicalArchitecture(QScriptContext *context, QScriptEngine *engine); + static QScriptValue js_canonicalTargetArchitecture(QScriptContext *context, + QScriptEngine *engine); static QScriptValue js_canonicalToolchain(QScriptContext *context, QScriptEngine *engine); static QScriptValue js_getHash(QScriptContext *context, QScriptEngine *engine); static QScriptValue js_getNativeSetting(QScriptContext *context, QScriptEngine *engine); @@ -92,6 +94,9 @@ void initializeJsExtensionUtilities(QScriptValue extensionObject) engine->newFunction(&UtilitiesExtension::js_ctor)); environmentObj.setProperty(QStringLiteral("canonicalArchitecture"), engine->newFunction(UtilitiesExtension::js_canonicalArchitecture, 1)); + environmentObj.setProperty(QStringLiteral("canonicalTargetArchitecture"), + engine->newFunction( + UtilitiesExtension::js_canonicalTargetArchitecture, 4)); environmentObj.setProperty(QStringLiteral("canonicalToolchain"), engine->newFunction(UtilitiesExtension::js_canonicalToolchain)); environmentObj.setProperty(QStringLiteral("getHash"), @@ -121,6 +126,25 @@ QScriptValue UtilitiesExtension::js_ctor(QScriptContext *context, QScriptEngine return context->throwError(Tr::tr("'Utilities' cannot be instantiated.")); } +QScriptValue UtilitiesExtension::js_canonicalTargetArchitecture(QScriptContext *context, + QScriptEngine *engine) +{ + const QScriptValue arch = context->argument(0); + if (arch.isUndefined() || arch.isNull()) + return arch; + + const QScriptValue vendor = context->argument(1); + const QScriptValue system = context->argument(2); + const QScriptValue abi = context->argument(3); + + if (!arch.isString() || !vendor.isString() || !system.isString() || !abi.isString()) + return context->throwError(QScriptContext::SyntaxError, + QStringLiteral("canonicalTargetArchitecture expects 1 to 4 arguments of type string")); + + return engine->toScriptValue(canonicalTargetArchitecture(arch.toString(), vendor.toString(), + system.toString(), abi.toString())); +} + QScriptValue UtilitiesExtension::js_canonicalArchitecture(QScriptContext *context, QScriptEngine *engine) { |