diff options
author | Christian Kandeler <christian.kandeler@qt.io> | 2018-07-06 14:43:19 +0200 |
---|---|---|
committer | Christian Kandeler <christian.kandeler@qt.io> | 2018-07-11 12:51:49 +0000 |
commit | 2d1de8cc84b258174b2dc0a8080f549cd9b59b32 (patch) | |
tree | 10c36704a37d3f40932aec3fa03ca1c97d219dd1 /src/lib/corelib/jsextensions | |
parent | 1a11801fe60feb29326b2cb2f3e40a939ba6f0d6 (diff) |
Do not generally re-apply rules just because inputs have changed
Only a small minority of rules determines their outputs based on the
content of their inputs. In order to do that, they need to do file I/O
in their outputArtifacts scripts, for instance via qbs.TextFile or
qbs.Process. All rules that don't do that do not need to get re-applied
if an input changes.
Change-Id: Icc713a54de4f60b3ef5dca523da5bfe42cc7e176
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
Diffstat (limited to 'src/lib/corelib/jsextensions')
-rw-r--r-- | src/lib/corelib/jsextensions/binaryfile.cpp | 1 | ||||
-rw-r--r-- | src/lib/corelib/jsextensions/domxml.cpp | 3 | ||||
-rw-r--r-- | src/lib/corelib/jsextensions/process.cpp | 1 | ||||
-rw-r--r-- | src/lib/corelib/jsextensions/textfile.cpp | 1 |
4 files changed, 6 insertions, 0 deletions
diff --git a/src/lib/corelib/jsextensions/binaryfile.cpp b/src/lib/corelib/jsextensions/binaryfile.cpp index eb8497e6f..a2c095dcb 100644 --- a/src/lib/corelib/jsextensions/binaryfile.cpp +++ b/src/lib/corelib/jsextensions/binaryfile.cpp @@ -115,6 +115,7 @@ QScriptValue BinaryFile::ctor(QScriptContext *context, QScriptEngine *engine) DubiousContext(EvalContext::PropertyEvaluation, DubiousContext::SuggestMoving) }; se->checkContext(QLatin1String("qbs.BinaryFile"), dubiousContexts); + se->setUsesIo(); return engine->newQObject(t, QScriptEngine::QtOwnership); } diff --git a/src/lib/corelib/jsextensions/domxml.cpp b/src/lib/corelib/jsextensions/domxml.cpp index 09acccbab..347080906 100644 --- a/src/lib/corelib/jsextensions/domxml.cpp +++ b/src/lib/corelib/jsextensions/domxml.cpp @@ -38,6 +38,8 @@ ** ****************************************************************************/ +#include <language/scriptengine.h> + #include <QtCore/qfile.h> #include <QtCore/qobject.h> #include <QtCore/qvariant.h> @@ -132,6 +134,7 @@ QScriptValue XmlDomDocument::ctor(QScriptContext *context, QScriptEngine *engine return context->throwError(QLatin1String("DomXml(QString file = QLatin1String(\"\"))")); } QScriptValue obj = engine->newQObject(xml, QScriptEngine::ScriptOwnership); + static_cast<ScriptEngine *>(engine)->setUsesIo(); return obj; } diff --git a/src/lib/corelib/jsextensions/process.cpp b/src/lib/corelib/jsextensions/process.cpp index ced69a3e6..1c714fe64 100644 --- a/src/lib/corelib/jsextensions/process.cpp +++ b/src/lib/corelib/jsextensions/process.cpp @@ -135,6 +135,7 @@ QScriptValue Process::ctor(QScriptContext *context, QScriptEngine *engine) t->m_environment = QProcessEnvironment(*reinterpret_cast<QProcessEnvironment*>(v.value<void*>())); } + se->setUsesIo(); return obj; } diff --git a/src/lib/corelib/jsextensions/textfile.cpp b/src/lib/corelib/jsextensions/textfile.cpp index e52fb9daf..0ba3c80ef 100644 --- a/src/lib/corelib/jsextensions/textfile.cpp +++ b/src/lib/corelib/jsextensions/textfile.cpp @@ -125,6 +125,7 @@ QScriptValue TextFile::ctor(QScriptContext *context, QScriptEngine *engine) DubiousContext(EvalContext::PropertyEvaluation, DubiousContext::SuggestMoving) }); se->checkContext(QLatin1String("qbs.TextFile"), dubiousContexts); + se->setUsesIo(); return engine->newQObject(t, QScriptEngine::QtOwnership); } |