diff options
author | Rémi Verschelde <rverschelde@gmail.com> | 2020-06-10 15:20:59 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-06-10 15:20:59 +0200 |
commit | 1aeb88205d0e1672670bea8c210be6b3e1269fe1 (patch) | |
tree | c1a0284d1587c2b8dc4359311280eb139cbe0121 | |
parent | 1760c13db98f822239fd3ec3f0437086016f905e (diff) | |
parent | 42bee75e86e81fcd9b51b2e960d13b89b18ad4bf (diff) |
Merge pull request #37248 from Xrayez/env-dump
SCons: Dump construction environment to a file
-rw-r--r-- | .gitignore | 3 | ||||
-rw-r--r-- | SConstruct | 5 | ||||
-rw-r--r-- | methods.py | 11 |
3 files changed, 18 insertions, 1 deletions
diff --git a/.gitignore b/.gitignore index dfb1490aa9..ca27e42016 100644 --- a/.gitignore +++ b/.gitignore @@ -340,6 +340,9 @@ platform/windows/godot_res.res # Visual Studio Code workspace file *.code-workspace +# Scons construction environment dump +.scons_env.json + # Scons progress indicator .scons_node_count diff --git a/SConstruct b/SConstruct index b424363dc8..9496595a26 100644 --- a/SConstruct +++ b/SConstruct @@ -693,6 +693,9 @@ elif selected_platform != "": else: Exit(255) -# The following only makes sense when the env is defined, and assumes it is +# The following only makes sense when the 'env' is defined, and assumes it is. if "env" in locals(): methods.show_progress(env) + # TODO: replace this with `env.Dump(format="json")` + # once we start requiring SCons 4.0 as min version. + methods.dump(env) diff --git a/methods.py b/methods.py index 756db19e9a..ca6756f95f 100644 --- a/methods.py +++ b/methods.py @@ -803,3 +803,14 @@ def show_progress(env): progress_finish_command = Command("progress_finish", [], progress_finish) AlwaysBuild(progress_finish_command) + + +def dump(env): + # Dumps latest build information for debugging purposes and external tools. + from json import dump + + def non_serializable(obj): + return "<<non-serializable: %s>>" % (type(obj).__qualname__) + + with open(".scons_env.json", "w") as f: + dump(env.Dictionary(), f, indent=4, default=non_serializable) |