aboutsummaryrefslogtreecommitdiffstats
path: root/src/lib/corelib/jsextensions
diff options
context:
space:
mode:
authorChristian Kandeler <christian.kandeler@qt.io>2018-07-06 14:43:19 +0200
committerChristian Kandeler <christian.kandeler@qt.io>2018-07-11 12:51:49 +0000
commit2d1de8cc84b258174b2dc0a8080f549cd9b59b32 (patch)
tree10c36704a37d3f40932aec3fa03ca1c97d219dd1 /src/lib/corelib/jsextensions
parent1a11801fe60feb29326b2cb2f3e40a939ba6f0d6 (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.cpp1
-rw-r--r--src/lib/corelib/jsextensions/domxml.cpp3
-rw-r--r--src/lib/corelib/jsextensions/process.cpp1
-rw-r--r--src/lib/corelib/jsextensions/textfile.cpp1
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);
}