aboutsummaryrefslogtreecommitdiffstats
path: root/src/lib/corelib/jsextensions/pkgconfigjs.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/corelib/jsextensions/pkgconfigjs.h')
-rw-r--r--src/lib/corelib/jsextensions/pkgconfigjs.h27
1 files changed, 13 insertions, 14 deletions
diff --git a/src/lib/corelib/jsextensions/pkgconfigjs.h b/src/lib/corelib/jsextensions/pkgconfigjs.h
index 462a8f2bd..7e84545a0 100644
--- a/src/lib/corelib/jsextensions/pkgconfigjs.h
+++ b/src/lib/corelib/jsextensions/pkgconfigjs.h
@@ -37,16 +37,15 @@
**
****************************************************************************/
+#include "jsextension.h"
+
#include "tools/qbs_export.h"
#include <tools/stlutils.h>
#include <pkgconfig.h>
-#include <QtCore/qobject.h>
#include <QtCore/qvariant.h>
-#include <QtScript/qscriptable.h>
-
#include <memory>
class QProcessEnvironment;
@@ -54,13 +53,10 @@ class QProcessEnvironment;
namespace qbs {
namespace Internal {
-class QBS_AUTOTEST_EXPORT PkgConfigJs : public QObject, QScriptable
+class QBS_AUTOTEST_EXPORT PkgConfigJs : public JsExtension<PkgConfigJs>
{
- Q_OBJECT
public:
-
- // can we trick moc here to avoid duplication?
- enum class FlagType {
+ enum FlagType {
LibraryName = toUnderlying(PcPackage::Flag::Type::LibraryName),
LibraryPath = toUnderlying(PcPackage::Flag::Type::LibraryPath),
StaticLibraryName = toUnderlying(PcPackage::Flag::Type::StaticLibraryName),
@@ -72,7 +68,6 @@ public:
Define = toUnderlying(PcPackage::Flag::Type::Define),
CompilerFlag = toUnderlying(PcPackage::Flag::Type::CompilerFlag),
};
- Q_ENUM(FlagType);
enum class ComparisonType {
LessThan,
@@ -83,18 +78,22 @@ public:
NotEqual,
AlwaysMatch
};
- Q_ENUM(ComparisonType);
- static QScriptValue ctor(QScriptContext *context, QScriptEngine *engine);
+ static const char *name() { return "PkgConfig"; }
+ static void declareEnums(JSContext *ctx, JSValue classObj);
+ static JSValue ctor(JSContext *ctx, JSValueConst, JSValueConst,
+ int argc, JSValueConst *argv, int);
- explicit PkgConfigJs(
- QScriptContext *context, QScriptEngine *engine, const QVariantMap &options = {});
+ explicit PkgConfigJs(JSContext *ctx, const QVariantMap &options = {});
- Q_INVOKABLE QVariantMap packages() const { return m_packages; }
+ DEFINE_JS_FORWARDER(jsPackages, &PkgConfigJs::packages, "PkgConfig.packages")
+ QVariantMap packages() const { return m_packages; }
// also used in tests
static PkgConfig::Options convertOptions(const QProcessEnvironment &env, const QVariantMap &map);
+ static void setupMethods(JSContext *ctx, JSValue obj);
+
private:
std::unique_ptr<PkgConfig> m_pkgConfig;
QVariantMap m_packages;