* new/virtual-target.jam
(null-action): Pass '.no-action' as action name, not 'no-action'. The
action name is really dummy, it's not used at all. However, when it does
not include dot, the smart 'action' ctor will assume it's local and prepend
module name to it. The calling module will be 'null-action' instance module,
always unique, and as result, no two targets with null actions will be
equal, as far as 'virtual-target.register' is concerned.
[SVN r18424]
of all actions that jam could possibly execute is not good-looking. E.g:
gcc.compile
gcc.link-dll
gcc.compile
gcc.link
...found 19 targets...
...updating 9 targets...
MkDir1 app/bin/gcc
MkDir1 app/bin/gcc/debug
MkDir1 app/bin/gcc/debug/main-target-app
compile app/bin/gcc/debug/main-target-app/app.o
[SVN r18418]
virtual-target.jam.
- Added the missing explicit imports, now that we don't dump
everything into the global module with qualification
- stopped using the feature-space hack for temporary testing states of
the feature module. Instead we move its global variable definitions
to a temporary module.
- the way feature.action was invoking the rule it was being passed was
evil. Now you pass (even local) rules without qualification and
they are invoked in the source module context.
- module __test__ rules are always executed in a separate module, so
that their import dependencies can be separated from those of the
module being tested.
- better reporting of circular module-loading dependencies
implemented.
- minor changes:
property-set.jam: moved .empty initialization to avert circular
load dependency .
symlink.jam: fixed global variable naming.
[SVN r18407]
for getting the list of variable names and for clearing all rule and
variable storage.
* compile.c - better error reporting for unknown rules; now it is a
hard error.
* hash.c/h - added hash_free to allow removal of elements from a hash
* rule.c/h - implemented rule freeing; stopped exporting rules to the
global module by default.
* variable.c - reclaim variable storage when disposing of variable
hash.
* build.jam - make grammar building work under NT
[SVN r18405]
* new/targets.jam
(basic-target.generate-source): Separate virtual targets that come from
different sources.
(basic-target.check-for-unused-targets): Warn only if not virtual target
from a given source is comsumed.
[SVN r18403]
are very annoying --- e.g. you might decide there are several msvc
installation just because you have default location as long name, and there's
vcvars32.bat in PATH, and PATH element uses short name.
* jam_src/pathsys.h
(short_name_to_long_name): New function.
* jam_src/filent.c:
(file_dirscan): Call 'short_name_to_long_name' on argument.
* jam_src/pathunix.c:
(ShortPathToLongPath): Move here from pwd.c, and fix bugs:
'.' and '..' elements were completely broken.
(short_name_to_long_name): Implement here.
[SVN r18401]
* new/virtual-target.jam
(abstract-file-target.actualize-action): Don't set up clean action
here; the previous code worked by accident anyway, because 'name'
variable was not declared in any reasonable way.
(action.actualize): Set up clean action here, close to the place where
updating action is set up.
[SVN r18395]
* new/feature.jam
- the above change, plus changed the order of values for
'runtime-debugging' feature, to accomodate strange behaviour of
'feature.add-defaults'.
[SVN r18392]
Added -t -v to the yacc/bison flags when --debug is used.
Additionally, we now grab $(YACCFLAGS) from the
environment/command-line to get more yacc diagnostics
[SVN r18379]
* new/feature.jam (get-values): Don't change slash direction on windows.
The bug can be seen by reverting this change and adding
import feature ;
ECHO [ feature.get-values <file> : <file>a/b/c.dll ] ;
to 'project-root.jam' of examples-v2/hello.
[SVN r18366]
* new/virtual-target.jam
(file-target.specific-main-target): Check not only free, but also
dependency properties when deciding if targets is specific to the main
target.
* new/dependency_property.py: New test.
[SVN r18363]
* new/builtin.jam: Register RSP and IMPORT_LIB types, and associated
generators unconditionally, since the previous behaviour made using
the same dir for testing from linux and windows inconvenient:
"using msvc" was causing errors on linux because RSP type was not defined.
[SVN r18362]
(generator.match-rank): Count also requirements when determining the rank,
not only optional properties.
(generator.run): Always set 'multiple' to true.
[SVN r18352]
* new/virtual-target.jam
(from-file): Pass target name via "path.make".
(abstract-file-target.actual-name): Pass target name via "path.native".
* test/absolute_sources.py: New test.
[SVN r18324]
* new/stage.jam
(stage-target-class.check-for-unused-sources): Override base method with
an empty one, since the inherited logic does not make any sense for stage.
[SVN r18295]
* Add the missing recursive display of docs when specifying --help-enable-detailed. Using it with --help-all will produce most of the available docs at once.
[SVN r18290]
* 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]