* The new scanner is currently disabled and only issues a warning
for tokens that would be lexed differently.
* Special case a few common uses of ':', to limit breakage to
a manageable level.
* Remove the horribly outdated Jambase code inherited from Perforce Jam
* Update all of Boost.Build to work in the presence of the new lexer.
* New feature <relevant> which is automatically deduced in most cases.
* Features which are not relevant do not affect target paths and
do not prevent merging of virtual targets.
* generators.jam: generator.run always returns usage-requirements
to allow usage-requirements in non-top-level generators. This
is necessary because we're using usage-requirements to track
relevance from flags.
* New rule toolset.uses-features to specify features that the rule
checks manually, instead of using toolset.flags. In the future,
we should consider restricting the properties actually passed,
to detect errors.
* Adjust tests to handle the new paths (verified by inspection).
* Add temporary option --ignore-relevance to consider all features relevant
to aid migration.
* New rule property.evaluate-conditional-relevance which helps tracking
relevance in <conditional>.
* Widely scattered changes to use the new interfaces.
Various restructure of test framework handling of paths to avoid duplicate path editing which caused failed tests. Adjust many tests to deal with added subdirectories in build outputs now that toolset requirements are active.
Related changes:
* BoostBuild.Tester & TestCmd.TestCmd interfaces now accept external process parameters as a list of strings, thus avoiding problems with parsing arguments containing spaces.
* Avoided a potential process hang in case an external process being run prints out enough output to fill up the OS's pipe buffer (OS would pause the process until someone read the data from the pipe but the testing framework would not do this until the process in question had terminated).
[SVN r79448]
* build/generators.jam
(generator.generated-targets): Comment the desired semantics.
* util/utility.jam
(basename): Take the part till the last dot, not the first.
[SVN r27374]
* new/builtin.jam
(link-action.adjust-properties): Remove.
(linking-generator.generated-targets): Do what adjust-properties used to do.
(linking-generator.run): Convert <library> properties to sources.
(exe-generator): New class.
[SVN r20455]
* new/generators.jam
(generator.__init__): Use parallel lists to store prefixes and postfixes
for a name, not mapping with type as a key, since type is not unique.
(generator.generated-targets): Adjust.
[SVN r19990]
* new/builtin.jam: The lib suffix in not "obj", even on windows.
* test/BoostBuild.py: (lib_suffix): New variable.
* test/generators_test.py: Use lib_suffix.
[SVN r16793]
introduce separate <link-runtime> feature.
Allow to use the 'lib' rule to declare
libraries that should be searched for.
* builtin.jam: Remove 'shared' features. Introduce
'link' and 'link-runtime'.
(searched-lib-target): New class
(searched-lib-generator): New generator.
(lib-action): New class, derived from 'action'.
Handles instances of 'searched-lib-target' in sources.
Also, moves all libraries from sources to property value,
so that we can repeat them twice in command line.
(lib-generator): Generator which uses 'lib-action'.
* generators.jam: Allow empty list of sources everywhere.
* virtual-target.jam (file-target): Split into
'abstract-file-target' and 'file-target'.
(abstra
(action.actualize-sources): New rule. Allows to
handle the fact that some sources are special,
and should not become $(>) in action body.
[SVN r16573]
* builtin.jam (variant): New rule.
* build-system.jam: Unconditionally add <toolset>gcc to build
request. Will be fixed when toolset support is ready.
* feature.jam (extend-feature): Bugfix.
[SVN r15678]
prevents complining the same source twice with the same properties.
Also allow generators to change source names using patterns.
* new/generators.jam (generator): Accept name patterns together with
target types.
(generator.generated-targets): Use name patterns. Transform generated
targets with 'virtual-targets.register', to eliminate duplicate
virtual targets.
[SVN r15302]