Merge pull request #37248 from Xrayez/env-dump

SCons: Dump construction environment to a file
This commit is contained in:
Rémi Verschelde 2020-06-10 15:20:59 +02:00 committed by GitHub
commit 1aeb88205d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 18 additions and 1 deletions

3
.gitignore vendored
View File

@ -340,6 +340,9 @@ platform/windows/godot_res.res
# Visual Studio Code workspace file # Visual Studio Code workspace file
*.code-workspace *.code-workspace
# Scons construction environment dump
.scons_env.json
# Scons progress indicator # Scons progress indicator
.scons_node_count .scons_node_count

View File

@ -693,6 +693,9 @@ elif selected_platform != "":
else: else:
Exit(255) 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(): if "env" in locals():
methods.show_progress(env) 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)

View File

@ -803,3 +803,14 @@ def show_progress(env):
progress_finish_command = Command("progress_finish", [], progress_finish) progress_finish_command = Command("progress_finish", [], progress_finish)
AlwaysBuild(progress_finish_command) 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)