Age | Commit message (Collapse) | Author | Files | Lines | |
---|---|---|---|---|---|
2022-02-09 | Add perform_clean_group_extra() | Boris Kolpackov | 2 | -123/+151 | |
2022-02-09 | Add read-only mode to depdb | Boris Kolpackov | 3 | -58/+98 | |
2022-02-07 | Add support for meta-operation wildcard in scope::insert_rule() | Boris Kolpackov | 2 | -1/+31 | |
2022-02-07 | Make match_inc_dependents() part of public API | Boris Kolpackov | 3 | -5/+10 | |
2022-02-07 | Use target::as instead of static_cast everywhere | Boris Kolpackov | 3 | -8/+8 | |
2022-02-02 | Work around issue in older Clang versions | Boris Kolpackov | 1 | -0/+2 | |
2022-02-02 | Redo diagnostics without operator<< in namespace std | Boris Kolpackov | 7 | -113/+103 | |
2022-01-26 | Make bash module install into bin/<project>.bash/ to avoid clashes | Boris Kolpackov | 4 | -20/+57 | |
Also, expect the first component in the import path to be full project name even in case it has the .bash extension. | |||||
2022-01-21 | Add another overload of to_target(), declare in functions-name.hxx | Boris Kolpackov | 3 | -6/+44 | |
2022-01-21 | Add search_new() and search_new_locked() variants of search() | Boris Kolpackov | 4 | -10/+132 | |
2022-01-20 | Add in::rule::perform_update_{pre,post}() hooks | Boris Kolpackov | 2 | -9/+41 | |
Also fix bug in depdb line parsing. | |||||
2022-01-18 | Add dynamic prerequisites to $< unless --adhoc is specified | Boris Kolpackov | 8 | -30/+103 | |
Also add a few tests for depdb-dyndep. | |||||
2022-01-17 | Use UTF-8 as default input/source charset for C/C++ compilation | Boris Kolpackov | 1 | -27/+89 | |
2022-01-11 | Work around VC14 bug | Boris Kolpackov | 2 | -10/+2 | |
2022-01-11 | Add note on MSVC warning C4819 | Boris Kolpackov | 1 | -0/+2 | |
2022-01-10 | Add psapi.lib and iphlpapi.lib to list of Windows system libraries | Boris Kolpackov | 1 | -0/+2 | |
2022-01-10 | Consider implied targets when resolving dynamic dependencies | Boris Kolpackov | 2 | -7/+21 | |
2022-01-06 | Add depdb-dyndep --update-{include,exclude} options | Boris Kolpackov | 10 | -180/+504 | |
These options specify prerequisite targets/patterns to include/exclude (from the static prerequisite set) for update during match as part of dynamic dependency extraction (those excluded will be updated during execute). For example: depdb dyndep ... --update-exclude libue{hello-meta} ... depdb dyndep ... --update-exclude libue{*} ... depdb dyndep ... --update-include $moc --update-include hxx{*} ... The order in which these options are specified is significant with the first target/pattern that matches determining the result. If only the --update-include options are specified, then only the explicitly included prerequisites will be updated. Otherwise, all prerequisites that are not explicitly excluded will be updated. If none of these options is specified, then all the static prerequisites are updated during match. Note also that these options do not apply to ad hoc prerequisites which are always updated during match. | |||||
2022-01-06 | Factor reusable code to target_key::effective_name() | Boris Kolpackov | 4 | -47/+56 | |
2021-12-17 | Add TODO comment | Boris Kolpackov | 1 | -0/+5 | |
2021-12-16 | Verify targets that alias same path are read-only | Boris Kolpackov | 3 | -4/+121 | |
2021-12-16 | Pass context to (meta-)operation hooks | Boris Kolpackov | 7 | -31/+40 | |
2021-12-16 | Don't consider implied existing targets in dyndep logic | Boris Kolpackov | 2 | -9/+39 | |
While considering implied targets should be harmless, the result is racy. | |||||
2021-12-15 | Return stable imported target name from import_direct() | Boris Kolpackov | 5 | -30/+75 | |
2021-12-14 | Clarify comment | Boris Kolpackov | 1 | -3/+2 | |
2021-12-14 | Clean .t file in ad hoc recipe | Boris Kolpackov | 2 | -3/+21 | |
2021-12-06 | Recognize absolute Windows paths in make parser | Boris Kolpackov | 7 | -49/+111 | |
2021-12-06 | Redo make_parser interface to return path, handle invalid_path exception | Boris Kolpackov | 5 | -20/+27 | |
2021-12-03 | Get rid of unused lambda captures | Boris Kolpackov | 1 | -1/+1 | |
2021-12-03 | Add depdb-dyndep --drop-cycles option | Boris Kolpackov | 7 | -60/+107 | |
2021-12-02 | Automatically register pattern rules for dist meta-operation | Boris Kolpackov | 2 | -4/+33 | |
We need to do this in order to inject additional pattern prerequisites which may "pull" additional sources into the distribution. | |||||
2021-12-02 | Add $root_directory(<path>) function | Boris Kolpackov | 1 | -1/+42 | |
2021-12-02 | Add $relative(<path>,<dir-path>) function | Boris Kolpackov | 1 | -1/+66 | |
2021-12-01 | Don't save test configuration variables to ~build2 configuration | Karen Arutyunov | 1 | -11/+14 | |
Also stop saving blank lines between groups of options. | |||||
2021-11-30 | Get rid of unused lambda captures | Boris Kolpackov | 1 | -4/+4 | |
2021-11-30 | Add support for dynamic dependencies as byproduct of script body | Boris Kolpackov | 13 | -327/+1136 | |
Specifically, the `depdb dyndep` builtin now has the --byproduct option (which must come first). In this mode only the --file input is supported. For example: obje{hello.o}: cxx{hello} {{ o = $path($>) t = $(o).t depdb dyndep --byproduct --what=header --default-type=h --file $t diag c++ ($<[0]) $cxx.path $cxx.poptions $cc.poptions $cc.coptions $cxx.coptions $cxx.mode -o $o -MD -MF $t -c $path($<[0]) }} Naturally, this mode does not support dynamic auto-generated prerequisites. If present, such prerequisites must be specified statically in the buildfile. Note also that the --default-prereq-type option has been rename to --default-type. | |||||
2021-11-30 | Add support for reopening depdb | Boris Kolpackov | 2 | -16/+101 | |
2021-11-29 | Fix bug in in::rule | Boris Kolpackov | 2 | -4/+4 | |
2021-11-28 | Avoid unnecessary work in depdb::close() if using static check_mtime() | Boris Kolpackov | 4 | -6/+8 | |
2021-11-28 | Generalize depdb::touch functionality to support custom timestamp | Boris Kolpackov | 4 | -10/+34 | |
2021-11-26 | Add $size(string), $size(path), and $size(dir_path) functions | Boris Kolpackov | 2 | -0/+16 | |
2021-11-24 | Fix bug in attempt to allow calling cc module functions during match | Boris Kolpackov | 1 | -2/+2 | |
2021-11-24 | Add ability to add extra depdb entries in in::rule | Boris Kolpackov | 2 | -6/+21 | |
2021-11-24 | Allow calling cc module functions during match | Boris Kolpackov | 1 | -2/+8 | |
An ad hoc recipe with dynamic dependency extraction (depdb-dyndep) executes its depdb preamble during match (but after matching all the prerequisites). | |||||
2021-11-23 | Fix multi-line comment parsing to accept trailing eos in place of newline | Boris Kolpackov | 1 | -6/+7 | |
2021-11-23 | Add support for dynamic dependencies in ad hoc Buildscript recipes | Boris Kolpackov | 29 | -1263/+4718 | |
Specifically, add the new `depdb dyndep` builtin that can be used to extract dynamic dependencies from a program run or a file. For example: obje{hello.o}: cxx{hello} {{ s = $path($<[0]) depdb dyndep $cxx.poptions $cc.poptions --what=header --default-prereq-type=h -- $cxx.path $cxx.poptions $cc.poptions $cxx.mode -M -MG $s diag c++ ($<[0]) o = $path($>) $cxx.path $cxx.poptions $cc.poptions $cc.coptions $cxx.coptions $cxx.mode -o $o -c $s }} Currently only the `make` dependency format is supported. | |||||
2021-11-16 | Ignore (with warning) directory symlink cycles in bootstrap dist | Boris Kolpackov | 1 | -3/+44 | |
2021-11-16 | Minor optimizations in cc::compile_rule | Boris Kolpackov | 1 | -5/+4 | |
2021-11-09 | Suppress few unused variable warnings caused by NDEBUG | Boris Kolpackov | 1 | -5/+10 | |
While we normally don't bother, these specific cases cause failures in the ad hoc C++ recipe tests. | |||||
2021-11-08 | Incorporate derived target types into generated header logic | Boris Kolpackov | 2 | -6/+37 | |