Since standalone projects can be defined by toolset modules, invoked
from site-config.jam and user-config.jam, inheriting from not yet fully read
modules is tricky. Especially when toolset module is invoked from site-config.
We can't inherit from user-config, if we did not even start to load it!
[SVN r28212]
The <tag> rule if often used in Jamfile like this: <tag>@$(__name__).rule.
The __name__ looks like Jamfile<jamfiles'directory>. When directory has
a dot, we we confused and took the part till the first dot as the
name of module.
Now, such values are processed closer to the definition point, where
we know the name of the module and don't need to guess it by looking at
the name.
Thanks to Juergen Hunold for the bug report.
[SVN r28063]
* 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]
tools/testing.jam
Support rules for measuring timing of build steps.
build/generators.jam
Generators with empty source lists can now consume any target type.
[SVN r27335]
builtins.{c,h}
Support for the REBUILDS rule
remove unused variable
rules.h
make.c
Support for the REBUILDS rule
make1.c
Support for the REBUILDS rule
Support for recording timing information
Restructured a case statement because it was masking a bug I
introduced.
execcmd.h
execnt.c
execunix.c
Support for recording timing information
Also removed NT-specific stuff from execunix
expand.c
Removed tabs from critical comment
Added tab-width variable setting comment for emacs.
v2/test
rebuilds.py, timedata.py, test_all.py
Tests for REBUILDS and timing.
[SVN r27334]
Say we have PYTHON_EXTENSION type derived from SHARED_LIB, and
no generators are explicitly defined for PYTHON_EXTENSION. We would
like to inherit generators for the SHARED_LIB type. The previous
code would run a generator for SHARED_LIB type. Since it will produce
a target of type SHARED_LIB, after calling the generator the type of target
was "fixed" to PYTHON_EXTENSION.
This was unly. Also, the <tag> functionality did no work as expected --
it would compute the name of python extensions as if they were a regular
libraries.
Now, when we try to generate PYTHON_EXTENSION, we clone generators
for SHARED_LIB and change SHARED_LIB to PYTHON_EXTENSION in the generator's
list of target type.
* build/generators.jam
(generator.clone-and-change-target-type): New method.
(base-to-derived-type-conversion): Remove.
(find-viable-generators-aux): First find a type which has
any generators defined, then match generators against property
set.
* build/virtual-target.jam
(abstract-file-target.set-type): Remove.
[SVN r27270]
Removed special substitution behavior for $name as an
overgeneralization
Added prepend-path-variable command as a replacement
Fixed variables to conform to naming convention for module globals
[SVN r27094]