[Scons-users] Tracing the loading of SConscript files
Stefan Seefeld
stefan at seefeld.name
Wed Dec 23 14:40:15 EST 2015
On 23.12.2015 14:23, Bill Deegan wrote:
> Oh.. you're not using variant_dir in your SConscript calls?
I am, as arguments to the VariantDir() constructor.
Stefan
>
> On Wed, Dec 23, 2015 at 10:37 AM, Stefan Seefeld <stefan at seefeld.name
> <mailto:stefan at seefeld.name>> wrote:
>
> On 23.12.2015 12 <tel:23.12.2015%2012>:56, Bill Deegan wrote:
> > Stefen,
>
> Bill,
>
> thanks for the quick reply !
>
> >
> > First I'd try --debug=stacktrace
> > See if that yields you anything.
>
> That shows me where the error was raised, and allowed me to inject
> print
> statements into the FS.VariantDir() method (as well as my
> SConscript files).
> Now, when I run `scons -n` I see:
>
> scons: Reading SConscript files ...
> invoking VariantDir(src_dir=".",
> variant_dir=#/bin.SCons/libs/release/dynamic/threading-multi,
> duplicate=False
> VariantDir(variant-dir=threading-multi, source_dir=boost.python)
> invoking VariantDir(src_dir=./build, variant_dir=./src,
> duplicate=False
> VariantDir(variant-dir=src, source_dir=build)
> Checking for C header file Python.h... (cached) yes
> invoking VariantDir(src_dir=".",
> variant_dir=#/bin.SCons/libs/release/static/threading-multi,
> duplicate=False
> VariantDir(variant-dir=threading-multi, source_dir=boost.python)
> invoking VariantDir(src_dir=./build, variant_dir=./src,
> duplicate=False
> VariantDir(variant-dir=src, source_dir=build)
> scons: done reading SConscript files.
> ...
>
> However, when I run `scons --test -n` I get:
>
> scons: Reading SConscript files ...
> invoking VariantDir(src_dir=".",
> variant_dir=#/bin.SCons/libs/release/dynamic/threading-multi,
> duplicate=False
> VariantDir(variant-dir=threading-multi, source_dir=boost.python)
> invoking VariantDir(src_dir=./build, variant_dir=./src,
> duplicate=False
> VariantDir(variant-dir=src, source_dir=build)
> Checking for C header file Python.h... (cached) yes
> invoking VariantDir(src_dir=".",
> variant_dir=#/bin.SCons/libs/release/static/threading-multi,
> duplicate=False
> VariantDir(variant-dir=threading-multi, source_dir=.)
>
> scons: *** Source directory cannot be under variant directory.
>
> Notice the "source_dir=." in the last VariantDir invocation, which
> differs from the equivalent call of `scons -n` above (i.e.,
> without --test`.
> There is an additional SConscript file that's loaded with --test,
> and I
> verified that if I don't read that (i.e., invoke 'Return()' above
> everything else), I don't get the error. This suggests that
> somehow the
> content of that SConscript file might have corrupted the internal
> state
> of the build system, and I need to figure out what. (That SConscript
> file is here:
> https://github.com/stefanseefeld/boost.python/blob/scons/test/SConscript)
>
> >
> > Can you provide a simple set of SConstruct/SConscripts which
> > reproduces this?
>
> I may try to reduce the problem to something manageable. For now I
> have
> checked in the full set of build scripts into my boost.python repo
> (the
> "scons" branch), which you can find (and clone) here:
> https://github.com/stefanseefeld/boost.python/tree/scons
>
> And a related question: What is the exact semantic of the 'VariantDir'
> function ? I understand the general purpose, but I'm not sure what it
> specifically does, in particular if I invoke it multiple times one
> after
> another. Is the effect accumulated (say, the variant_dir values are
> concatenated) ? Or does the second override the former ?
>
> Thanks,
> Stefan
>
> --
>
> ...ich hab' noch einen Koffer in Berlin...
>
> _______________________________________________
> Scons-users mailing list
> Scons-users at scons.org <mailto:Scons-users at scons.org>
> https://pairlist4.pair.net/mailman/listinfo/scons-users
>
>
>
>
> _______________________________________________
> Scons-users mailing list
> Scons-users at scons.org
> https://pairlist4.pair.net/mailman/listinfo/scons-users
--
...ich hab' noch einen Koffer in Berlin...
More information about the Scons-users
mailing list