Age | Commit message (Collapse) | Author | Files | Lines | |
---|---|---|---|---|---|
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" | |||||
2022-03-23 | Clarify config::save_*_omitted semantics | Boris Kolpackov | 1 | -5/+12 | |
2022-03-22 | Add ability to disfigure specific configuration variables | Boris Kolpackov | 1 | -0/+27 | |
The new config.config.disfigure variable can be used to specify the list of variables to ignore when loading config.build (and any files specified in config.config.load), letting them to take on the default values. For example: $ b configure config.config.disfigure=config.hello.fancy | |||||
2022-03-21 | Filter out exe{} prerequisites in install group rule similar to file rule | Boris Kolpackov | 2 | -0/+29 | |
2022-03-21 | Make sure install group rule take precedence over fallback file rule | Boris Kolpackov | 1 | -2/+8 | |
2022-03-17 | Handle absolute POSIX paths in MinGW GCC search paths | Boris Kolpackov | 1 | -2/+34 | |
2022-03-17 | Diagnose invalid paths in -print-search-dirs output | Boris Kolpackov | 1 | -8/+28 | |
For example, some mis-configured MinGW GCC builds include /mingw/lib. | |||||
2022-03-15 | Don't consider mtime of failed to unmatch prerequisite in ad hoc recipe | Boris Kolpackov | 2 | -4/+7 | |
2022-03-11 | Add JSON format support for --structured-result option and info meta operation | Karen Arutyunov | 19 | -202/+797 | |
2022-03-11 | Allow effective quoting for names that need curly braces in their ↵ | Karen Arutyunov | 2 | -5/+4 | |
representations | |||||
2022-03-10 | Fix operator<<(ostream,target_state) | Karen Arutyunov | 2 | -0/+4 | |
2022-03-10 | Add reverse_execute_prerequisites() variant | Boris Kolpackov | 4 | -14/+154 | |
2022-03-10 | Remove update variable from source of synthesized dependency | Boris Kolpackov | 1 | -1/+14 | |
2022-03-09 | Rename execute_wait() to execute() | Boris Kolpackov | 3 | -26/+23 | |
The old half-way semantics of execute() wasn't useful. | |||||
2022-03-09 | Parallel implementation of update_during_match_prerequisites() | Boris Kolpackov | 5 | -34/+150 | |
2022-03-08 | Improve performance of update during match for multiple targets | Boris Kolpackov | 5 | -19/+95 | |
2022-03-08 | Update C/C++ headers and ad hoc sources during match by default | Boris Kolpackov | 1 | -19/+50 | |
Essentially, all headers as well as ad hoc headers and sources are now treated by the cc::link_rule as if they had update=match unless explicit update=execute is specified. | |||||
2022-03-08 | Add update=execute special value for cases where it's not default | Boris Kolpackov | 3 | -4/+6 | |