Just so this had an airing somewhere other than on Discord...

SCons manpage makes some mention of being like other tools:

"In general, scons supports the same command-line options as GNU make, and many of those supported by cons."

there may have been some early effort to have it look a bit like Make, which seems rather pointless now, everybody knows (and the FAQ and other places often actually say) "scons is not make". And comparisons to cons, besides a brief historical nod, seem useless, scons' own materials point out cons is unmaintained/abandoned since 2001.

I'd like to drop mentions comparing to those tools in this way.

Further, I'd like to suggest dropping - or if we want to be really pedantic, first deprecating (turning their use to a warning) then dropping, the set of options that are recognized but ignored because people might somehow use them due to familiarly with make - there just seems no real reason now. And maybe some of those option letters might be useful for something else later? I clipped the piece that sets these up, which was also posted in the discord channel when I first mentioned this:

op.add_option("-b", "-d", "-e", "-m", "-S", "-t", "-w",
              "--environment-overrides",
              "--no-keep-going",
              "--no-print-directory",
              "--print-directory",
              "--stop",
              "--touch",
              action="callback", callback=opt_ignore,
              help="Ignored for compatibility.")

Thoughts?


There's another set that are in some sense reserved - they're defined, issue a warning, and otherwise do nothing. I have much less of a strong opinion about these, but they are included here for completeness. Some of these could actually be useful at some point.

# Options from Make and Cons classic that we do not yet support,
# but which we may support someday and whose (potential) meanings
# we don't want to change.  These all get a "the -X option is not
# yet implemented" message and don't show up in the help output.

op.add_option('-l', '--load-average', '--max-load', nargs=1, type="float",
              # help="Don't start multiple jobs unless load is below "
op.add_option('--list-actions',
              # help="Don't build; list files and build actions."
op.add_option('--list-derived',
              # help="Don't build; list files that would be built."
op.add_option('--list-where',
              # help="Don't build; list files and where defined."
op.add_option('-o', '--old-file', '--assume-old', nargs=1, type="string",
              # help = "Consider FILE to be old; don't rebuild it."
op.add_option('--override', nargs=1, type="string",
              # help="Override variables as specified in FILE."
op.add_option('-p',
              # help="Print internal environments/objects."
op.add_option('-r', '-R', '--no-builtin-rules', '--no-builtin-variables',
              # help="Clear default environments and variables."
op.add_option('--write-filenames', nargs=1, type="string",
              # help="Write all filenames examined into FILE."
op.add_option('-W', '--new-file', '--assume-new', '--what-if', nargs=1, type="string",
              # help="Consider FILE to be changed."
op.add_option('--warn-undefined-variables',
              # help="Warn when an undefined variable is referenced."

_______________________________________________
Scons-dev mailing list
[email protected]
https://pairlist2.pair.net/mailman/listinfo/scons-dev

Reply via email to