[Scons-users] clarification on Depends()

Jason Kenny dragon512 at live.com
Tue Jun 5 15:39:21 EDT 2018


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<mailto: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<mailto:scons-users-bounces at scons.org>> on behalf of Bill Deegan <bill at baddogconsulting.com<mailto: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<mailto: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<mailto: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<mailto: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<mailto: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<mailto: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<mailto: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/825e7224/attachment-0001.html>


More information about the Scons-users mailing list