[Scons-users] clarification on Depends()

Bill Deegan bill at baddogconsulting.com
Tue Jun 5 20:24:44 EDT 2018


On Tue, Jun 5, 2018 at 3:27 PM, Marc Branchaud <marcnarc at xiplink.com> wrote:

> On 2018-06-05 12:05 AM, Jason Kenny 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.
>>
>
> Right.  This is because you have nothing that builds hello.c, so SCons
> doesn't care that hello.c depends on anything.
>
> But SCons does know how to build hello.o.  That knowledge is implicit in
> the Program builder.  So SCons respects
>         Depends("hello.o", "fake.txt")
>
> Put another way, SCons only performs actions to build hello.o (and,
> ultimately, hello), so it only cares about dependencies for the actions it
> undertakes.
>
> You could also use the target returned by the Program builder:
>         hello_target = Program("hello", "hello.c")
>         Depends(hello_target, "fake.txt")
> This achieves the same thing, and lets you avoid knowing the Program
> builder's intermediate artifacts.
>

It would rebuild hello, but not necessarily rebuild hello.o

So not exactly the same thing.

-Bill


>
>                 M.
>
>
> 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
>>
>> _______________________________________________
> 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/20180605/1c18c8c3/attachment.html>


More information about the Scons-users mailing list