Problem detected & and a reproducible example constructed by Juraj Ivančić. Debugged by Vladimir Prus. Patched and packaged by Jurko Gospodnetić.
[SVN r48590]
with <include>a&&b
* tools/buitin.jam
(c-scanner.__init__) split includes at &&
* test/test_all.py test/ordered_include.py
Test case for this fix.
[SVN r47537]
not cause errors in subprojects.
* build/property.jam
(tranlate-dependencies) New rule to bind dependency
properties to the project that they are specified in.
* build/property-set.jam
(create-from-user-input) Add call to property.translate-dependencies
* test/test_all.py test/inherited_dependency.py
Test case for this fix.
[SVN r47536]
When scanning directories and creating a list of all their content (filent.c) it would identify all the located files and folders using their long file names. On the other hand, referencing a target using its short file name inside a Jam script caused Boost Jam to reference those files twice using two separate TARGET structures - one identified using the file's short name and one using the file's long name.
One bad example was the MkDir which would always attempt to create a folder identified by its short name even if that folder already existed (due to the NOUPDATE rule getting applied on the incorrect TARGET).
The change does not affect targets whose names do not represent existing file names.
Also, it seems to me that the short_path_to_long_path() call in file_dirscan() in the filent.c module should most likely be moved to file_info() in the filesys.c module. This would make mapping file names to file_info_t & TARGET structures consistent. However, I have not done this in this patch just to make the patch as minimal as possible.
Prepared tests have been do nothing on non Windows platforms.
[SVN r45144]
* BoostBuild.py; Make the matching of content and files be more loose and use pattern globbing of toolset names.
* glob.py/project_glob.py; Rename to avoid collision with builtin Python module.
* all; Update copyrights and license info.
[SVN r35729]
affect the names of the generated targets and only usefull for preventing
V2 from treating two independent targets as target alternatives.
[SVN r32720]
There were two problems:
- 'glob' was using __name__ as the name of the project and not
project.current, so it would search in project root, and not in child
project that inherited project root rules.
- the 'import' that's overrided in project context used __name__ to
restore the value of current project
Thanks to Emil Dotchevski for the bug report.
[SVN r30507]
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]