* new/targets.jam
(project-target.reference-properties): Call 'run-action' on properties,
to match the process in 'basic-target'.
(basic-target.refined-properties): Remove the comment about difference
from the above rule.
[SVN r18249]
the same properties. Thanks to Andre Hentz for finding this bug and
providing the test case.
* new/builtin.jam
(searched-lib-generator.run): Pass the result through
'virtual-target.register'.
* test/searched_lib.py: Add new test.
[SVN r18247]
* new/toolset.jam
(flags): Add 'unchecked' parameter, too allow declaring flags for other
modules.
* new/builtin.jam: Don't declare LIBRARY_PATH_OPTION.
* new/borland.jam: Use flags to declare LIBRARY_PATH_OPTION and LIBRARY_OPTION.
* new/msvc.jam: Use flags to declare LIBRARY_PATH_OPTION and LIBRARY_OPTION.
[SVN r18222]
essentially, makes composing generators fail if they are run deeper
during transformation search. Looks like a new incarnation of
'allow-composing'.
The motivation is to fight with cases where trasformation
like CPP -> OBJ -> STATIC_LIB -> RSP -> EXE was tried. The composing
OBJ -> STATIC_LIB generator was totally unprepared to be invoked at such
depth, and errored out. The new behaviour cause this transformation to be
rejected, but the search continues.
* new/generators.jam
(generator.run-really): New rule, with most of previous 'run' content.
(generator.run): Check arguments only and call 'run-really'. Immediately
return if the generator is composing and no name is specified.
[SVN r18216]
* new/builtin.jam: Associate obj and lib extension with OBJ and
STATIC_LIB target types, to handle the above combination. The gcc
toolset overrides these extension explicitly.
* new/msvc.jam
(archive): Use bash syntax on cygwin.
[SVN r18210]
* new/virtual-target.jam
(virtual-target.path): New abstract method. Added so that derived classes
always define both 'actualize-location' and 'path'.
* new/builtin.jam
(searched-lib-target.path): Use empty body.
[SVN r18196]
regex.jam: Provide "escape" routine that escapes a string with certain escape
characters
boostbook.jam: Use print.escape to properly escape argument to "echo" on
Windows and Unix (BoostBook now works on non-Cygwin Windows)
[SVN r18148]
transforming the double-quote character into two single quotes, we transform
it into a correctly-escaped double quote.
- Add an "overwrite" option to print.text that overwrites the file instead of
appending to it.
[SVN r18124]
* new/builtin.jam
- register builtin.response-generator with 'register-linker', to
take advantange of 'link-action'. Convert <library-path>,
<find-static-library> and <find-shared-library> into on-target
variables using toolset.flags.
(builtin.response-file) Output variables for library path to response
file.
(searched-lib-generator.run): Assign 'null-action' instance to the
generated target, to carry properties. Correct prototype and workaround
some, as-yet-unknown problem.
* test/searched_lib.py: New test (added by me).
[SVN r18121]
* Define the OS as NT as this seems more reasonable than having MINGW as the OS (after all MinGW is the toolset not the OS).
* Add detection of one common install location for MinGW.
[SVN r18073]
I'm not completely sure this is precisely the right fix:
a. The error message used to reference a non-existent variable.
What was it supposed to be?
b. Should property.remove et. al. be able to cope with conditional
properties?
[SVN r18023]
* new/build-request.jam
(directly-requested-properties-adjuster): Redo.
* new/targets.jam
(main-target.generate-really): Adjust properties here.
* new/virtual-target.jam
(register-actual-name): New rule.
(virtual-target.actualize-no-scanner): Call the above, to detected bugs,
where two virtual target correspond to one Jam target name.
[SVN r17955]
* 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/property.jam
(split-conditional): New rule
(translate-paths): Use the above to handle conditional properties.
* test/path_features.py: New tests.
[SVN r17881]
unconditionally.
* new/builtin.jam
(linking-generator.run): New rule. Sets dependency on <library>
properties.
* new/generators.jam
(construct): Do not handle usage requirements. Do not handle
dependency features in any way.
* new/targets.jam
(main-target.generate-really): Don't create/set subvariant-dg.
(basic-target.generate): Collect usage requirements. Create/set
subvariant-dg.
* new/virtual-target.jam
(subvariant-dg): Take actual build properties together with
requested ones.
[SVN r17813]
property-set instances, because of different order.
* new/property-set.jam
(create): Sort the properties.
* new/feature.jam:
(minimize): Bugfix.
[SVN r17812]
* new/targets.jam
(main-target.apply-default-build): Call
'build-request.expand-no-defaults', not 'expand'. The motivation
is to have defaults added in one place: 'property-set.add-defaults'.
Also handle the case where default-build is empty.
(main-target.generate): Apply defaults here. The motivation is
that if we're using default build, default features should be
applied here as well, or else we'll get ambiguous alternatives.
(basic-target.generate): Do not add defaults.
[SVN r17755]
default value will always be present in build properties of all
main targets. The change moves adding default value into main
targets --- it was done at the top level.
* new/build-request.jam
(expand-no-defaults): No longer local.
* new/build-system.jam
Use 'build-request.expand-no-defaults', not 'expand'.
* new/feature.jam
(add-defaults): Tolerate conditional properties
(e.g <variant>debug:<define>DEBUG)
* new/property-set.jam
(property-set.add-defaults): New method.
* new/targets.jam
(basic-target.final-properties): Add defaults.
* test/default_features.py: New test.
[SVN r17753]
for the bug report.
* new/make.jam
(make-target-class.construct): Pass the result through
'virtual-target.register'.
* new/virtual-target.jam
(register): Ignore incidental properties when deciding if targets are
equivivalent.
* test/make_rule.py: Add new test.
[SVN r17701]
* new/targets.jam
(basic-target.check-for-unused-sources): New rule.
(basic-target.generate): Call the above.
* new/virtual-target.jam
(traverse): New arguments 'include-roots' and 'include-sources'.
* test/unused.py: New test.
[SVN r17685]