diff options
author | Steven Knight <knight@baldmt.com> | 2005-06-02 21:54:58 (GMT) |
---|---|---|
committer | Steven Knight <knight@baldmt.com> | 2005-06-02 21:54:58 (GMT) |
commit | 97bdb1f4e23bac6d3b3d02f855c5a25882212afb (patch) | |
tree | aad52cb29da8e5b54f393dcf93c0c2e8b9961fcd /src/engine | |
parent | 08db2bcf45cc262fb87acac1b008e74a86418349 (diff) | |
download | SCons-97bdb1f4e23bac6d3b3d02f855c5a25882212afb.zip SCons-97bdb1f4e23bac6d3b3d02f855c5a25882212afb.tar.gz SCons-97bdb1f4e23bac6d3b3d02f855c5a25882212afb.tar.bz2 |
Don't print duplicate stats when --profile is used.
Diffstat (limited to 'src/engine')
-rw-r--r-- | src/engine/SCons/Script/Main.py | 21 |
1 files changed, 10 insertions, 11 deletions
diff --git a/src/engine/SCons/Script/Main.py b/src/engine/SCons/Script/Main.py index cdf0139..d5be3eb 100644 --- a/src/engine/SCons/Script/Main.py +++ b/src/engine/SCons/Script/Main.py @@ -255,7 +255,6 @@ ignore_errors = 0 sconscript_time = 0 command_time = 0 exit_status = 0 # exit status, assume success by default -profiling = 0 repositories = [] num_jobs = 1 # this is modifed by SConscript.SetJobs() @@ -676,16 +675,8 @@ class OptParser(OptionParser): '--recon', action="store_true", dest='noexec', default=0, help="Don't build; just print commands.") - def opt_profile(option, opt, value, parser): - global profiling - if not profiling: - profiling = 1 - import profile - profile.run('SCons.Script.Main.main()', value) - sys.exit(exit_status) - self.add_option('--profile', nargs=1, action="callback", - callback=opt_profile, type="string", dest="profile", - metavar="FILE", + self.add_option('--profile', action="store", + dest="profile_file", metavar="FILE", help="Profile SCons and put results in FILE.") self.add_option('-q', '--question', action="store_true", default=0, @@ -1190,6 +1181,14 @@ def _exec_main(): if type(options.debug) == type([]) and "pdb" in options.debug: import pdb pdb.Pdb().runcall(_main, args, parser) + elif options.profile_file: + import profile + prof = profile.Profile() + try: + prof.runcall(_main, args, parser) + except SystemExit: + pass + prof.dump_stats(options.profile_file) else: _main(args, parser) |