How to set disable duplicate=0 for all SCons build variants without repeating the option multiple times?
Ciro Santilli <[email protected]>
| Newsgroups | gmane.comp.programming.tools.scons.user |
|---|---|
| Message-ID | <CAFXrp_cOEwJujGhuQeasWEyMo3uN5z5=3PTp+GCvqHApCMBUbA@mail.gmail.com> |
https://stackoverflow.com/questions/53656787/how-to-set-disable-duplicate-0-for-all-scons-build-variants-without-repeating-th
I am dealing with a project that has many variant dirs created with
`SConscript(variant_dir=)`.
I want to make `scons` stop copying my `.c` files into the build directories.
I know that I can do that if I pass `duplicate=0` for each of those
calls as documented at:
https://scons.org/doc/2.4.1/HTML/scons-user.html#idp1378843980
But is there an easier way to make `duplicate=0` automatically take
effect for all variant dirs?
For example, in a simplified example:
env = Environment()
objects = [env.Object('main.c')]
build_dir = 'build'
objects.extend(env.SConscript(
os.path.join('lib', 'SConscript'),
variant_dir=os.path.join(build_dir, 'lib'),
))
objects.extend(env.SConscript(
os.path.join('lib2', 'SConscript'),
variant_dir=os.path.join(build_dir, 'lib2'),
))
env.Program('main.out', objects)
I would like to do something like:
env = Environment(duplicate=0)
I would not however like to pass it as a variable everywhere, since
people will likely forget to pass it sooner or later:
env = Environment()
objects = [env.Object('main.c')]
build_dir = 'build'
duplicate = 0
objects.extend(env.SConscript(
os.path.join('lib', 'SConscript'),
variant_dir=os.path.join(build_dir, 'lib'),
duplicate=duplicate
))
objects.extend(env.SConscript(
os.path.join('lib2', 'SConscript'),
variant_dir=os.path.join(build_dir, 'lib2'),
duplicate=duplicate
))
env.Program('main.out', objects)
This would be analogous to `--duplicate soft-copy`, which affects all
variant dirs in one go.
If only I had a `--duplicate none` I could also set it by default with
SetOption from my script and all would be fine.
_______________________________________________
Scons-users mailing list
[email protected]
https://pairlist4.pair.net/mailman/listinfo/scons-users