Re: Mixing VariantDirs with "in-tree" build
Bill Deegan <[email protected]>
| Newsgroups | gmane.comp.programming.tools.scons.user |
|---|---|
| Message-ID | <CAEyG4CHp6VSPkoFn20En_KqXKuzPC2ib9FcvVojZP-ax+NDNGw@mail.gmail.com> |
See below On Mon, Jan 28, 2019 at 12:33 PM Tobias Herzog <[email protected]> wrote: > Hi scons users, > > consider the following demo project: > > +-SConsctuct > +-A > +-SConscript > +-B > +-SConscript > +-foo.src > > > With SConstruct: > SConscript('A/B/SConscript') > SConscript('A/SConscript', variant_dir='build', duplicate=0) > > A/SConscript: > Command(source='B/foo', > target='bar', > action='cat $SOURCE > $TARGET') > A/B/SConscript: > Command(target='foo', > source='foo.src', > action='cat $SOURCE > $TARGET') > > > No I do: > > scons -Q --tree=all build/bar > scons: *** [build/bar] Source `A/B/foo' not found, needed by target > `build/bar'. > +-build/bar > +-A/B/foo > +-/bin/cat > > and > >scons -Q --tree=all A/B/foo > cat A/B/foo.src > A/B/foo > +-A/B/foo > +-A/B/foo.src > +-/bin/cat > > > I know that this is a quite strage project setup, but nevertheless I > would expect scons to detect the depencies correct. Is this a bug, or > am I missing something? > You're missing something. By saying: SConscript('A/SConscript', variant_dir='build', duplicate=0) This is the same as: VariantDir('build','A', duplicate=0) SConscript('build/SConscript') So when you're asking for B/foo from that SConscript, you're actually asking for build/B/foo. If you changed it to "#/A/B/foo" it would work, or "../A/B/foo" > If I Return/Export the foo-node and use it in the Command in > A/SConscript it works as intended. > > > Thanks, > Tobias > > _______________________________________________ > Scons-users mailing list > [email protected] > https://pairlist4.pair.net/mailman/listinfo/scons-users > _______________________________________________ Scons-users mailing list [email protected] https://pairlist4.pair.net/mailman/listinfo/scons-users