Age | Commit message (Collapse) | Author | Files | Lines | |
---|---|---|---|---|---|
2022-01-13 | Update NEWS file with support for dynamic dependencies | Boris Kolpackov | 1 | -0/+127 | |
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 | |
2022-01-04 | Update copyright | Boris Kolpackov | 1 | -1/+1 | |
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 | 8 | -94/+104 | |
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 | 6 | -33/+78 | |
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 | Fix path function test failure on Windows | Boris Kolpackov | 1 | -1/+1 | |
2021-12-02 | Add $root_directory(<path>) function | Boris Kolpackov | 2 | -1/+64 | |
2021-12-02 | Add $relative(<path>,<dir-path>) function | Boris Kolpackov | 2 | -1/+72 | |
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 | 4 | -0/+34 | |
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 | Disable C++20 modules tests for MinGW GCC | Boris Kolpackov | 1 | -0/+7 | |
Things appear to be completely broken in GCC 11.x. | |||||
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 | Pass --ascii-tree CLI option when generating embedded usage and man pages | Boris Kolpackov | 2 | -2/+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 | |
2021-11-05 | Keep multiple prefixless entries for generated header mapping | Boris Kolpackov | 3 | -36/+78 | |
2021-11-04 | Document \n escape sequence for sed builtin in testscript manual | Karen Arutyunov | 1 | -0/+1 | |
2021-11-04 | Do not apply install scope to update-for-install pre-operation | Boris Kolpackov | 4 | -14/+39 | |
2021-11-04 | Fix test | Boris Kolpackov | 1 | -1/+1 | |
2021-11-04 | Add $size() function to get size of sequence (names, strings, etc) | Boris Kolpackov | 7 | -45/+106 | |
2021-11-03 | Add line processing customization hook to in::rule | Boris Kolpackov | 7 | -141/+268 | |
2021-11-02 | Add $sort() function | Boris Kolpackov | 7 | -2/+184 | |
Available overloads: $sort(<names> [, <flags>]) $sort(<ints> [, <flags>]) $sort(<strings> [, <flags>]) $sort(<paths> [, <flags>]) $sort(<dir_paths> [, <flags>]) The following flag is supported by the all overloads: dedup - in addition to sorting also remove duplicates Additionally, the strings overload also support the following flag: icase - sort ignoring case Note that on case-insensitive filesystem the paths and dir_paths overload's order is case-insensitive. | |||||
2021-10-27 | Handle "common symbols" in symbol exporting .def generation rule | Boris Kolpackov | 2 | -17/+55 | |