attribute which controls where generated targets are put,
much in the same was as ALL_LOCATE_TARGET.
* new/virtual-target.jam
(virtual-target.path): Respect build dir.
(virtual-target.actualize-location): Don't
compute path, but call call instead.
* new/project.jam
(initialize): Set default value for 'build-dir'.
(project-attributes.set): Handle 'build-dir'.
* new/path.jam
(relative): New rule.
* test/build_dir.py: New test.
[SVN r16589]
* gcc.jam: Handle the <dll-path> feature.
* builtin.jam
New features <dll-path> and <hardcode-dll-paths>.
(link-action.adjust-properties): Add library's
full paths to <dll-path> when <hardcode-dll-paths>
is specified.
[SVN r16588]
* new/targets.jam
(basic-target.generate): Use 'generate-dependencies'
for use requirements on this target.
* test/use_requirements.py: More tests.
[SVN r16580]
* new/generators.jam
(find-viable-generators): Allow target type of
"*" mean any type. Try generators for "*" first.
Really ignore generators for base types when
there's a generator for derived type. Allow
grist-only element in generators requirements
to match all values of property.
* new/prebuilt.jam
(prebuilt-target-class): Remove
(prebuild-file-generator): New class.
[SVN r16578]
introduce separate <link-runtime> feature.
Allow to use the 'lib' rule to declare
libraries that should be searched for.
* builtin.jam: Remove 'shared' features. Introduce
'link' and 'link-runtime'.
(searched-lib-target): New class
(searched-lib-generator): New generator.
(lib-action): New class, derived from 'action'.
Handles instances of 'searched-lib-target' in sources.
Also, moves all libraries from sources to property value,
so that we can repeat them twice in command line.
(lib-generator): Generator which uses 'lib-action'.
* generators.jam: Allow empty list of sources everywhere.
* virtual-target.jam (file-target): Split into
'abstract-file-target' and 'file-target'.
(abstra
(action.actualize-sources): New rule. Allows to
handle the fact that some sources are special,
and should not become $(>) in action body.
[SVN r16573]
in it. Don't generate all main target into separate subdirectories
in this case.
* new/targets.jam:
(project-target.reference-properties): New method
(generate): Moved from basic-target.generate-source
(generate-dependencies): New rule.
* test/project_dependencies.py: New test.
[SVN r16453]
* gcc.jam: Extend the 'toolset' feature with gcc here.
Use flags for linking too and eliminate 'link-options'
rule. Remove empty compile/archive/link/link-dll rules.
* toolset.jam (flags): Document somehow.
(set-target-variables): Call 'actualize' on values
of dependency features.
[SVN r16440]
* boost_build_v2.html: Document new option.
* new/generators.jam (find-viable-generators): Revert part of Dave's
commit, essentially disabling finding base type generators.
This part breaks a test, and need to be thinked about.
* new/errors.jam: Handle "--no-error-backtrace" option.
* test/project_test4.py: Adjust for new error syntax.
[SVN r16233]
* new/common.jam (copy): New rule.
* new/targets.jam (main-target.generate): Use a different
algorith for selecting subvariant. Favour one with
the longest intersection of requirements with build
properties.
* new/virtual-target.jam (virtual-target): Eliminate 'subvariant'
attribute. Use properties of action to for the same
purpose. New methods 'set-path' and 'extra-grist'.
[SVN r16129]
targets are specified as sources, not only as dependency properties.
* new/virtual-target.jam (subvariant-dg): Note which sources
are roots of dependency grapgs and record those graphs.
[SVN r16095]
* new/virtual-target.jam
(virtual-target.use-requirements): New rule.
(virtual-target.set-use-requirements): New rule.
* new/generators.jam (construct): Use 'use-requirements' of sources.
* new/targets.jam (basic-target.generate): Store use requirements for
generated targets.
(main-target-alternative): Process use requirements.
* new/project.jam: Support 'use-requirements' project attribute.
[SVN r15821]
* project.jam (lookup-with-load): New rule.
(find-target): Try interperting target id as project first.
* build-request.jam (from-command-line): Don't grab
unconditionally elements which have slashes -- they may be target
ids.
* build-system.jam: Allow target ids is command
line. Accept --clean option.
* BoostBuild.py (run_build_system): Call 'ignore_directoies' on diff.
* tree.py (Trees_different.ignore_directoies): New method.
[SVN r15768]
* new/virtual-target.jam (clone-template): Improve interface and logic.
* new/make.jam (make-target-class.construct): Set type and suffix on
generated targets.
* new/generators.jam (construct): Make sure all targets have known
types.
[SVN r15766]
* builtin.jam (variant): New rule.
* build-system.jam: Unconditionally add <toolset>gcc to build
request. Will be fixed when toolset support is ready.
* feature.jam (extend-feature): Bugfix.
[SVN r15678]
* targets.jam
(abstract-target.direct-build-request): New rule.
(project-target.direct-build-request): New rule.
(main-target.direct-build-request): New rule.
(main-target.generate): Use data stored by
'direct-build-request' to adjust build properties.
* build-system.jam: Call 'direct-build-request' on project
target in "."
* feature.jam (feature): Don't allow propagated free features.
[SVN r15677]
* new/builtin.jam: Make 'obj' main type.
* new/generators-test/*: Try compiling the same CPP file with
different defines and linking in the same exe.
[SVN r15649]
* jam_src/builtins.c: New builtin SEARCH_FOR_TARGET.
* jam_src/rules.c
(bind_explicitly_located_targets): New function.
(search_for_target): New function.
* jam_src/make.c (make): Call 'bind_explicitly_located_targets()'
immediately on entering.
* jam_src/search.c (call_bind_rule): No longer 'static'.
* new/builtin.jam (c-scanner.process): Real implementation.
* test/dependency_test.py: Really test for dependencies.
[SVN r15646]
* virtual-target.jam (virtual-target.actualize): Accept
'scanner' parameter and create different actual targets
for different values of that parameter.
(virtual-target.includes): Remove.
(binding): New rule
(remember-binding): New rule.
* type.jam (set-scanner): New rule. (get-scanner): New rule.
* scanner.jam: New file.
* class.jam (__init__): Define __name__ in class scopes.
* builtin.jam (c-scanner): New scanner class, associated with CPP
files.
[SVN r15644]
* virtual-target.jam (traverse): New rule, returns a list of
targets, given the graph root.
(subvariant-dg): New class, to keep all targets for a given
subvariant.
(virtual-target.dg): New rule to access subvariant-dg.
(virtual-target.path): New rule
* targets.jam (main-target.generate): Assign subvariant dg to all
created targets.
* builtin.jam (compile-action.adjust-properties): Use subvariant
dg to find all targets, their location, and add those location
to include path.
[SVN r15619]
For example, this would allow compilers to add generated headers into include
path.
* virtual-target.jam (action.adjust-properties): New rule.
(clone-action-template): Don't slice cloned object.
* generators.jam (generator.action-class): New rule, to allow
overriding action class on per-generator basis.
* builtin.jam (compile-action): New class.
(C-compiling-generator): New class.
* gcc.jam: Use C-compiling-generator for gcc. Honor includes.
[SVN r15618]
- Got rid of vectors of vectors in generators code. That was not only slow, it
was also troublesome.
- Started work on transformation caching. Works but needs review/cleanup.
[SVN r15465]
prevents complining the same source twice with the same properties.
Also allow generators to change source names using patterns.
* new/generators.jam (generator): Accept name patterns together with
target types.
(generator.generated-targets): Use name patterns. Transform generated
targets with 'virtual-targets.register', to eliminate duplicate
virtual targets.
[SVN r15302]
* new/targets.jam: Use 'common' instead of 'utility'.
* test/project_test3.py: Test that 'clean' works.
* test/svn_tree.py: Sync with upstream revision 2944. Fix a bug
which caused empty directory to be treated as file.
[SVN r14886]
* test/TestCmd.py (TestCmd.cleanup): Print the names of preserved
directories. Reset self._dirlist even if directories are preserved.
* test/BoostBuild.py (Tester.cleanup): New method.
[SVN r14489]
* new/targets.jam (main-target.generate) Add extra path component to
virtual target which free properties are not equal to project's.
(basic-target.generate): Pass refined properties to 'construct'.
(virtual-target.extra-path): New rule.
(virtual-target.actualize): Make use of extra path.
* new/property.jam (take-free): New rule.
[SVN r14396]
* new/target.jam (main-target.generate): Give a more detailed error
message when no alternative is found. (basic-target.generate):
Don't exit with error when requirements can't be satisfied. Just
return an error string.
[SVN r14393]
* new/targets.jam (main-target.generate): Select the alternative
based on the list of non-free requirements.
* new/property.jam (remove-free): New rule, removes free property from
a property set.
[SVN r14391]
* test/TestCmd.py: Cause the names of preserved directories to be
printed.
* test/test_system.html: Document "PRESERVE*" environmental variables
and "pass_test"/"fail_test" methods.
[SVN r14389]
* new/property.jam (make): New rule, constructs property set from
what the user gives. Handles implicit features.
* new/project.jam, new/targets.jam: Use 'property.make'.
[SVN r14370]
* new/project.jam (project-attributes): New class to keep all the
project related data. (attritutes, attribute): New rules to access
the project attributes. (target): New rule to access the project
target for a jamfile module.
(initialize): Store attribute in project-attributes instance.
(project): Moved to jamfile module.
(assign-option): Moved with modifications to project-attributes.get.
* new/targets.jam, new/project-root.jam, new/make.jam,
new/build-system.jam: Induced changes.
[SVN r14362]
* new/project.jam (lookup): Bugfixes. (find-target): Attempt to load
project specified by project id.
Project module rules:
project: Allow empty id.
use-project: New rule.
* new/targets.jam: (basic-target.generate-source): Correct a bug in
separating target id from extra properties.
[SVN r14341]
* new/build-request.jam (expand-with-defaults): New rule
* new/build-system.jam, new/targets.jam: Use 'expand-with-defaults' instead
of 'expand'.
* new/builtin.jam: Define new feature 'threading'.
* test/project_test3.py: Test that feature defaults are applied.
[SVN r14307]
* new/build-request.jam (from-command-line): New rule.
* new/build-system.jam: Get build request from the command line,
expand it and pass to 'generate' rules.
* new/targets.jam: Use targets's properties when computing path.
* test/project_test3.py: Test the above changes.
[SVN r14283]
* new/project-root.jam (load): Really produce an error message when
project root file is not found.
* test/project_test3.py: Test for the error reporting.
[SVN r14280]
* new/targets.jam: Check for duplicate 'basic-target::generate()' calls.
Use better logic to tell is source is another main target or file.
(project-target::has-main-target): New rule.
* new/project.jam (lookup): Fixes. (find-target): Implemented.
* new/make.jam: New file, defines the 'make' rule and associated target
class.
* new/build-system.jam: Import 'make'. Generate virtual targets and
actualize them.
* new/utility.jam: Added "MkDir" rule and actions.
* test/project_test3.py: New test.
[SVN r14249]
* new/targets.jam: Considerably changed.
* new/project.jam: Projects now return project targets via 'target' rule.
Requirements are inherited. Renames 'subinclude(s)' to 'subproject(s)'.
(find-jamfile): Rewritten, which fixes some bugs.
* new/project-root/jam: (print): Sort projects first by they id, which
makes order more predictable.
* test/project-test1.py: Also run test from the 'project-test1' dir.
* test/project-test2.py: New test.
[SVN r13681]
* test/BoostBuild.py (Tester.__init__): New paremeter 'arguments'. Add
BOOST_BUILD_PATH to the command line.
(Tester.set_tree): Make files writable after copying.
(Tester.copy): New method
(Test.read): Open file in read mode.
* test/test_system.html: Documented the above changes. Small cleanups.
* new/test.jam: Remove bootstrap code.
* new/readme.txt: Changed command line for running unit tests.
[SVN r13678]
* property.jam (refine-properties): New rule.
* feature.jam: New feature attribute 'link-incompatible'.
* test.jam: Test the property module.
[SVN r13640]
* new/project.jam (lookup): Require second argument, which specifies
directory, relative to which paths in id should be interpreted.
* test/project-test1.jam: Test for the above change.
[SVN r13636]
* BoostBuild.py
(Tester.expect_nothing): New method.
(Tester.run_build_system): Added 'subdir' argument. Take a nap
after running bjam, so that further touches to files are detected.
* test_system.html
Document the above changes. Document earlier changes to List{}.
Fixed typos.
[SVN r13522]
* regex.jam (split): Change behavour with regard to separators at
the beginning of string.
* os.path.jam (has_parent, parent, join): Allow relative paths to
point upward.
(all_parents): new rule
Added support for unix pathes.
[SVN r13279]
committing in tools/build
Modified Files:
build_system.htm
Documented:
local rules
the RULENAMES rule
the EXPORT rule
the BACKTRACE rule
new IMPORT semantics
-d+12 Dependency Graph Output
Crude Argument Binding
Variable numbers of arguments
jam_src/compile.c
implemented RULENAMES, EXPORT, varargs support, new IMPORT semantics
removed unused variables
jam_src/make1.c
jam_src/hdrmacro.c
removed unused variables
jam_src/jamgram.{c,h,y,yy}
"module local x" does not change module local value of x
if it is already set.
jam_src/lists.[ch]
added list_pop_front()
new/assert.jam new/boost-build.jam
new/build-system.jam new/errors.jam
new/modules.jam new/os.path.jam
beginnings of new build system
test/check-arguments.jam
test/check-jam-patches.jam
test/echo_args.jam
Added tests for recent core modifications; comments
Added Files:
new/feature.jam new/property.jam
new/readme.txt new/sequence.jam
new/test.jam
beginnings of new build system
----------------------------------------------------------------------
[SVN r11789]
Modified Files:
allyourbase.jam build_system.htm new-split.jam
Tag: jam_src
jam_src/Jambase jam_src/compile.c jam_src/compile.h
jam_src/headers.c jam_src/jam.c jam_src/jam.h
jam_src/jambase.c jam_src/jamgram.c jam_src/jamgram.h
jam_src/jamgram.y jam_src/jamgram.yy jam_src/jamgramtab.h
jam_src/lists.c jam_src/lists.h jam_src/makedebugjam.bat
jam_src/modules.c jam_src/modules.h jam_src/newstr.c
jam_src/newstr.h jam_src/parse.c jam_src/parse.h
jam_src/rules.c jam_src/rules.h jam_src/search.c
jam_src/subst.c
No tag
test/check-jam-patches.jam
Added Files:
boost-build.jam
----------------------------------------------------------------------
allyourbase.jam
Fix the way new-split.jam is included, by using $(JAM_VERSION) to detect the
presence of new language features.
build_system.htm
Updated documentation to include core Jam extensions.
jam_src/Jambase
Updated so that the built-in Jambase can be completely overridden based on
JAMBASE, BOOST_ROOT, and BOOST_BUILD_PATH environment variables.
jam_src/compile.{c,h}
Added IMPORT and CALLER_MODULE rules, header legend for profile dump. Moved
regex_compile so it could be used by more functions.
jam_src/headers.c, jambase.c, jamgram.{c,y,yy}, search.c, subst.c
Adjusted for the addition of FRAMEs, which was needed for CALLER_MODULE.
jam_src/jam.c
added JAM_VERSION and started using FRAMEs.
jam_src/jam.h
swapped the -d argument numbers that were used by profiling and parse debugging.
jam_src/lists.{c,h}
Pulled stack frames out of LOL and put them where they belong, in the interpreter.
jam_src/modules.{c,h}
Use strncat instead of strncpy to get predictable behavior.
jam_src/parse.{c,h}, rules.{c,h}
Adjust for FRAMEs, and added a rulename field in the PARSE node to support
profiling with modules.
test/check-jam-patches.jam
Added tests for IMPORT and CALLER_MODULE
[SVN r11427]
Modified Files:
Jambase allyourbase.jam
Tag: jam_src
jam_src/Jamfile jam_src/command.c jam_src/common.mk
jam_src/compile.c jam_src/compile.h jam_src/hash.c
jam_src/hash.h jam_src/jambase.c jam_src/jamgram.c
jam_src/jamgram.h jam_src/jamgram.y jam_src/jamgram.yy
jam_src/jamgramtab.h jam_src/lists.c jam_src/lists.h
jam_src/make1.c jam_src/makedebugjam.bat jam_src/newstr.c
jam_src/newstr.h jam_src/parse.c jam_src/parse.h
jam_src/rules.c jam_src/rules.h jam_src/search.c
No tag
test/check-arguments.jam test/check-bindrule.jam
test/check-jam-patches.jam test/recursive.jam
test/test_nt_line_length.jam
Added Files:
Tag: jam_src
jam_src/modules.c jam_src/modules.h
Removed Files:
Jamfile
----------------------------------------------------------------------
Jambase
Removed obsolete check-arguments rule
allyourbase.jam
Added different split rule definition for new Jam executable when
NEW_BOOST_JAM is set.
Jamfile
removed (this file was flotsam)
jam_src/Jamfile
Added module.c; allowed yyacc to run under NT
jam_src/command.c
jam_src/make1.c
added rule body/action reference-counting
jam_src/common.mk
Added modules.c
jam_src/compile.c
account for rule body/action reference-counting
added "module { ... }, module local..." support
cleaned up code for evaluate_rule
jam_src/compile.h
jam_src/parse.{c,h}
Added module support
jam_src/hash.{c,h}
Added a data parameter to hashenumerate() for flexibility
jam_src/jamgram.{yy,y,c,h}
jam_src/jamgramtab.h
jam_src/lists.{c,h}
Added module support
refactored grammar slightly
jam_src/makedebugjam.bat
removed bogus invocation of yyacc
cleaned up redundant variable settings
jam_src/modules.{c,h} - added
jam_src/rules.{c,h}
added rule body/action reference-counting
module support
free list for SETTINGS
jam_src/search.c
cleaned up a confusing name
test/check-arguments.jam
added copyright notice
made it stand on its own
test/check-bindrule.jam
test/recursive.jam
use new argument-list feature
test/check-jam-patches.jam
tests for:
new SUBST behavior,
"for local <var> in ...",
while loops,
negative indices/slices
module rules and locals
test/test_nt_line_length.jam
commenting and cleanup
[SVN r11411]