Skip to content

Commit

Permalink
Merge pull request #37248 from Xrayez/env-dump
Browse files Browse the repository at this point in the history
SCons: Dump construction environment to a file
  • Loading branch information
akien-mga authored Jun 10, 2020
2 parents 1760c13 + 42bee75 commit 1aeb882
Show file tree
Hide file tree
Showing 3 changed files with 18 additions and 1 deletion.
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down
5 changes: 4 additions & 1 deletion SConstruct
Original file line number Diff line number Diff line change
Expand Up @@ -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)
11 changes: 11 additions & 0 deletions methods.py
Original file line number Diff line number Diff line change
Expand Up @@ -803,3 +803,14 @@ def progress_finish(target, source, 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)

0 comments on commit 1aeb882

Please sign in to comment.