[Scons-users] blocking execution until compilation is done

William Deegan bill at baddogconsulting.com
Mon Oct 8 14:55:41 EDT 2012



On Oct 8, 2012, at 9:49 AM, edA-qa mort-ora-y <eda-qa at disemia.com> wrote:


> But when I add a Depends to a target it requires that dependency to be

> built if it is out-of-date. That is, it creates an actual dependency.

>

> I have "check_b" which requires "prog_b". I don't wish the "check_b" to

> run until all compilation is done then I do "env.Depends( check_b,

> prog_a )". But what happens now is that if "prog_a" is outdated and I do

> "scons check_b" it will proceed to build "prog_a". That's not what I

> want. I only want to build "prog_a" if it is actually required.

>

> I'm trying to create a fence which basically says all my build actions

> have to occur prior to all my check actions. But there is no dependency

> between all the check and build actions.


Why is this important? (that all build items finish before any test items are run?)

Previously you said:

> Ideally only the builds required for the test should build when running that test.


From your example:

> check_a : prog_a

> check_b : prob_b

>

> check_all : check_a check_b

>

> If I run "check_a" then only "prog_a" should be built. But if I run

> "check_all" then both prog_a and prog_b should be built prior to running

> either of the check programs. As a project grows I find this to be a

> very useful, if not essential feature, to avoid over building and

> allowing test driver development.


It seems reasonable to imply that if you run "scons check_b' that it would build prog_b.

I don't understand why you want a hard line between building your programs and running your tests.
That said, you can make it so your tests aren't run by default, and only if requested explicitly..

so:
scons would just build your software
and:
scons check_all would run your tests, but still if the programs for the test were out of date for some reason they would be built...


-Bill



>

>

> On 08/10/12 18:05, Kenny, Jason L wrote:

>> Normally in SCons you set up a depend chains. So none the tests or actions you want to run after the compiler action is finish. In simple terms this might like:

>>

>> Outs=env.Program(...)

>> Env.test1(...,outs)

>>

>> Or it could be like

>>

>> Outs=env.Program(...)

>> Tout=Env.runtest(...)

>> Env.Depends(touts,outs)

>>

>>

>> Jason

>>

>> -----Original Message-----

>> From: scons-users-bounces at scons.org [mailto:scons-users-bounces at scons.org] On Behalf Of edA-qa mort-ora-y

>> Sent: Monday, October 08, 2012 10:57 AM

>> To: scons-users at scons.org

>> Subject: Re: [Scons-users] blocking execution until compilation is done

>>

>> On 08/10/12 07:51, William Deegan wrote:

>>> O.k. I don't see what the problem is.

>>> You can do that with SCons..

>>

>> I don't see how I can do it, that's why I'm asking.

>>

>>

>

>

> --

> edA-qa mort-ora-y

> -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --

> Sign: Please digitally sign your emails.

> Encrypt: I'm also happy to receive encrypted mail.

>

> _______________________________________________

> Scons-users mailing list

> Scons-users at scons.org

> http://four.pairlist.net/mailman/listinfo/scons-users




More information about the Scons-users mailing list