Age | Commit message (Collapse) | Author | Files | Lines | |
---|---|---|---|---|---|
2022-05-05 | Recognize -pthread as king of -l in *.libs | Boris Kolpackov | 4 | -38/+56 | |
2022-05-05 | Allow linking libraries without any sources/headers with hint | Boris Kolpackov | 1 | -3/+8 | |
This can be useful for creating "metadata libraries". | |||||
2022-05-02 | Don't verify parser replay integrity if exception is being thrown | Boris Kolpackov | 1 | -3/+21 | |
2022-04-25 | Rename cmdline to b_cmdline, and options to b_options | Boris Kolpackov | 6 | -199/+199 | |
2022-04-24 | Omit ignorable change detection for header units | Boris Kolpackov | 1 | -1/+9 | |
Since the checksum ignores preprocessor directives, this may cause us to ignore a change to an exported macro. | |||||
2022-04-24 | Fix bug in previous commit | Boris Kolpackov | 1 | -1/+1 | |
2022-04-24 | Recognize ARM64 as MSVC target | Boris Kolpackov | 1 | -12/+19 | |
2022-04-21 | Work around bogus -Wrestrict in GCC 12 (GCC bug #105329) | Boris Kolpackov | 2 | -4/+10 | |
2022-04-20 | Fix bug in recursively-binless detection logic | Boris Kolpackov | 1 | -1/+5 | |
2022-04-20 | Get rid of unnecessary move() call | Boris Kolpackov | 1 | -1/+1 | |
2022-04-20 | Replace match_extra::buffer with more general data storage facility | Boris Kolpackov | 6 | -14/+84 | |
2022-04-20 | Add explicit flag to more efficiently avoid repeated load_root() calls | Boris Kolpackov | 2 | -20/+23 | |
2022-04-20 | Add import cache | Boris Kolpackov | 2 | -2/+77 | |
2022-04-19 | Use target recipe for auxiliary data storage during match-apply | Boris Kolpackov | 18 | -145/+286 | |
In particular, we now have separate auxiliary data storage for inner and outer operations. | |||||
2022-04-19 | Switch to using std::function for target::data_pad | Boris Kolpackov | 10 | -52/+98 | |
2022-04-19 | Optimize header cache some more by storing hash in key | Boris Kolpackov | 2 | -4/+42 | |
2022-04-19 | Skip find() inside target_set::insert*() if target is unlikely to be there | Boris Kolpackov | 5 | -14/+39 | |
2022-04-19 | Switch recipe from std::function to butl::move_only_function_ex | Boris Kolpackov | 5 | -45/+24 | |
2022-04-19 | Cache "recipe is group_action" information, clear recipes after execution | Boris Kolpackov | 4 | -12/+25 | |
2022-04-18 | Avoid locking target set if in load phase | Boris Kolpackov | 5 | -30/+65 | |
2022-04-15 | Tweak match progress display parameters | Boris Kolpackov | 1 | -1/+1 | |
2022-04-15 | Throttle progress display during match | Boris Kolpackov | 1 | -8/+31 | |
2022-04-15 | Adjust small vector limit in process_libraries() | Boris Kolpackov | 2 | -43/+86 | |
2022-04-15 | Omit unnecessary clearing of cached base_scope values | Boris Kolpackov | 3 | -2/+13 | |
2022-04-15 | Get rid of target::dynamic_type() virtual function | Boris Kolpackov | 9 | -126/+291 | |
Instead of overriding this function, derived targets must now set the dynamic_type variable to their static_type in their constructor body. | |||||
2022-04-14 | Add header cache to cc::compile_rule::enter_header() | Boris Kolpackov | 6 | -35/+202 | |
2022-04-13 | Fix bug in previous commit | Boris Kolpackov | 1 | -1/+1 | |
2022-04-13 | Prune library graph traversal for recursively-binless libraries | Boris Kolpackov | 3 | -57/+213 | |
2022-04-13 | Add automatic interface dependency deduplication in cc::process_libraries() | Boris Kolpackov | 3 | -18/+92 | |
2022-04-13 | Cache target base scope lookups | Boris Kolpackov | 4 | -21/+84 | |
2022-04-08 | Fix race in phase lock contention counting | Boris Kolpackov | 2 | -7/+8 | |
2022-04-08 | Register ad hoc rules for configure in addition to dist | Boris Kolpackov | 1 | -8/+12 | |
2022-04-08 | Optimize update_during_match() | Boris Kolpackov | 2 | -8/+17 | |
2022-04-08 | Add phase switch contention to build statistics | Boris Kolpackov | 2 | -1/+14 | |
2022-04-08 | Add hint-less rule match pass for non-perform meta-operations as fallback | Boris Kolpackov | 1 | -116/+143 | |
2022-04-07 | Rename {match,execute}() to *_sync(), add *_complete() | Boris Kolpackov | 13 | -137/+160 | |
In particular, the match() rename makes sure it doesn't clash with rule::match() which, after removal of the hint argument in simple_rule, has exactly the same signature, thus making it error-prone to calling recursively. | |||||
2022-04-06 | Get rid of stray trailing commas | Boris Kolpackov | 1 | -6/+6 | |
2022-04-06 | Work around Clang warnings | Boris Kolpackov | 1 | -0/+4 | |
2022-04-06 | Add support for specifying custom ad hoc pattern rule names | Boris Kolpackov | 2 | -7/+61 | |
Besides diagnostics, this allows us to use name in the rule hint, for example: [rule_name=hello.link] exe{~'/(.*)/'}: obje{~'/\1/'} {{ $cxx.path -o $path($>) $path($<[0]) }} [rule_hint=hello] exe{hello}: obje{hello} obje{hello}: c{hello-c} | |||||
2022-04-06 | Add support for rule hints | Boris Kolpackov | 54 | -249/+633 | |
A rule hint is a target attribute, for example: [rule_hint=cxx] exe{hello}: c{hello} Rule hints can be used to resolve ambiguity when multiple rules match the same target as well as to override an unambiguous match. | |||||
2022-03-31 | Use own type information instead of dynamic_cast in target::is_a() | Boris Kolpackov | 3 | -24/+35 | |
2022-03-31 | Get rid of unnecessary dynamic_cast call | Boris Kolpackov | 1 | -3/+5 | |
2022-03-31 | Add missing init_process() call in regex unit test | Boris Kolpackov | 1 | -0/+5 | |
2022-03-30 | Infrastructure for library metadata support | Boris Kolpackov | 4 | -10/+335 | |
2022-03-29 | Add variable_map::lookup_namespace(string) overload | Boris Kolpackov | 4 | -8/+14 | |
2022-03-28 | Respect dry-run in Windows assembly creation logic | Boris Kolpackov | 1 | -3/+8 | |
2022-03-28 | Add ability to customize pkg-config header and library search paths | Boris Kolpackov | 5 | -11/+58 | |
Specifically, {cc,c,cxx}.pkgconfig.{include,lib} variables specify header (-I) and library (-L) search paths to use in the generated .pc files instead of the default install.{include,lib}. Relative paths are resolved as install paths. | |||||
2022-03-25 | Store bin.whole flag in pkg-config files | Boris Kolpackov | 2 | -14/+47 | |
2022-03-23 | Add note on disfig.* variables idea | Boris Kolpackov | 1 | -0/+16 | |
2022-03-23 | Make project configuration variables non-nullable by default | Boris Kolpackov | 1 | -4/+46 | |
A project configuration variable with the NULL default value is naturally assumed nullable, for example: config [string] config.libhello.fallback_name ?= [null] Otherwise, to make a project configuration nullable we use the `null` variable attribute, for example: config [string, null] config.libhello.fallback_name ?= "World" |