[Scons-dev] on demand Program tool initialization

anatoly techtonik techtonik at gmail.com
Sun Aug 10 12:20:29 EDT 2014


On Sun, Aug 10, 2014 at 11:30 AM, Dirk Bächle <tshortik at gmx.de> wrote:
>>
>> I am looking at D SConstruct example.
>> http://stackoverflow.com/a/9917185/239247
>> How does Program determine that it needs to call D tool?
>
> in this case the D Builders are registered with the Program() method as
> "source builders". This means, if Program() encounters a non-object
> extension (like the suffix ".d") it will look up its internal list of source
> builders, and try to find one for converting ".d"->"*.o".
> So the decision is based on the suffix of the source file.

Thanks. That's what I need to know.

>> Because this way you don't need to search for tool or initialize
>> it until there is a need to build source file for that tool. There
>> might be need to adjust default parameters for that tool, but
>> that's another problem.
>>
>> So *on demand* Program tool initialization means that tool
>> is fully initialized only when build demands building targets
>> that are associated with some tool.
>>
>> Is it possible to add this part already?
>
> We have started to discuss these kind of things on the ToolchainRevamp pages
> in the Wiki:
>
>   http://www.scons.org/wiki/ToolchainRevamp
>
> and
>
>   http://scons.org/wiki/RevampToolsSubsystem
>
> . Feel free to add your points and comments there.

Thanks for the pointer, but it doesn't answer the questions, which are:

What minimal data tool needs to tell Program so that Program will
choose it for certain files?
Can we add this information unobtrusively now without waiting for the
discussions to complete?
Meaning is there any parts that are already settled down and can be
implemented now without breaking things in future when we have a
solid plan?

My head can not squeeze all the details, so I'd prefer the route of
safe experiments and safety harness rather than too much upfront
engineering.
-- 
anatoly t.


More information about the Scons-dev mailing list