* 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]
projects, and for individual targets, it will reappear later.
* new/property.jam:
(refine): Don't check for link-compatibility.
* new/targets.jam
(project-target.generate): Don't call 'refine' and don't emit any
warnings.
(basic-target.match-rank): The alternative selection mechanism dependended
on link-compatibility in some way. Work around the difference in semantic
we have now. This will be resolved in a more clean way later.
* new/property-set.jam
(property-set.link-incompatible, property-set.link-incompatible-with):
New methods.
[SVN r20190]
* new/virtual-target.jam
(subvariant-dg.implicit-includes): New method.
(subvariant-dg.__init__): Check for <implcit-dependency>, not all
dependency features.
* new/builtin.jam
(compile-action.adjust-properties): Call 'implicit-includes'.
[SVN r20174]
* 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]
Thanks to Peter Schoen for bugreport.
* new/project.jam (initialize): Set 'project-root-module' attribute.
* new/project_root.py: New test.
[SVN r19899]
* jam_src/builtins.c: New builtins IMPORT_MODULE and IMPORTED_MODULES.
jam_src/rules.c: (bindrule): Refactor. (lookup_rule): New function.
* kernel/modules.jam: Make use of IMPORT_MODULE.
[SVN r19422]
rather then only defined on first.
The previous behaviour did not work when there were "default-build" attribute
on project and two alternatives for a main target.
Patch from Michael Stevens.
[SVN r19303]
* new/targets.jam
(project-target.add-alternative): New rule.
(project-target.build-main-targets): New rule.
(project-target.generate, project-target.main-target,
project-target.has-main-target): Call 'build-main-targets'
(project-target.rename-main-target): Remove.
(main-target-sources): Use 'rename', not project.rename-main-target.
(main-target-alternative): Simplify.
* test/inline.py: Test for fix.
[SVN r19245]
* new/builtin.jam
(lib-generator): Remove.
(lib-target-class): New class. Target class is more powerfull then
generator, here.
* new/generators.jam
(construct): New argument 'return-all'.
* bew/property-set.jam
(property-set.add-raw): New method.
[SVN r18917]
not by project attribute. The problem with the previous interface was
that it was not possible to mark target as explicit anywhere else,
such as in helper module which declares target in project module, or
in toolset module.
* new/targets.jam
(project-target.mark-target-as-explicit): New rule
(project-target.targets-to-build): Use self.explicit-targets.
* new/project.jam
(project-attributes.set): Don't allow 'explicit-targets'.
[SVN r18900]