* feature.add-defaults: No longer accepts conditionals and returns
expanded properties. This matches the actual usage, and conditionals
never really worked right anyway.
* property.refine: Remove subfeatures of removed features.
* Moved property-set expansion and adding defaults into
targets.evaluate-requirements so that they correctly interact with
the target requirements.
* Expand subfeatures when matching target alternatives.
* Non-property-specific subfeatures like <cxxstd>11-iso are expanded correctly.
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]
* new/targets.jam
(main-target.select-alternative): Rewrite.
(main-target.generate-really): Issue error in all cases where best
alternative could not be found.
(basic-target.match): Renamed from 'match-rank' and changed.
* boost_build_v2.html: Document new algorithm.
* test/alternatives.py: More tests.
[SVN r20331]
* new/targets.jam
(generate): Use a special string to report failure, not just return
of empty list.
(basic-target.generate-sources): Accomodate the above change.
(basic-target.check-for-unused-sources): Allow empty list of targets.
* test/alternatives.py: New test.
[SVN r17906]
* new/targets.jam
(main-target.default-build): New field.
(main-target.add-alternative): Don't allow default-build for
second and subsequence alternatives. Record default build
from the first one.
(main-target.generate): Expand build request.
(main-target.generate-really): New rule, extracted from 'generate'.
(basic-target.default-build): New rule.
(basic-target.generate): Don't expand default build.
* test/BoostBuild.py
Allow to suppress passing toolset when calling run_build_system.
Some Python 2.1 compatibility fixes.
* test/alternatives.py
More tests.
* test/default_build.py
More tests.
[SVN r17683]
* new/targets.jam
(main-target.select-alternatives): New rule.
(main-target.generate): Simplify, using the above.
* new/errors.jam
(error): Do EXIT if --no-error-backtrace is given.
* tests/alternatives.py: New test.
[SVN r17673]