summaryrefslogtreecommitdiff
path: root/tools/buildman
diff options
context:
space:
mode:
authorSimon Glass <sjg@chromium.org>2023-07-20 02:49:21 +0300
committerSimon Glass <sjg@chromium.org>2023-07-24 18:34:11 +0300
commit9bdf02389c0de34de681cc0b002004887247d0cc (patch)
treec78948bb7a7fa46fe0841a6445543e9bf301931d /tools/buildman
parente5490b7f469183d5fbbc893073c5a0a3ca58d242 (diff)
downloadu-boot-9bdf02389c0de34de681cc0b002004887247d0cc.tar.xz
buildman: Move code to decide output dirs
Put this in its own function to reduce the size of the run_commit() function. Signed-off-by: Simon Glass <sjg@chromium.org>
Diffstat (limited to 'tools/buildman')
-rw-r--r--tools/buildman/builderthread.py34
1 files changed, 25 insertions, 9 deletions
diff --git a/tools/buildman/builderthread.py b/tools/buildman/builderthread.py
index 4abad86ebc..78405956ef 100644
--- a/tools/buildman/builderthread.py
+++ b/tools/buildman/builderthread.py
@@ -302,6 +302,30 @@ class BuilderThread(threading.Thread):
will_build = False
return will_build
+ def _decide_dirs(self, brd, work_dir, work_in_output):
+ """Decide the output directory to use
+
+ Args:
+ work_dir (str): Directory to which the source will be checked out
+ work_in_output (bool): Use the output directory as the work
+ directory and don't write to a separate output directory.
+
+ Returns:
+ tuple:
+ out_dir (str): Output directory for the build
+ out_rel_dir (str): Output directory relatie to the current dir
+ """
+ if work_in_output or self.builder.in_tree:
+ out_rel_dir = None
+ out_dir = work_dir
+ else:
+ if self.per_board_out_dir:
+ out_rel_dir = os.path.join('..', brd.target)
+ else:
+ out_rel_dir = 'build'
+ out_dir = os.path.join(work_dir, out_rel_dir)
+ return out_dir, out_rel_dir
+
def run_commit(self, commit_upto, brd, work_dir, do_config, config_only,
force_build, force_build_failures, work_in_output,
adjust_cfg):
@@ -338,15 +362,7 @@ class BuilderThread(threading.Thread):
# self.make() below, in the event that we do a build.
result = command.CommandResult()
result.return_code = 0
- if work_in_output or self.builder.in_tree:
- out_rel_dir = None
- out_dir = work_dir
- else:
- if self.per_board_out_dir:
- out_rel_dir = os.path.join('..', brd.target)
- else:
- out_rel_dir = 'build'
- out_dir = os.path.join(work_dir, out_rel_dir)
+ out_dir, out_rel_dir = self._decide_dirs(brd, work_dir, work_in_output)
# Check if the job was already completed last time
will_build = self._read_done_file(commit_upto, brd, result, force_build,