|
Boost-Build : |
From: Pedro Ferreira (pedro.ferreira_at_[hidden])
Date: 2005-03-09 05:34:14
Hi Volodya,
On 9 Mar 2005, at 09:54, Vladimir Prus wrote:
> (...)
>
>> It crashes on Darwin. I'll check this and try it on Windows as soon as
>> I can.
>
> Did you build with --debug? Without it, it crashes for Linux too, and
> I'm yet
> to investigate why.
Yup, I did. I'll have to spend some time digging it up, but not now...
(...)
>> Proposal:
>>
>> - Extend the action registry to allow one to register rules and
>> actions
>> and to associate them with an id.
>> E.g.,
>>
>> action.register ('gcc.compile.c++', compile_cpp_call_it_anything,
>> '"$(CONFIG_COMMAND)" $(LANG) -Wall ...')
>>
>> Implement inheritance of rules and actions:
>>
>> action.inherit_rules ('darwin', 'gcc')
>>
>> And overriding:
>>
>> # Override just the action but keep the rule
>> action.override ('darwin.compile.c++', None, ''$(CONFIG_COMMAND)
>> $(ST_OPTIONS) -L"$(LINKPATH)" ...')
>
> The above makes sense for me.
Done.
>> If this is ok, what about explicitly separate the toolset from the
>> rule?
>>
>> action.register (toolset, rule_name, rule, action_text)
>>
>> This would make it clear the meaning of the text up to the first dot.
>> The rule_name is still hierarchical (e.g. 'compile.c++' inherits all
>> flags from 'compile') but the toolsets are clearly separate.
>
> I don't think it will give us anything....
>
>> - Change back the generator constructor to receive an id and not the
>> rule itself. Then, when the rule needs to be called, ask it to the
>> action registry.
>
> ... especially as generators will still get action id, not
> (toolset,action)
> pair. And making generator take (toolset,action) pair does not give any
> obvious benefits.
Ok, I was just rambling. Anyway, I'm not very keen on making redesigns
at this stage.
Pedro
Boost-Build list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk