[Scons-users] Odd --tree output with out-of-source build

Mats Wichmann mats at wichmann.us
Fri Mar 18 09:15:47 EDT 2022


On 3/18/22 04:36, Hartmut.Brandt at dlr.de wrote:
> Hi,
> 
>  
> 
> I have a strange dependency problem with running at -j24 and try to
> debug this. Now I discovered an odd behaviour. I have simple setup:
...
> SConstruct:
> 
> env = Environment()
> 
> SConscript('sub1/SConscript', variant_dir='build', duplicate=False)
>  
> SConscript:
> 
> env = Environment()
> 
> p = env.Program('foo', ['foo.cc', 'bar.cc'])
> 
> Now when I run scons –tree=status I get:
> 
> [E b      ]+-.
> [E     C  ]  +-SConstruct
> [E b      ]  +-build
> [ R    C  ]  | +-sub1/SConscript
> [ R    C  ]  | +-sub1/bar.cc
> [E B   C  ]  | +-build/bar.o
...etc
> 
> When I change the variant_dir to something outside the tree
> (/home/user/build/play):
> 
> [E b   C  ]+-.
> [E     C  ]  +-SConstruct
> [E b   C  ]  +-sub1
> [E     C  ]    +-sub1/SConscript
> [E     C  ]    +-sub1/bar.cc
> [E     C  ]    +-sub1/foo.cc
> 
> scons: done building targets.
> 
>  
> 
> which looks odd. Are out-of-tree builds not supported? Could not find
> such a hint in the documentation, but I could easily miss it.

Supported, but this is a matter of target selection. SCons does not by
default select targets outside the tree, so in your out-of-tree
example,nothing in the variant dir is selected for building, so there's
nothing to report on there.

https://scons.org/doc/production/HTML/scons-man.html#target_selection


More information about the Scons-users mailing list