|
Boost-Build : |
From: Pedro Ferreira (pedro.ferreira_at_[hidden])
Date: 2005-01-31 09:37:25
I forgot to mention that there are two giant hacks in the current
version:
- Properties containing objects
In bjam, some target have properties with objects in their value, e.g.,
<library>object(searched-lib-target)@3.
I created an object registry in the manager class, so objects are
registered, the key is used as the value of the property and, later on,
the key can be used to retrieve the object.
I think the best solution would be to change the property model
altogether, making a property a key/value pair, the latter being
anything, including an object. Conditional properties could be built on
top of this using a composite pattern or similar. This would be for a
later stage though.
- Actions
bjam uses the actions keyword to specify a set of shell commands to be
executed. It supports a fairly powerful keyword expansion mechanism
which is quite useful.
SCons has a similar mechanism.
I created an action module, which is basically a dictionary of actions,
indexed by their name. At this stage, I used bjam to try out the
system, so actions are specified using the bjam syntax.
However, if we want to use SCons as the build engine (let alone support
for generic systems), this is of course problem and I do not see a good
solution for this.
Ideally, actions would be specified in Python but there is the keyword
expansion problem (There have been some interesting discussions
regarding this in the SCons list.)
Then again, the shell syntax is useful for many situations, bar the
portability problem.
Advice please.
Pedro
Em 31 Jan 2005, às 12:20, Pedro Ferreira escreveu:
> I attach the current snapshot of what I've been doing. There is still
> plenty to do but I think this is a start.
> (Volodya: do you think it is time to put this on CVS?)
>
> I think that (almost) all that is needed for make targets is done.
> Please check tests/acceptance_tests/make_target.py.
>
> Help is much needed so, anyone willing to collaborate, please let me
> know. Major areas are:
>
> - Generators (I'll start working on this one now)
> - Tools (plenty to do for half a dozen people :-))
> - Projects and their relationships
> - Jamfile parser
> - Scanners
>
> Feedback is very much appreciated.
>
> Regards,
>
> 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