aboutsummaryrefslogtreecommitdiffstats
path: root/meta-oe/recipes-qt/qt-creator/qt-creator/qbs_transformer_product.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta-oe/recipes-qt/qt-creator/qt-creator/qbs_transformer_product.patch')
-rw-r--r--meta-oe/recipes-qt/qt-creator/qt-creator/qbs_transformer_product.patch93
1 files changed, 93 insertions, 0 deletions
diff --git a/meta-oe/recipes-qt/qt-creator/qt-creator/qbs_transformer_product.patch b/meta-oe/recipes-qt/qt-creator/qt-creator/qbs_transformer_product.patch
new file mode 100644
index 0000000000..dea09aef4e
--- /dev/null
+++ b/meta-oe/recipes-qt/qt-creator/qt-creator/qbs_transformer_product.patch
@@ -0,0 +1,93 @@
+From c1c7cb2a5e6220a74f374a301e648479029f8a0e Mon Sep 17 00:00:00 2001
+From: Joerg Bornemann <joerg.bornemann@digia.com>
+Date: Mon, 12 Aug 2013 09:27:47 +0200
+Subject: [PATCH] introduce Transformer::product()
+
+Simplifies the calling code.
+Remove pointless nullpointer check from jscommandexecutor.
+
+Upstream-Status: Backport
+Signed-off-by: Jonathan Liu <net147@gmail.com>
+
+Change-Id: I867181d2b750f32f04376ce860f5dee6555d3e33
+Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
+---
+ src/lib/buildgraph/jscommandexecutor.cpp | 5 +----
+ src/lib/buildgraph/processcommandexecutor.cpp | 6 ++----
+ src/lib/buildgraph/transformer.cpp | 7 +++++++
+ src/lib/buildgraph/transformer.h | 1 +
+ 4 files changed, 11 insertions(+), 8 deletions(-)
+
+diff --git a/src/shared/qbs/src/lib/buildgraph/jscommandexecutor.cpp b/src/shared/qbs/src/lib/buildgraph/jscommandexecutor.cpp
+index b7f5b1d..24ffb7e 100644
+--- a/src/shared/qbs/src/lib/buildgraph/jscommandexecutor.cpp
++++ b/src/shared/qbs/src/lib/buildgraph/jscommandexecutor.cpp
+@@ -79,10 +79,7 @@ public slots:
+ m_result.errorMessage.clear();
+ ScriptEngine * const scriptEngine = provideScriptEngine();
+ QScriptValue scope = scriptEngine->newObject();
+- Artifact *someOutputArtifact = *transformer->outputs.begin();
+- if (!someOutputArtifact->product.isNull())
+- setupScriptEngineForProduct(scriptEngine, someOutputArtifact->product,
+- transformer->rule, scope);
++ setupScriptEngineForProduct(scriptEngine, transformer->product(), transformer->rule, scope);
+ transformer->setupInputs(scriptEngine, scope);
+ transformer->setupOutputs(scriptEngine, scope);
+
+diff --git a/src/shared/qbs/src/lib/buildgraph/processcommandexecutor.cpp b/src/shared/qbs/src/lib/buildgraph/processcommandexecutor.cpp
+index 78f77c3..d123fe8 100644
+--- a/src/shared/qbs/src/lib/buildgraph/processcommandexecutor.cpp
++++ b/src/shared/qbs/src/lib/buildgraph/processcommandexecutor.cpp
+@@ -276,8 +276,7 @@ void ProcessCommandExecutor::removeResponseFile()
+
+ QString ProcessCommandExecutor::findProcessCommandInPath()
+ {
+- Artifact * const outputNode = *transformer()->outputs.begin();
+- const ResolvedProductPtr product = outputNode->product;
++ const ResolvedProductPtr product = transformer()->product();
+ const ProcessCommand * const cmd = processCommand();
+ QString fullProgramPath = product->executablePathCache.value(cmd->program());
+ if (!fullProgramPath.isEmpty())
+@@ -309,8 +308,7 @@ QString ProcessCommandExecutor::findProcessCommandInPath()
+
+ QString ProcessCommandExecutor::findProcessCommandBySuffix()
+ {
+- Artifact * const outputNode = *transformer()->outputs.begin();
+- const ResolvedProductPtr product = outputNode->product;
++ const ResolvedProductPtr product = transformer()->product();
+ const ProcessCommand * const cmd = processCommand();
+ QString fullProgramPath = product->executablePathCache.value(cmd->program());
+ if (!fullProgramPath.isEmpty())
+diff --git a/src/shared/qbs/src/lib/buildgraph/transformer.cpp b/src/shared/qbs/src/lib/buildgraph/transformer.cpp
+index ce6baa7..363e08d 100644
+--- a/src/shared/qbs/src/lib/buildgraph/transformer.cpp
++++ b/src/shared/qbs/src/lib/buildgraph/transformer.cpp
+@@ -85,6 +85,13 @@ QScriptValue Transformer::translateInOutputs(QScriptEngine *scriptEngine, const
+ return jsTagFiles;
+ }
+
++ResolvedProductPtr Transformer::product() const
++{
++ if (outputs.isEmpty())
++ return ResolvedProductPtr();
++ return (*outputs.begin())->product;
++}
++
+ void Transformer::setupInputs(QScriptEngine *scriptEngine, QScriptValue targetScriptValue)
+ {
+ const QString &defaultModuleName = rule->module->name;
+diff --git a/src/shared/qbs/src/lib/buildgraph/transformer.h b/src/shared/qbs/src/lib/buildgraph/transformer.h
+index c9c88b6..d26c391 100644
+--- a/src/shared/qbs/src/lib/buildgraph/transformer.h
++++ b/src/shared/qbs/src/lib/buildgraph/transformer.h
+@@ -65,6 +65,7 @@ public:
+ const ArtifactList &artifacts,
+ const QString &defaultModuleName);
+
++ ResolvedProductPtr product() const;
+ void setupInputs(QScriptEngine *scriptEngine, QScriptValue targetScriptValue);
+ void setupOutputs(QScriptEngine *scriptEngine, QScriptValue targetScriptValue);
+ void createCommands(const PrepareScriptConstPtr &script,
+--
+1.8.4
+