* 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]
- build.bat; added more possible locations for VC7.
- build.bat; added an alternate for finding bison (gnuwin32.sourceforge.net version).
- build.jam; added an alternate for finding bison (gnuwin32.sourceforge.net version).
- build.jam; removed some obsolete docs from distribution.
- build.jam; fixed path problem when packaging on windows, the debian directory.
- build.jam; added header scanning to create the extra dependencies to make building the grammar work correctly.
- build.jam; fixed building of the grammar to remove attempts at building it spuriously.
- build.jam; fixed building of grammar so that it doesn't delete existing files if the yacc execution fails.
- index.html; minor cleanup of language in some places.
- index.html; removed references to no longer packaged docs.
- *; updated the version to 3.1.5 in various places.
- build.*; tested on windows with vc7, metrowerks, mingw, and borland
[SVN r18703]
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]
and additionally:
* new/targets.jam
(generate): Create target for a file, when main target is not found.
(basic-target.generate-sources): Don't create targets for files.
[SVN r18668]
* new/project.jam
(lookup) Don't support project location in front of "@".
(lookup-with-load): Remove.
(find): New rule.
(find-target): move to...
* new/target.jam
(find): Here. And simplify.
[SVN r18667]
* kernel/bootstrap.jam: Allow option handler modules to indicate that
regular build process should be skipped.
* options/help.jam: Return 'true', don't EXIT. Existing prevents header
scanning, which is the mechanism that makes 'doc' module work.
* new/doc.jam: Import header scanning rule into global module.
(split-symbol): Handle the case where the are two modules with the same
name (e.g. V1 stlport.jam and V2 stlport.jam).
[SVN r18663]
metacharacters, Boost.Build misbehaved.
* new/path.jam
(all-parents): Don't use regex to strip path prefix, use a more robust
approach.
* test/bad_dirname.py: New test.
[SVN r18576]
build-system.jam - moved from tools/build/new to tools/build
boost-build.jam - moved from tools/build/new to tools/build/kernel
bootstrap.jam
errors.jam
modules.jam
test/BoostBuild.py - adjusted for the above modification
test/boost-build.jam
project-root.jam - renamed to "project-roots.jam" to avoid confusion
and conflict with the user's project-root.jam file
project.jam - adjusted for the above renaming
test/project-test1/project-test1.jam
type.jam - broke a circular module dependency
[SVN r18575]
role as well, so that small projects can use only one file.
* new/project.jam
(load): Load project root at the very start, in case it wants to
be Jamfile.
(act-as-jamfile): New rule.
(module-name): Allow to tweak the name of module associated with a location.
[SVN r18557]
* new/project.jam
(load): Prevent loading jamfile twice here, since we have all the
necessary data.
(load-jamfile): Don't try to check for duplicate loading (the check
was a bit clumsy, anywhay). Remove 'loaded-var' parameter.
[SVN r18556]
* new/project.jam
(inherit-attribute): New rule, extracted from 'initialize'.
(initialize): Allow 'jamfile' parameter to be empty, in which case
the project is 'standalone'.
[SVN r18544]
they are located. The problem with using the directory name is that we might
want toolset modules to act as project, and directory name is not unique then.
We might even want to declare two projects in the same module.
[SVN r18542]
* new/stage.jam
(stage-target-class.construct): Pass the result via
'virtual-target.register'. I wonder if virtual targets should
be create via 'virtual-target.create' which will invoke
'virtual-target.register' internally. Passing via 'register' was forgotten
in many places.
* test/stage.py: New test.
[SVN r18497]
* new/make.jam
(make): Pass 'default-build' in the right position.
* new/targets.jam
(basic-target): Use empty property-set if no default-build is passed.
(main-target): Use 'raw' to test property-set for emptines. The string
emptyness test that use to be there does not works for property-sets.
[SVN r18440]
default build was stored as plain list, and implied properties were not
converted. E.g. we had "debug release", not "<variant>debug <variant>release",
which was assumed.
* new/targets.jam
(main-target, basic-target): Store 'property-set' as default-build
attribute.
(main-target-default-build): Use 'property-set.create-with-validation'.
* new/property-set.jam
(create-with-validation): New rule.
* test/default_build.py: More tests.
[SVN r18436]
translation. Cleaned up indentation and idiomatic use of string.
* index.html - documented recent features including VARNAMES and
DELETE_MODULE
* borland.jam, msvc.jam - use the new :W modifier to simplify
code (but only somewhat)
* BoostBuild.py - ignore MSVC .ilk files under Cygwin and NT
[SVN r18434]
Consequently rolled back the workaround in make_rule.py
* Added new indirect rule invocation module for encoding the module to
invoke a rule from as well as the exact name to invoke it by, and
for subsequent invocation.
* Fixed module __test__ rules so they really do execute in a separate
module. Associated tweaks to __test__ in path.jam
[SVN r18427]
* 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]