summaryrefslogtreecommitdiffstats
path: root/bitbake/lib/bb
diff options
context:
space:
mode:
authorJoshua Watt <jpewhacker@gmail.com>2019-07-01 13:22:23 -0500
committerRichard Purdie <richard.purdie@linuxfoundation.org>2019-07-03 17:00:57 +0100
commit4fd9ee4670293632cc0ca1e64b8833eb6014435d (patch)
treeb810d79dadcf181a6b798c9574822e95b4a32146 /bitbake/lib/bb
parent97e19bf73b024bc691e56c315ec7eb378a8cf7dd (diff)
downloadpoky-4fd9ee4670293632cc0ca1e64b8833eb6014435d.tar.gz
bitbake: bitbake: Add --skip-setscene option
Adds an option to skip _setscene only if they would normally be executed, without ignoring sstate completely. Previously, '--no-setscene' would allow a build that completely ignored sstate and _setscene tasks, and '--setscene-only' would allow a build that only ran _setscene tasks, but there was no option do a build that would respect tasks previously restored from sstate and build everything else. Now one can run: bitbake --setscene-only IMAGE; bitbake --skip-setscene IMAGE which is functionally equivalent to: bitbake IMAGE The indented use is to allow a build to complete successfully in the presence of _setscene task failures by splitting apart the two phases e.g.: (bitbake -k --setscene-only IMAGE || true) && bitbake --skip-setscene IMAGE (Bitbake rev: 813ba5b7c13b573a0b813b628a819bdbf0627540) Signed-off-by: Joshua Watt <JPEWhacker@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'bitbake/lib/bb')
-rw-r--r--bitbake/lib/bb/cookerdata.py1
-rwxr-xr-xbitbake/lib/bb/main.py5
-rw-r--r--bitbake/lib/bb/runqueue.py5
3 files changed, 11 insertions, 0 deletions
diff --git a/bitbake/lib/bb/cookerdata.py b/bitbake/lib/bb/cookerdata.py
index e64c6c5271..144e803b4f 100644
--- a/bitbake/lib/bb/cookerdata.py
+++ b/bitbake/lib/bb/cookerdata.py
@@ -121,6 +121,7 @@ class CookerConfiguration(object):
121 self.profile = False 121 self.profile = False
122 self.nosetscene = False 122 self.nosetscene = False
123 self.setsceneonly = False 123 self.setsceneonly = False
124 self.skipsetscene = False
124 self.invalidate_stamp = False 125 self.invalidate_stamp = False
125 self.dump_signatures = [] 126 self.dump_signatures = []
126 self.dry_run = False 127 self.dry_run = False
diff --git a/bitbake/lib/bb/main.py b/bitbake/lib/bb/main.py
index 3071141b55..af2880f8d5 100755
--- a/bitbake/lib/bb/main.py
+++ b/bitbake/lib/bb/main.py
@@ -254,6 +254,11 @@ class BitBakeConfigParameters(cookerdata.ConfigParameters):
254 help="Do not run any setscene tasks. sstate will be ignored and " 254 help="Do not run any setscene tasks. sstate will be ignored and "
255 "everything needed, built.") 255 "everything needed, built.")
256 256
257 parser.add_option("", "--skip-setscene", action="store_true",
258 dest="skipsetscene", default=False,
259 help="Skip setscene tasks if they would be executed. Tasks previously "
260 "restored from sstate will be kept, unlike --no-setscene")
261
257 parser.add_option("", "--setscene-only", action="store_true", 262 parser.add_option("", "--setscene-only", action="store_true",
258 dest="setsceneonly", default=False, 263 dest="setsceneonly", default=False,
259 help="Only run setscene tasks, don't run any real tasks.") 264 help="Only run setscene tasks, don't run any real tasks.")
diff --git a/bitbake/lib/bb/runqueue.py b/bitbake/lib/bb/runqueue.py
index 58707db309..704e309b93 100644
--- a/bitbake/lib/bb/runqueue.py
+++ b/bitbake/lib/bb/runqueue.py
@@ -2488,6 +2488,11 @@ class RunQueueExecuteScenequeue(RunQueueExecute):
2488 self.task_skip(task) 2488 self.task_skip(task)
2489 return True 2489 return True
2490 2490
2491 if self.cooker.configuration.skipsetscene:
2492 logger.debug(2, 'No setscene tasks should be executed. Skipping %s', task)
2493 self.task_failoutright(task)
2494 return True
2495
2491 startevent = sceneQueueTaskStarted(task, self.stats, self.rq) 2496 startevent = sceneQueueTaskStarted(task, self.stats, self.rq)
2492 bb.event.fire(startevent, self.cfgData) 2497 bb.event.fire(startevent, self.cfgData)
2493 2498