2
0
mirror of https://github.com/boostorg/build.git synced 2026-02-14 12:42:11 +00:00
Commit Graph

11276 Commits

Author SHA1 Message Date
Aaron Boman
ca9b6035ba Optimize PropertySet class. 2016-10-27 20:22:02 -05:00
Aaron Boman
5292c95e29 Optimize PropertySet creation.
The Property class has been updated so that passing in the same
parameters will always return the same Property instance. Since
no duplicate Property instances will be created, we can assign
a unique ID to each instance. This allows us to create a faster
lookup key when determining whether to create a new PropertySet
or use an existing one as integer comparison is much faster than
(string, string) comparison.
2016-10-27 20:22:02 -05:00
Aaron Boman
7f7995879b Optimize Property comparisons. 2016-10-27 20:22:02 -05:00
Aaron Boman
6f04175044 Convert all Property and Feature gettters to attribute access. 2016-10-27 20:22:01 -05:00
Aaron Boman
42ffca9c1c Optimize replace_grist() and forward_slashes(). 2016-10-27 20:22:01 -05:00
Aaron Boman
e3b93cffcb Optimize set.difference(). 2016-10-27 20:22:01 -05:00
Aaron Boman
0999a4f1ef Optimize CScanner in builtin.py 2016-10-27 20:22:01 -05:00
Aaron Boman
4bbde8e2b8 Fix duplicate virtual target error message. 2016-10-27 20:22:01 -05:00
Aaron Boman
0228b8ed7d Various fixes in toolset.py 2016-10-27 20:22:00 -05:00
Aaron Boman
8c406a88cf Save best alternative on metatargets.
This is useful for virtual target reporting to report which
alternative was chosen.
2016-10-27 20:22:00 -05:00
Aaron Boman
51e665fc45 Various fixes in targets.py 2016-10-27 20:22:00 -05:00
Aaron Boman
bb1fa52a2f Set target location on metatargets. 2016-10-27 20:22:00 -05:00
Aaron Boman
f663fd8163 Update set_abbreviated_paths() to work from Jam. 2016-10-27 20:22:00 -05:00
Aaron Boman
42e0899eed Add bjam_signature() to feature.extend(). 2016-10-27 20:22:00 -05:00
Aaron Boman
67bafcd133 Add LazyProperty class for delayed Property evaluation. 2016-10-27 20:21:59 -05:00
Aaron Boman
d7b2e0974c Update gitignore to ignore *.pyo and b2/bjam.exe 2016-10-27 20:21:59 -05:00
Aaron Boman
0055072ad6 Support passing --stacktrace to tests. 2016-10-27 20:21:59 -05:00
Aaron Boman
88f567f2ff Prevent backreferences from breaking regex.transform(). 2016-10-27 20:21:59 -05:00
Aaron Boman
a56aca9212 Fix path.glob(). 2016-10-27 20:21:59 -05:00
Aaron Boman
1c315cf87b Update unix.ArchiveGenerator.run(). 2016-10-27 20:21:59 -05:00
Aaron Boman
1080608e11 Remove CScanner from cpp.py as it was already declared in builtin.py 2016-10-27 20:21:58 -05:00
Aaron Boman
8ee37e2afe Fix asm.set_asm_type() return value. 2016-10-27 20:21:58 -05:00
Aaron Boman
83de3c5827 Fix call to alias() in testing.py. 2016-10-27 20:21:58 -05:00
Aaron Boman
404ae8a89d Incorrect type passed in rc.py 2016-10-27 20:21:58 -05:00
Aaron Boman
359f21c237 Fix incorrect type passed in msvc.py 2016-10-27 20:21:58 -05:00
Aaron Boman
aaf9187883 Add support for faster MSVC Startup script. 2016-10-27 20:21:58 -05:00
Aaron Boman
aa49e0a141 Fix msvc.preprocess action name in msvc.py. 2016-10-27 20:21:57 -05:00
Aaron Boman
643bc6f410 Fix toolset.flags() call for 'mc.compile' in mc.py. 2016-10-27 20:21:57 -05:00
Aaron Boman
e50815353e Add preprocessor support in gcc.py/ 2016-10-27 20:21:57 -05:00
Aaron Boman
1fee455656 Fix function called with wrong type in gcc.py. 2016-10-27 20:21:57 -05:00
Aaron Boman
eb097ad804 Fix options bug in gcc.py 2016-10-27 20:21:57 -05:00
Aaron Boman
b4b5e3179e Clean up common.MkDir in common.py. 2016-10-27 20:21:57 -05:00
Aaron Boman
2371e387a0 Make the command line outputs like that of Jam. 2016-10-27 20:21:56 -05:00
Aaron Boman
d5a07dcdb3 Fix get_invocation_command_nodefault().
It was possible for command to be None. Thus, calling ' '.join(None) directly
would error out.
2016-10-27 20:21:56 -05:00
Aaron Boman
8f0b57e54e Fix cast() rule.
Previously, only the TYPE was allowed and not the type's rule.
This brings the Python port up to date with Jam.
2016-10-27 20:21:56 -05:00
Aaron Boman
aa42913e08 Finish porting the ArchivingGenerator. 2016-10-27 20:21:56 -05:00
Aaron Boman
593f615a1a Prevent LinkingGenerator from direclty modifying its source list. 2016-10-27 20:21:56 -05:00
Aaron Boman
a216a9a2c8 Set CScanner as scanner for H and HPP types. 2016-10-27 20:21:56 -05:00
Aaron Boman
0e164d20d2 Fix inconsistency with <asynch-exceptions> in builtin.py. 2016-10-27 20:21:55 -05:00
Aaron Boman
cb8402239d Remove unnecesary comments in build_system.py 2016-10-27 20:21:55 -05:00
Aaron Boman
1281499719 Fix --ignore-toolset-requirements flag. 2016-10-27 20:21:55 -05:00
Aaron Boman
4a37e4b147 Update version.py 2016-10-27 20:21:55 -05:00
Aaron Boman
5471945b4d Fix bjam_signature for set_generated_target_prefix(). Update docs. 2016-10-27 20:21:55 -05:00
Aaron Boman
707a56e9b5 Prevent already registered type error.
A type can be registered as inheriting from a base type, however,
due to lazy loading, it's possible for that base type to not have
been registered yet. Originally, calling type.register() with an
unregistered base type would have registered the base type. Later,
when the base type itself was registered, an error would have been
raised saying that the base type was already registered.

This change allows for lazy loading to occur such that a base type
can be registered after a subtype is has already inherited from it.
2016-10-27 20:21:55 -05:00
Aaron Boman
98f1c4b92f Remove unused import in scanners.py and update base Scanner.process signature. 2016-10-27 20:21:54 -05:00
Aaron Boman
3b453b85e5 Fix typos in project.py 2016-10-27 20:21:54 -05:00
Aaron Boman
b3d45f8694 Fix project initialization and loading.
The recently added __python_module_cache broke project.initialize().
This fixes the standalone Python file loading.
2016-10-27 20:21:54 -05:00
Aaron Boman
7737c858ac Remove unnecessary file. 2016-10-27 20:21:54 -05:00
Aaron Boman
8039dc0fd8 Update generators to match Jam.
The generator methods referred to `bypassed` and `consumed`. `bypassed`
is no longer present in Jam and so any reference to that variable has been
removed.
2016-10-27 20:21:54 -05:00
Aaron Boman
c07100423e Provide help message when generator is handed empty list of sources.
In Jam, the language itself would raise an error when the sources list
was empty. In the Python port, it was assumed that sources was never
empty and would run into an IndexError when the empty sources list
tried to access the first element. This change checks sources first
and provides an error message in the event that sources is empty.

An empty source list can be passed in when the best alternative
evalutates to an empty list of sources. This target is then added
to a typed target, e.g. lib, which requires sources.
2016-10-27 20:21:54 -05:00