summaryrefslogtreecommitdiff
path: root/src/lib/buildgraph/executor.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/buildgraph/executor.cpp')
-rw-r--r--src/lib/buildgraph/executor.cpp9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/lib/buildgraph/executor.cpp b/src/lib/buildgraph/executor.cpp
index b41c5dd93..596672ebc 100644
--- a/src/lib/buildgraph/executor.cpp
+++ b/src/lib/buildgraph/executor.cpp
@@ -182,6 +182,7 @@ void Executor::doBuild()
m_leaves.clear();
m_error.clear();
m_explicitlyCanceled = false;
+ m_activeFileTags = FileTags::fromStringList(m_buildOptions.activeFileTags());
setState(ExecutorRunning);
@@ -416,6 +417,14 @@ void Executor::buildArtifact(Artifact *artifact)
}
}
+ // Skip if we're building just one file and the file tags do not match.
+ if (!m_activeFileTags.isEmpty() && !m_activeFileTags.matches(artifact->fileTags)) {
+ if (m_doDebug)
+ m_logger.qbsDebug() << "[EXEC] file tags do not match. Skipping.";
+ finishArtifact(artifact);
+ return;
+ }
+
// Skip transformers that do not need to be built.
if (!mustExecuteTransformer(artifact->transformer)) {
if (m_doDebug)