Re: Mixing VariantDirs with "in-tree" build
Tobias Herzog <[email protected]>
| Newsgroups | gmane.comp.programming.tools.scons.user |
|---|---|
| Message-ID | <[email protected]> |
Hmm, don't know if I understand you correctly, but if A/B/foo is a regular file (i.e. not a generated file, a build target) everything works as expected, because scons looks up build/B/foo (which is in fact not there, because i Use duplicate=0 with the VariantDir) in the original directory A/B/foo.That is also why the build succeeds, when I execute the two commands below in reverse order (because I "manually" build A/B/foo before). Anyway, I accept the answer that this is intended behavior :) Am Dienstag, den 29.01.2019, 09:17 -0800 schrieb Bill Deegan: > Your issue has nothing to do with whether the file foo is generated > or just a regular file. > You've created via your variantdir usage (as far as scons is > concerned) a tree which looks like this: > > > +-SConstruct > > +-A > > +-SConscript > > +-B > > +-SConscript > > +-foo.src > +-foo <- to be built > +-build <-- this is the directory scons "works in" when evaluating > the SConscript below > +- SConscript > +- B <-- you're looking for this which doesn't and won't exist > +- foo <-- and this which doesn't and won't exist. > > Does that help? > > > > > > On Mon, Jan 28, 2019 at 11:30 PM pasdVn <[email protected]> wrote: > > Thanks for your quick reply! > > > > I thought that SCons is looking up a node via srcnode() and thus in > > the original location, if it is not found in the current variant > > dir, but obviously this is not the case here, because A/B/foo is a > > generate file (i.e. a target), right? > > > > > > Am 29. Januar 2019 00:51:33 MEZ schrieb Bill Deegan < > > [email protected]>: > > > 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 > > > > _______________________________________________Scons-users mailing > [email protected] > https://pairlist4.pair.net/mailman/listinfo/scons-users _______________________________________________ Scons-users mailing list [email protected] https://pairlist4.pair.net/mailman/listinfo/scons-users