Boost logo

Boost :

From: Vladimir Prus (ghost_at_[hidden])
Date: 2001-09-21 04:57:16

I've some suggestions about build system and it seems their're not in TODO.
Moreover, they don't require any significant changes.

1. Custom features.
Say I need to pass 'char is unsigned' option to the compiler. The most clear
way to accoplish this would be to allow for 'custom features' to be provided.
I don't think that changing existing toolset descriptions and features.jam to
anticipate any custom feature user might want is practically feasible.

Custom features can be implemented with:
        1. Making variable CUSTOM_FEATURES name the file describing custom features,
        (with some default)
        2. Include $(CUSTOM_FEATURES) from features.jam and every toolset
        3. Check if duplicate features declaration work (maybe it works now, haven't
        tried this)
        4. Somehow make flags declaration for various toolsets in custom features
        file work. Options:
                i) Make
                flags borland CFLAGS ......
                do nothing if $(gCURRENT_TOOLSET) is different from borland
                ii) Instruct the users to emulate semantics of i) by hand

I've actually implemented 1) 2) and 4) ii)
There's another related matter: currently
        flags something CFLAGS : -foobar
sets -foobar flag unconditionally. It's good when, e.g. one wants to disable
some odd warning in compiler without touching the build system:
you put one string in custom features file and it works. Probably this
behaviour should be documented.

2. Free features.
Say I've made 'unsigned-char' feature, and made it free feature. If this
feature is not mentioned in build variant, then targets will be generated
in something/unsigned-char-off/.... directory, and, of cause,
unsigned-char-on directory will never be generated as the feature is free.
Can we get rid of this directory completely? IMO, it only makes pathes longer
and confuses people.

3. Borland toolset.
Command lines for the compiler contain -w- flag, which disables warning. Why
is it so? I've already got several bugs because of that.

4. Command line length limitation
Is there any plans to allow for response file on toolset which suport them? I
should be quite simple to implement. Related question is relative pathes:
I used to get command line full of inline directives many of which refer to
the same place, only using different relative names. Some calls to
simplify-path-tokens will fix the situation.



Boost list run by bdawes at, gregod at, cpdaniel at, john at