static Smoke* loadSmokeModule(QString moduleName) { QFileInfo file(QString("libsmoke") + moduleName); QLibrary lib(file.filePath()); if (moduleName == "qtcore") { init_qtcore_Smoke(); return qtcore_Smoke; } QString init_name = "init_" + moduleName + "_Smoke"; InitSmokeFn init = (InitSmokeFn) lib.resolve(init_name.toLatin1()); if (!init) qFatal("Couldn't resolve %s: %s", qPrintable(init_name), qPrintable(lib.errorString())); (*init)(); QString smoke_name = moduleName + "_Smoke"; Smoke** smoke = (Smoke**) lib.resolve(smoke_name.toLatin1()); if (!smoke) qFatal("Couldn't resolve %s: %s", qPrintable(smoke_name), qPrintable(lib.errorString())); return *smoke; }
void qtscript_initialize_jsmoke_qtcore_bindings(QScriptValue& extensionObject) { static bool initialized = false; if (!initialized) { init_qtcore_Smoke(); JSmoke::Module qtcore_module = { "qtcore", new JSmoke::Binding(qtcore_Smoke) }; JSmoke::Global::modules[qtcore_Smoke] = qtcore_module; JSmoke::Global::QObjectClassId = qtcore_Smoke->idClass("QObject"); JSmoke::Global::QDateClassId = qtcore_Smoke->idClass("QDate"); JSmoke::Global::QDateTimeClassId = qtcore_Smoke->idClass("QDateTime"); JSmoke::Global::QTimeClassId = qtcore_Smoke->idClass("QTime"); JSmoke::Global::QEventClassId = qtcore_Smoke->idClass("QEvent"); JSmoke::Marshall::installHandlers(JSmoke::QtCoreHandlers); JSmoke::Global::registerTypeResolver(JSmoke::Global::QEventClassId, qeventTypeResolver); JSmoke::Global::registerTypeResolver(JSmoke::Global::QObjectClassId, qobjectTypeResolver ); JSmoke::Global::startFinalizerThread(); initialized = true; } QScriptEngine* engine = extensionObject.engine(); JSmoke::Global::initializeClasses(engine, qtcore_Smoke); QScriptValue QtClass = engine->globalObject().property(QString("Qt")); JSmoke::Global::QtEnum = engine->newFunction(QtEnum_ctor); QtClass.setProperty("Enum", JSmoke::Global::QtEnum); QtClass.setProperty("Debug", engine->newFunction(Debug_ctor).call()); QScriptValue QVariantClass = engine->globalObject().property(QString("QVariant")); QVariantClass.setProperty("fromValue", engine->newFunction(QVariant_fromValue)); QVariantClass.property("prototype").setProperty("valueOf", engine->newFunction(QVariant_valueOf)); JSmoke::registerQtCoreTypes(engine); return; }
void init_qtcore_CSmoke() { init_qtcore_Smoke(); }