On Aug 8, 2015 1:47 PM, "Jason Kenny" <dragon...@live.com> wrote: > > My only concern with this feature is that it can dump a lot of data. Given Parts for example I would have lots of environment that would be dumped. such information is generally only useful when you can map a given environment to the correct file ( or part file in my case) or build actions (such as this is the environment for link foo.so or this was the environment for making hello.o).
I am mapping a target to its build env and outputting the env data. Just like your example :) > > Jason > > From: William Blevins > Sent: Saturday, August 8, 2015 12:22 AM > To: SCons developer list > Subject: [Scons-dev] Patch for potential new debug option > > Here is a patch for dumping build environments via the command-line. > > I couldn't ever figure out a good way to get only explicitly lister targets (non-default commandline targets). It will essentially print the node.get_env().Dump() for all targets with a build_env defined. > > I could potentially change it from "--debug=envdump" to something like "--envdump=<VARIABLE>" so that it could print a particular variable rather than the whole env. > > Does this interest anyone or waste of chars? > >> diff -r 682b8a7a51fb src/engine/SCons/Script/Main.py >> --- a/src/engine/SCons/Script/Main.py Mon Jun 29 15:37:44 2015 -0400 >> +++ b/src/engine/SCons/Script/Main.py Thu Aug 06 23:44:50 2015 -0400 >> @@ -391,6 +391,21 @@ >> def prepare(self): >> pass >> >> +class EnvDumpTask(SCons.Taskmaster.AlwaysTask): >> + """SCons task for --debug=envdump. Prints env dump for BUILD_TARGETS.""" >> + def prepare(self): >> + pass >> + >> + def execute(self): >> + for target in self.targets: >> + if target.get_build_env(): >> + print 'Environment dump for target: ' + str(target) >> + print target.get_env().Dump() >> + >> + def executed(self): >> + pass >> + >> + >> class QuestionTask(SCons.Taskmaster.AlwaysTask): >> """An SCons task for the -q (question) option.""" >> def prepare(self): >> @@ -657,6 +672,7 @@ >> if "memory" in debug_values: >> memory_stats.enable(sys.stdout) >> print_objects = ("objects" in debug_values) >> + options.debug_envdump = ( "envdump" in debug_values ) >> if print_objects: >> SCons.Debug.track_instances = True >> if "presub" in debug_values: >> @@ -1210,8 +1226,13 @@ >> failure_message = "done building targets (errors occurred during build)." >> else: >> failure_message = "building terminated because of errors." >> + >> + if options.debug_envdump: >> + task_class = EnvDumpTask >> + >> if options.question: >> task_class = QuestionTask >> + >> try: >> if options.clean: >> task_class = CleanTask >> diff -r 682b8a7a51fb src/engine/SCons/Script/SConsOptions.py >> --- a/src/engine/SCons/Script/SConsOptions.py Mon Jun 29 15:37:44 2015 -0400 >> +++ b/src/engine/SCons/Script/SConsOptions.py Thu Aug 06 23:44:50 2015 -0400 >> @@ -673,7 +673,7 @@ >> "tree" : '; please use --tree=all instead', >> } >> >> - debug_options = ["count", "duplicate", "explain", "findlibs", >> + debug_options = ["count", "duplicate", "explain", "envdump", "findlibs", >> "includes", "memoizer", "memory", "objects", >> "pdb", "prepare", "presub", "stacktrace", >> "time"] >> > > > V/R, > William > > ________________________________ > _______________________________________________ > Scons-dev mailing list > Scons-dev@scons.org > https://pairlist2.pair.net/mailman/listinfo/scons-dev > > > _______________________________________________ > Scons-dev mailing list > Scons-dev@scons.org > https://pairlist2.pair.net/mailman/listinfo/scons-dev >
_______________________________________________ Scons-dev mailing list Scons-dev@scons.org https://pairlist2.pair.net/mailman/listinfo/scons-dev