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]
it included MSVC...
* new/toolset.jam:
Allow action names with dots, so that we can set flags for
gcc.compile.c, gcc.compile and gcc and combine those flags.
* tools/gcc.jam: Use 'gcc' for compiling C files. There's still a problem:
'init' rules does not allow to configure name of C compiler. Also, don't
declare flags individually for gcc.link and gcc.link-dll.
* tools/borland.jam: Force C++ compile when needed.
[SVN r18774]
* new/project-root.jam (project-root-context.project): New rule
(find-project-rule): New rule, factored out of 'load' so that it can
be used elsewhere.
* new/project.jam (find): When project is not yet known, try loading
project-root, not only Jamfile.
[SVN r18759]
are communiated via return value of 'abstract-target.generate', not as
attribute of virtual target. The advantage is that we can return usage
requirements, even if no targets were created.
Also, usage requirements is not really attribute of virtual target. If several
virtual targets are created for one main target, the previous code would set
the same usage requirements on all virtual targets.
[SVN r18689]