Age | Commit message (Collapse) | Author | Files | Lines | |
---|---|---|---|---|---|
2022-03-02 | Add update operation-specific variable with unmatch|match additional values | Boris Kolpackov | 3 | -13/+97 | |
Note that the unmatch (match but do not update) and match (update during match) values are only supported by certain rules (and potentially only for certain prerequisite types). Additionally: - All operation-specific variables are now checked for false as an override for the prerequisite-specific include value. In particular, this can now be used to disable a prerequisite for update, for example: ./: exe{test}: update = false - The cc::link_rule now supports the update=match value for headers and ad hoc prerequisites. In particular, this can be used to make sure all the library headers are updated before matching any of its (or dependent's) object files. | |||||
2022-02-16 | Get rid of stray variable | Boris Kolpackov | 1 | -2/+0 | |
2022-02-15 | Fix stray logic where libue{} was still considered member of libul{} | Boris Kolpackov | 1 | -10/+27 | |
Fixes GitHub issue #179. | |||||
2022-02-15 | Diagnose various misuses of library metadata protocol | Boris Kolpackov | 2 | -0/+13 | |
2022-02-10 | Add note on GNU ar deprecating -T in favor of --thin | Boris Kolpackov | 1 | -0/+3 | |
2022-02-09 | Improve comments | Boris Kolpackov | 1 | -3/+6 | |
2022-02-07 | Use target::as instead of static_cast everywhere | Boris Kolpackov | 1 | -5/+5 | |
2022-02-02 | Redo diagnostics without operator<< in namespace std | Boris Kolpackov | 2 | -0/+5 | |
2022-01-21 | Add another overload of to_target(), declare in functions-name.hxx | Boris Kolpackov | 1 | -3/+2 | |
2022-01-21 | Add search_new() and search_new_locked() variants of search() | Boris Kolpackov | 1 | -2/+2 | |
2022-01-17 | Use UTF-8 as default input/source charset for C/C++ compilation | Boris Kolpackov | 1 | -27/+89 | |
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 | |
2021-12-17 | Add TODO comment | Boris Kolpackov | 1 | -0/+5 | |
2021-12-14 | Clarify comment | Boris Kolpackov | 1 | -3/+2 | |
2021-12-06 | Recognize absolute Windows paths in make parser | Boris Kolpackov | 1 | -9/+20 | |
2021-11-30 | Add support for dynamic dependencies as byproduct of script body | Boris Kolpackov | 2 | -17/+23 | |
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-28 | Avoid unnecessary work in depdb::close() if using static check_mtime() | Boris Kolpackov | 1 | -1/+1 | |
2021-11-28 | Generalize depdb::touch functionality to support custom timestamp | Boris Kolpackov | 1 | -1/+1 | |
2021-11-24 | Fix bug in attempt to allow calling cc module functions during match | Boris Kolpackov | 1 | -2/+2 | |
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 | Add support for dynamic dependencies in ad hoc Buildscript recipes | Boris Kolpackov | 4 | -838/+140 | |
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 | Minor optimizations in cc::compile_rule | Boris Kolpackov | 1 | -5/+4 | |
2021-11-08 | Incorporate derived target types into generated header logic | Boris Kolpackov | 1 | -3/+25 | |
2021-11-05 | Keep multiple prefixless entries for generated header mapping | Boris Kolpackov | 2 | -36/+76 | |
2021-11-04 | Do not apply install scope to update-for-install pre-operation | Boris Kolpackov | 2 | -12/+33 | |
2021-10-21 | Add more entries to list of Windows system libraries | Boris Kolpackov | 1 | -0/+2 | |
2021-10-21 | Skip NULL entries in BMI's prerequisite_targets when looking for source | Boris Kolpackov | 1 | -1/+1 | |
Fixes GitHub issue #169. | |||||
2021-10-16 | Skip regenerating .pc files during uninstall | Boris Kolpackov | 2 | -2/+13 | |
2021-10-14 | Use tidier pc and def names instead of generic gen for .pc and .def generation | Boris Kolpackov | 1 | -1/+1 | |
2021-10-11 | Update Apple to vanilla Clang version mapping for Apple Clang 13.0.0 | Boris Kolpackov | 1 | -2/+5 | |
2021-10-07 | Fix bug in internal scope logic | Boris Kolpackov | 1 | -1/+1 | |
2021-10-07 | Verify libraries and targets they are linked to a for-install-compatible | Boris Kolpackov | 9 | -10/+38 | |
2021-10-07 | Minor install-related cleanups | Boris Kolpackov | 2 | -15/+24 | |
2021-10-05 | Get rid of no longer necessary diagnostics | Boris Kolpackov | 1 | -38/+2 | |
2021-10-04 | Optimize internal scope implementation | Boris Kolpackov | 5 | -70/+64 | |
2021-10-04 | Add support for treating specific libraries as always internal | Boris Kolpackov | 3 | -6/+34 | |
2021-10-01 | Add notion of internal scope, translate external -I to -isystem or equivalent | Boris Kolpackov | 10 | -51/+446 | |
2021-09-28 | Adapt to libbutl headers extension change from .mxx to .hxx | Karen Arutyunov | 3 | -4/+4 | |
2021-09-24 | Fortify tests against NDEBUG | Karen Arutyunov | 2 | -2/+6 | |
2021-09-21 | Add more libraries to list of Windows system libraries | Boris Kolpackov | 1 | -0/+5 | |
2021-09-20 | Add more libraries to list of Windows system libraries | Boris Kolpackov | 1 | -2/+10 | |
2021-09-20 | Improve MSVC /showIncludes output handling | Boris Kolpackov | 1 | -13/+35 | |
2021-09-20 | Add netapi32.lib to the list of Windows system libraries | Boris Kolpackov | 1 | -0/+1 | |
2021-09-14 | Consistently install prerequisites from any scope by default | Boris Kolpackov | 2 | -12/+18 | |
It is also now possible to adjust this behavior with global config.install.scope override. Valid values for this variable are: project -- only from project strong -- from strong amalgamation weak -- from weak amalgamation global -- from all projects (default) | |||||
2021-09-09 | Handle Emscripten -pthread mode | Boris Kolpackov | 1 | -0/+15 | |
2021-08-12 | Add ${c,cxx}.deduplicate_export_libs() function | Boris Kolpackov | 4 | -0/+154 | |
This function deduplicates interface library dependencies by removing libraries that are also interface dependencies of the specified libraries. This can result in significantly better build performance for heavily interface-interdependent library families (for example, like Boost). Typical usage: import intf_libs = ... import intf_libs += ... ... import intf_libs += ... intf_libs = $cxx.deduplicate_export_libs($intf_libs) | |||||
2021-08-12 | Avoid duplication in Libs/Libs.private in generated .pc files | Boris Kolpackov | 3 | -23/+69 | |
2021-08-11 | Optimize process_libraries() some more | Boris Kolpackov | 3 | -16/+45 | |
2021-08-10 | Complete process_libraries() duplicate suppression work | Boris Kolpackov | 5 | -69/+114 | |