[Scons-users] Caching and variant_dir
wblevins001 at gmail.com
Fri Nov 20 14:20:24 EST 2015
Here is feedback from one of the project managers for a related questions:
If that link doesn't help your case, I may have to defer this question to
one of the project managers. I am not as familiar with repository and
variantdir configurations as other pieces of the core SConstruct model.
On Fri, Nov 20, 2015 at 6:58 PM, Glen Gibb <glen at barefootnetworks.com>
> Thanks William,
> I played with a variant that moved the SConstruct file up a level of
> SConscript('src/sconscript', variant_dir='build')
> This does work as expected if all source files are in the src directory
> with the SConscript file.
> Unfortunately my build is a little more complicated complicated than my
> initial example. It pulls in files from an external repository, in addition
> to files sitting in the source directory. Here's a simplified version:
> env = Environment()
> env.SharedLibrary('mylib', ['mylib.cpp', '#external_file.cpp'])
> The problem with this version is that external_file.os is generated in
> /home/example/src, rather than /home/example/build where I would expect to
> find it.
> Any idea how to make sure all output goes to the variant_dir, rather than
> the source dir?
> On Thu, Nov 19, 2015 at 11:51 PM, William Blevins <wblevins001 at gmail.com>
>> I think that this happens because the Node in question exists outside the
>> SConstruct directory tree.
>> On Fri, Nov 20, 2015 at 4:28 AM, Glen Gibb <glen at barefootnetworks.com>
>>> Hi all,
>>> Caching does not behave as I expect when the variant_dir starts with
>>> '..' (i.e., pointing up a directory). In this case, caching uses the
>>> absolute path to the files, rather than the relative path I had hoped it
>>> would store.
>>> To illustrate, assume my source directory is /home/example/src. My
>>> sconsript file is:
>>> env = Environment()
>>> env.SharedLibrary('mylib', ['mylib.cpp'])
>>> The following SConscript line line:
>>> SConscript('sconscript', variant_dir='build')
>>> results in caching storing a path beginning with build as I expect:
>>> However, the SConstruct line:
>>> SConscript('sconscript', variant_dir='../build')
>>> results in caching storing the full path: '/home/example/build/mylib.so'
>>> Is there a way to stop scons from resolving the .. in my variant_dir to
>>> an absolute directory?
>>> Scons-users mailing list
>>> Scons-users at scons.org
>> Scons-users mailing list
>> Scons-users at scons.org
> Scons-users mailing list
> Scons-users at scons.org
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Scons-users