[Scons-users] clarification on Depends()

Bill Deegan bill at baddogconsulting.com
Tue Jun 5 15:43:09 EDT 2018


Is cmake spitting out make or ninja for you?

On Tue, Jun 5, 2018 at 12:39 PM, Jason Kenny <dragon512 at live.com> wrote:

> Ya, I can do what you suggest. I was mostly trying to get clarification on
> behavior. The doc is not as clear as it should be.
>
>
> As FYI, I am trying to put together a set of builder(s) to build a a
> general cmake or autoconf setup, scan for what it generates and scan that
> to be install()ed so a RPM builder can correctly generate the spec file and
> make an RPM. In parts this add a need for me to tweak some code to make
> sure that the component tree add a depends ( on target as it is now) to not
> start until the "dynamic" targets of the other components are finished as
> certain Install calls will not have happened yet and as such I would not
> have data about what libs to map defined fully yet.
>
> The trick is how to make the "glue" builders to make sure Scons chains
> everything correctly as items get added dynamically. I was hoping to use
> Value() node to do some of this..
>
>
>
> Jason
> ------------------------------
> *From:* Bill Deegan <bill at baddogconsulting.com>
> *Sent:* Tuesday, June 5, 2018 2:29 PM
> *To:* Jason Kenny
> *Cc:* SCons users mailing list
>
> *Subject:* Re: [Scons-users] clarification on Depends()
>
> The caution I'd have about Depends as a the goto solution for this is that
> proper scanner/emitter/builder's may not be created.
>
> Do you have a specific example you can share?
>
> Also the users can do something like.
> Depends('filename.$SHOBSUFFIX','fake.txt')
>
>
> On Tue, Jun 5, 2018 at 12:09 PM, Jason Kenny <dragon512 at live.com> wrote:
>
> In my example fake.txt is nothing more than something to show a behavior
> independent of the scanner. The point of Depends is to make a mapping that
> we did not scan for some reason. The question I get a lot is why Depends
> did nothing. It seems to be because one has to make a depends mapping on
> the target node not the source node. However for certain complex builders
> chains this "middle" targets are not known to the user.
>
> Jason
>
> ------------------------------
> *From:* Scons-users <scons-users-bounces at scons.org> on behalf of Bill
> Deegan <bill at baddogconsulting.com>
> *Sent:* Tuesday, June 5, 2018 1:16 PM
> *To:* SCons users mailing list
> *Subject:* Re: [Scons-users] clarification on Depends()
>
> Jason,
>
> In your example how does fake.txt invalidate the C file?
> Is the C file being generated?
>
> -Bill
>
> On Tue, Jun 5, 2018 at 10:10 AM, Jason Kenny <dragon512 at live.com> wrote:
>
> I wanted to clarify this.. as I think it sort of broken. builders like
> SharedLibrary() that chain different builder sets make it hard to know what
> the internal target is to map the Depends() to.
>
> Jason
>
> ------------------------------
> *From:* Jason Kenny
> *Sent:* Tuesday, June 5, 2018 9:44 AM
> *To:* SCons users mailing list
> *Subject:* RE: [Scons-users] clarification on Depends()
>
>
> Opps.. Yes that is correct,
>
>
>
> The second example should be
>
>
>
> Depends(["hello.o")],["fake.txt"])
>
> Program("hello","hello.c")
>
>
>
> Jason
>
>
>
>
>
> *From:* Scons-users <scons-users-bounces at scons.org> *On Behalf Of *Bill
> Deegan
> *Sent:* Monday, June 4, 2018 11:28 PM
> *To:* SCons users mailing list <scons-users at scons.org>
> *Subject:* Re: [Scons-users] clarification on Depends()
>
>
>
> I think you mistyped your second Depend example?
>
> Shouldn't it be this?
>
> Depends('hello.o',['fake.txt'])
>
>
>
> On Mon, Jun 4, 2018 at 9:05 PM, Jason Kenny <dragon512 at live.com> wrote:
>
> HI,
>
>
>
> I just want to clarify behavior of Depends() in SCons.
>
>
>
> I have a small sample:
>
>
>
> Depends(["hello.c")],["fake.txt"])
>
> Program("hello","hello.c")
>
>
>
>
>
> If I run this sample “hello” will build. If I change fake.txt, nothing
> will rebuild.
>
>
>
> I have a tree like this:
>
>
>
> +-hello
>
>   | +-hello.o
>
>   | | +-hello.c
>
>   | | +-fake.txt
>
>   | | +-/usr/bin/gcc
>
>   | +-/usr/bin/gcc
>
>
>
> If I change the sample to this ( depends() is not hello.o vs hello.c)
>
>
>
> Depends(["hello.c")],["fake.txt"])
>
> Program("hello","hello.c")
>
>
>
> Now when I change fake.txt hello.o will rebuild. The tree here looks like:
>
>
>
> +-hello
>
>   | +-hello.o
>
>   | | +-hello.c
>
>   | | +-fake.txt
>
>   | | +-/usr/bin/gcc
>
>   | +-/usr/bin/gcc
>
>
>
> Is this right… I have to know the target of a builder to use? I cannot use
> the source of a builder?
>
>
>
> Jason
>
>
>
>
> _______________________________________________
> Scons-users mailing list
> Scons-users at scons.org
> https://pairlist4.pair.net/mailman/listinfo/scons-users
> <https://nam02.safelinks.protection.outlook.com/?url=https%3A%2F%2Fpairlist4.pair.net%2Fmailman%2Flistinfo%2Fscons-users&data=02%7C01%7C%7C348497e92d47473ecc2508d5ca9ccc53%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C636637697138253587&sdata=aWPtqrgr6pb%2FpCBMdzZ%2B%2F%2BCPFtJAK%2B8BZNr00gX0MX0%3D&reserved=0>
>
>
>
> _______________________________________________
> Scons-users mailing list
> Scons-users at scons.org
> https://pairlist4.pair.net/mailman/listinfo/scons-users
> <https://nam05.safelinks.protection.outlook.com/?url=https%3A%2F%2Fpairlist4.pair.net%2Fmailman%2Flistinfo%2Fscons-users&data=02%7C01%7C%7C9e970bac7e574714f79608d5cb10805b%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C636638194081737688&sdata=cH8x5eU5isozHTqCJx4HG5fCTtlfmZhKCoDVMAstyZY%3D&reserved=0>
>
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://pairlist4.pair.net/pipermail/scons-users/attachments/20180605/a546e95f/attachment.html>


More information about the Scons-users mailing list