diff options
author | Joshua Watt <jpewhacker@gmail.com> | 2019-07-01 13:22:23 -0500 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2019-07-03 17:00:57 +0100 |
commit | 4fd9ee4670293632cc0ca1e64b8833eb6014435d (patch) | |
tree | b810d79dadcf181a6b798c9574822e95b4a32146 /bitbake/lib/bb | |
parent | 97e19bf73b024bc691e56c315ec7eb378a8cf7dd (diff) | |
download | poky-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.py | 1 | ||||
-rwxr-xr-x | bitbake/lib/bb/main.py | 5 | ||||
-rw-r--r-- | bitbake/lib/bb/runqueue.py | 5 |
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 | ||