diff options
author | Andrii Doroshenko (Xrayez) <xrayez@gmail.com> | 2020-07-27 21:00:26 +0300 |
---|---|---|
committer | Andrii Doroshenko (Xrayez) <xrayez@gmail.com> | 2020-07-28 00:09:21 +0300 |
commit | d86de6c98e435d31bfdebc50d2db6d4d4048be40 (patch) | |
tree | df495708bfab8bb48cc6926c34c0785ea996feb7 /methods.py | |
parent | f93c04d8efef1bdfff5d5839569eb7e22c667be6 (diff) |
SCons: Refactor running commands through builders
A new `env.Run` method is added which allows to control the verbosity
of builders output automatically depending on whether the "verbose"
option is set. It also allows to optionally run any SCons commands in a
subprocess using the existing `run_in_subprocess` method, unifying
the interface. `Action` objects wrap all builder functions to include a
short build message associated with any action.
Notably, this removes quite verbose output generated by `make_doc_header`
and `make_editor_icons_action` builders.
Diffstat (limited to 'methods.py')
-rw-r--r-- | methods.py | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/methods.py b/methods.py index fe93db4797..65b0e2dd6b 100644 --- a/methods.py +++ b/methods.py @@ -4,6 +4,11 @@ import glob import subprocess from collections import OrderedDict +# We need to define our own `Action` method to control the verbosity of output +# and whenever we need to run those commands in a subprocess on some platforms. +from SCons.Script import Action +from platform_methods import run_in_subprocess + def add_source_files(self, sources, files, warn_duplicates=True): # Convert string to list of absolute paths (including expanding wildcard) @@ -621,6 +626,14 @@ def CommandNoCache(env, target, sources, command, **args): return result +def Run(env, function, short_message, subprocess=True): + output_print = short_message if not env["verbose"] else "" + if not subprocess: + return Action(function, output_print) + else: + return Action(run_in_subprocess(function), output_print) + + def detect_darwin_sdk_path(platform, env): sdk_name = "" if platform == "osx": |