aboutsummaryrefslogtreecommitdiffstats
path: root/src/lib/corelib/buildgraph/rulecommands.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/corelib/buildgraph/rulecommands.h')
-rw-r--r--src/lib/corelib/buildgraph/rulecommands.h29
1 files changed, 16 insertions, 13 deletions
diff --git a/src/lib/corelib/buildgraph/rulecommands.h b/src/lib/corelib/buildgraph/rulecommands.h
index d4d70d591..7b08d1015 100644
--- a/src/lib/corelib/buildgraph/rulecommands.h
+++ b/src/lib/corelib/buildgraph/rulecommands.h
@@ -47,14 +47,15 @@
#include <tools/persistence.h>
#include <tools/set.h>
+#include <quickjs.h>
+
#include <QtCore/qprocess.h>
#include <QtCore/qstringlist.h>
#include <QtCore/qvariant.h>
-#include <QtScript/qscriptvalue.h>
-
namespace qbs {
namespace Internal {
+class ScriptEngine;
class AbstractCommand
{
@@ -75,7 +76,8 @@ public:
virtual CommandType type() const = 0;
virtual bool equals(const AbstractCommand *other) const;
- virtual void fillFromScriptValue(const QScriptValue *scriptValue, const CodeLocation &codeLocation);
+ virtual void fillFromScriptValue(JSContext *ctx, const JSValue *scriptValue,
+ const CodeLocation &codeLocation);
QString fullDescription(const QString &productName) const;
const QString description() const { return m_description; }
@@ -94,7 +96,7 @@ public:
protected:
AbstractCommand();
- void applyCommandProperties(const QScriptValue *scriptValue);
+ void applyCommandProperties(JSContext *ctx, const JSValue *scriptValue);
Set<QString> m_predefinedProperties;
@@ -121,11 +123,11 @@ class ProcessCommand : public AbstractCommand
{
public:
static ProcessCommandPtr create() { return ProcessCommandPtr(new ProcessCommand); }
- static void setupForJavaScript(QScriptValue targetObject);
+ static void setupForJavaScript(ScriptEngine *engine, JSValue targetObject);
CommandType type() const override { return ProcessCommandType; }
bool equals(const AbstractCommand *otherAbstractCommand) const override;
- void fillFromScriptValue(const QScriptValue *scriptValue,
+ void fillFromScriptValue(JSContext *ctx, const JSValue *scriptValue,
const CodeLocation &codeLocation) override;
const QString program() const { return m_program; }
const QStringList arguments() const { return m_arguments; }
@@ -136,6 +138,7 @@ public:
int responseFileThreshold() const { return m_responseFileThreshold; }
int responseFileArgumentIndex() const { return m_responseFileArgumentIndex; }
QString responseFileUsagePrefix() const { return m_responseFileUsagePrefix; }
+ QString responseFileSeparator() const { return m_responseFileSeparator; }
QProcessEnvironment environment() const { return m_environment; }
QStringList relevantEnvVars() const;
void clearRelevantEnvValues() { m_relevantEnvValues.clear(); }
@@ -158,10 +161,10 @@ private:
{
pool.serializationOp<opType>(m_program, m_arguments, m_environment, m_workingDir,
m_stdoutFilterFunction, m_stderrFilterFunction,
- m_responseFileUsagePrefix, m_maxExitCode,
- m_responseFileThreshold, m_responseFileArgumentIndex,
- m_relevantEnvVars, m_relevantEnvValues, m_stdoutFilePath,
- m_stderrFilePath);
+ m_responseFileUsagePrefix, m_responseFileSeparator,
+ m_maxExitCode, m_responseFileThreshold,
+ m_responseFileArgumentIndex, m_relevantEnvVars,
+ m_relevantEnvValues, m_stdoutFilePath, m_stderrFilePath);
}
QString m_program;
@@ -173,6 +176,7 @@ private:
int m_responseFileThreshold; // When to use response files? In bytes of (program name + arguments).
int m_responseFileArgumentIndex;
QString m_responseFileUsagePrefix;
+ QString m_responseFileSeparator;
QProcessEnvironment m_environment;
QStringList m_relevantEnvVars;
QProcessEnvironment m_relevantEnvValues;
@@ -184,16 +188,15 @@ class JavaScriptCommand : public AbstractCommand
{
public:
static JavaScriptCommandPtr create() { return JavaScriptCommandPtr(new JavaScriptCommand); }
- static void setupForJavaScript(QScriptValue targetObject);
+ static void setupForJavaScript(ScriptEngine *engine, JSValue targetObject);
CommandType type() const override { return JavaScriptCommandType; }
bool equals(const AbstractCommand *otherAbstractCommand) const override;
- void fillFromScriptValue(const QScriptValue *scriptValue,
+ void fillFromScriptValue(JSContext *ctx, const JSValue *scriptValue,
const CodeLocation &codeLocation) override;
const QString &scopeName() const { return m_scopeName; }
const QString &sourceCode() const { return m_sourceCode; }
- void setSourceCode(const QString &str) { m_sourceCode = str; }
void load(PersistentPool &pool) override;
void store(PersistentPool &pool) override;