aboutsummaryrefslogtreecommitdiff
path: root/libbuild2
AgeCommit message (Collapse)AuthorFilesLines
2021-12-16Don't consider implied existing targets in dyndep logicBoris Kolpackov2-9/+39
While considering implied targets should be harmless, the result is racy.
2021-12-15Return stable imported target name from import_direct()Boris Kolpackov5-30/+75
2021-12-14Clarify commentBoris Kolpackov1-3/+2
2021-12-14Clean .t file in ad hoc recipeBoris Kolpackov2-3/+21
2021-12-06Recognize absolute Windows paths in make parserBoris Kolpackov7-49/+111
2021-12-06Redo make_parser interface to return path, handle invalid_path exceptionBoris Kolpackov5-20/+27
2021-12-03Get rid of unused lambda capturesBoris Kolpackov1-1/+1
2021-12-03Add depdb-dyndep --drop-cycles optionBoris Kolpackov7-60/+107
2021-12-02Automatically register pattern rules for dist meta-operationBoris Kolpackov2-4/+33
We need to do this in order to inject additional pattern prerequisites which may "pull" additional sources into the distribution.
2021-12-02Add $root_directory(<path>) functionBoris Kolpackov1-1/+42
2021-12-02Add $relative(<path>,<dir-path>) functionBoris Kolpackov1-1/+66
2021-12-01Don't save test configuration variables to ~build2 configurationKaren Arutyunov1-11/+14
Also stop saving blank lines between groups of options.
2021-11-30Get rid of unused lambda capturesBoris Kolpackov1-4/+4
2021-11-30Add support for dynamic dependencies as byproduct of script bodyBoris Kolpackov13-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-30Add support for reopening depdbBoris Kolpackov2-16/+101
2021-11-29Fix bug in in::ruleBoris Kolpackov2-4/+4
2021-11-28Avoid unnecessary work in depdb::close() if using static check_mtime()Boris Kolpackov4-6/+8
2021-11-28Generalize depdb::touch functionality to support custom timestampBoris Kolpackov4-10/+34
2021-11-26Add $size(string), $size(path), and $size(dir_path) functionsBoris Kolpackov2-0/+16
2021-11-24Fix bug in attempt to allow calling cc module functions during matchBoris Kolpackov1-2/+2
2021-11-24Add ability to add extra depdb entries in in::ruleBoris Kolpackov2-6/+21
2021-11-24Allow calling cc module functions during matchBoris Kolpackov1-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-23Fix multi-line comment parsing to accept trailing eos in place of newlineBoris Kolpackov1-6/+7
2021-11-23Add support for dynamic dependencies in ad hoc Buildscript recipesBoris Kolpackov29-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-16Ignore (with warning) directory symlink cycles in bootstrap distBoris Kolpackov1-3/+44
2021-11-16Minor optimizations in cc::compile_ruleBoris Kolpackov1-5/+4
2021-11-09Suppress few unused variable warnings caused by NDEBUGBoris Kolpackov1-5/+10
While we normally don't bother, these specific cases cause failures in the ad hoc C++ recipe tests.
2021-11-08Incorporate derived target types into generated header logicBoris Kolpackov2-6/+37
2021-11-05Keep multiple prefixless entries for generated header mappingBoris Kolpackov3-36/+78
2021-11-04Do not apply install scope to update-for-install pre-operationBoris Kolpackov4-14/+39
2021-11-04Add $size() function to get size of sequence (names, strings, etc)Boris Kolpackov4-40/+82
2021-11-03Add line processing customization hook to in::ruleBoris Kolpackov7-141/+268
2021-11-02Add $sort() functionBoris Kolpackov4-1/+150
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-27Handle "common symbols" in symbol exporting .def generation ruleBoris Kolpackov1-15/+53
2021-10-26Add commentBoris Kolpackov1-2/+4
2021-10-21Add more entries to list of Windows system librariesBoris Kolpackov1-0/+2
2021-10-21Skip NULL entries in BMI's prerequisite_targets when looking for sourceBoris Kolpackov1-1/+1
Fixes GitHub issue #169.
2021-10-21Add build.progress global variable with --[no-]progress option valueBoris Kolpackov1-0/+11
2021-10-20Change to version 0.15.0-a.0.zBoris Kolpackov1-1/+1
2021-10-16Release version 0.14.0v0.14.0Boris Kolpackov1-1/+1
2021-10-16Skip regenerating .pc files during uninstallBoris Kolpackov2-2/+13
2021-10-16Improve info meta-operation not to print trailing spacesBoris Kolpackov1-8/+22
2021-10-15Allow explicit amalgamation by simple projectsBoris Kolpackov1-9/+8
2021-10-14Map latest to -std=c++2b from Clang 13, /std:c++20 from MSVC 16.11Boris Kolpackov1-17/+16
2021-10-14Use tidier pc and def names instead of generic gen for .pc and .def generationBoris Kolpackov2-2/+2
2021-10-14Disable re-parse of sole expansions in BuildscriptBoris Kolpackov6-12/+53
2021-10-14Pass along parse_names_result during script command parsingBoris Kolpackov4-28/+34
2021-10-14Add ability to detect sole expansion in parser::parse_names()Boris Kolpackov2-7/+15
2021-10-13Add --cwd|-t option to env pseudo-builtinKaren Arutyunov5-17/+87
2021-10-13Allow out-qualified names in $name.*() function familyBoris Kolpackov1-19/+36