[Scons-users] Emiter usage

Bill Deegan bill at baddogconsulting.com
Mon Sep 19 16:09:34 EDT 2016


Adam,

On Mon, Sep 19, 2016 at 12:47 PM, Adam Dobrowolski <pholat at gmail.com> wrote:

> Hi,
>
> I want to build all four elements which have "Alias" at once, I've added
> Alias
> to mark that these are end products.
> Right now the main question is if SCons will recognize intermediate files
> needed if I loop over them, not write them by hand/copy in SConsctruct.
> I vaguely recall that SConstruct & SConscripts are being parsed before any
> functions are executed.
>

Can you expand upon what would be in:
X86_REL = SConscript("x86_release/SConcsript")

What would you expect to be in X86_REL?

I'm guessing that you don't realize that it's not necessary to pass around
the Node's returned from builders if you know the locations in the
filesystem that their targets will be built in.

So if a SConscript builds a bunch of binaries into : x86_release/bin, you
can create the alias either as:

Alias('X86_REL','x86_release/bin')

or if you like

Alias('X86_REL',Glob('x86_release/bin/*'))

Does that answer your question?



>
> So right now it's a question on SCons dependency handling.
> ---
> By the way:
> The mail has "Emitter usage" in name because:
> 1) I ate word "question" - sorry for that, I've just found it out.
> 2) I read manual: http://scons.org/doc/1.2.0/HTML/scons-user/x3603.html
> and I
> thought that maybe I could do something similar. In the end I still see no
> use
> in emitter in my case and can't grasp when I would need it. ( I would be
> grateful to any explanations though )
>
Are you creating a builder? If not then you don't need it.
Does the builder you're creating create output files (or input files, or
sideffects) which aren't listed as a target or source when the builder is
invoked?
Then you do need an emitter.
Otherwise you don't need one.


Are you running SCons 1.2.0? The current version is 2.5.0.


>
> Best regards,
> Adam
>
> On poniedziałek, 19 września 2016 19:31:56 CEST Dirk Bächle wrote:
> > Adam,
> >
> > On 19.09.2016 18:46, Adam Dobrowolski wrote:
> > > Hi Dirk,
> > >
> > > Great thanks up to now, I meant something like that:
> > >
> > > #!/bin/python
> > >
> > > x86_env = Environment(<something for x86);
> > > x86_deb = env.Clone();
> > > x86_deb.Append(CXXFLAGS=['-g3','-O2'])
> > > arm_env = Environment(<something for arm>);
> > > arm_deb = env.Clone();
> > > arm_deb.Append(CXXFLAGS=['-g3','-O2'])
> > >
> > > libs = [
> > >
> > >          "lib1/SConscript",
> > >          "lib2/SConscript",
> > >          "lib3/SConscript",
> > >          (...)
> > >          "libN/SConscript",
> > >          ]
> > >
> > > for script in libs:
> > >      SConscript(script, exports={'env' : x86_env},
> > >      variant_dir='x86_release')
> > >      SConscript(script, exports={'env' : x86_deb},
> > >      variant_dir='x86_debug')
> > >      SConscript(script, exports={'env' : arm_env},
> > >      variant_dir='arm_release')
> > >      SConscript(script, exports={'env' : arm_deb},
> > >      variant_dir='arm_debug')
> > >
> > > # These SConscripts use products of earlier SConscripts in for loop
> > > # For 10 SCOnscripts it would be 40 products in total
> > > # These are sourced with Glob("*")
> > > X86_REL = SConscript("x86_release/SConcsript")
> > > X86_DEB = SConscript("x86_debug/SConcsript")
> > > ARM_REL = SConscript("arm_release/SConcsript")
> > > ARM_DEB = SConscript("arm_debug/SConcsript")
> > >
> > > Alias('X86_REL',X86_REL)
> > > Alias('X86_DEB',X86_DEB)
> > > Alias('ARM_REL',ARM_REL)
> > > Alias('ARM_DEB',ARM_DEB)
> >
> > what I get from this is that you want to be able to call "scons X86_REL",
> > such that only the corresponding subtree is built. If this
> > is correct, doesn't it contradict the specifications made in your first
> mail:
> >  > What I need to do is:
> >  > Generate different output on different compilation variable.
> >  >
> >  > Exemplary problem: one app version is build with -DDEBUG variable, and
> >  > second one is without. Now I can build DEBUG app (or one without) by
> >  > changing the Environment by hand. But I would love to build both in
> one
> >  > run.
> > , especially for the last sentence?
> >
> > Regards,
> >
> > Dirk
> >
> >
> > _______________________________________________
> > Scons-users mailing list
> > 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
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://pairlist4.pair.net/pipermail/scons-users/attachments/20160919/43a19b1e/attachment.html>


More information about the Scons-users mailing list