aboutsummaryrefslogtreecommitdiff
path: root/libbuild2/cc
AgeCommit message (Collapse)AuthorFilesLines
2022-02-15Fix stray logic where libue{} was still considered member of libul{}Boris Kolpackov1-10/+27
Fixes GitHub issue #179.
2022-02-15Diagnose various misuses of library metadata protocolBoris Kolpackov2-0/+13
2022-02-10Add note on GNU ar deprecating -T in favor of --thinBoris Kolpackov1-0/+3
2022-02-09Improve commentsBoris Kolpackov1-3/+6
2022-02-07Use target::as instead of static_cast everywhereBoris Kolpackov1-5/+5
2022-02-02Redo diagnostics without operator<< in namespace stdBoris Kolpackov2-0/+5
2022-01-21Add another overload of to_target(), declare in functions-name.hxxBoris Kolpackov1-3/+2
2022-01-21Add search_new() and search_new_locked() variants of search()Boris Kolpackov1-2/+2
2022-01-17Use UTF-8 as default input/source charset for C/C++ compilationBoris Kolpackov1-27/+89
2022-01-11Add note on MSVC warning C4819Boris Kolpackov1-0/+2
2022-01-10Add psapi.lib and iphlpapi.lib to list of Windows system librariesBoris Kolpackov1-0/+2
2021-12-17Add TODO commentBoris Kolpackov1-0/+5
2021-12-14Clarify commentBoris Kolpackov1-3/+2
2021-12-06Recognize absolute Windows paths in make parserBoris Kolpackov1-9/+20
2021-11-30Add support for dynamic dependencies as byproduct of script bodyBoris Kolpackov2-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-28Avoid unnecessary work in depdb::close() if using static check_mtime()Boris Kolpackov1-1/+1
2021-11-28Generalize depdb::touch functionality to support custom timestampBoris Kolpackov1-1/+1
2021-11-24Fix bug in attempt to allow calling cc module functions during matchBoris Kolpackov1-2/+2
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-23Add support for dynamic dependencies in ad hoc Buildscript recipesBoris Kolpackov4-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-16Minor optimizations in cc::compile_ruleBoris Kolpackov1-5/+4
2021-11-08Incorporate derived target types into generated header logicBoris Kolpackov1-3/+25
2021-11-05Keep multiple prefixless entries for generated header mappingBoris Kolpackov2-36/+76
2021-11-04Do not apply install scope to update-for-install pre-operationBoris Kolpackov2-12/+33
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-16Skip regenerating .pc files during uninstallBoris Kolpackov2-2/+13
2021-10-14Use tidier pc and def names instead of generic gen for .pc and .def generationBoris Kolpackov1-1/+1
2021-10-11Update Apple to vanilla Clang version mapping for Apple Clang 13.0.0Boris Kolpackov1-2/+5
2021-10-07Fix bug in internal scope logicBoris Kolpackov1-1/+1
2021-10-07Verify libraries and targets they are linked to a for-install-compatibleBoris Kolpackov9-10/+38
2021-10-07Minor install-related cleanupsBoris Kolpackov2-15/+24
2021-10-05Get rid of no longer necessary diagnosticsBoris Kolpackov1-38/+2
2021-10-04Optimize internal scope implementationBoris Kolpackov5-70/+64
2021-10-04Add support for treating specific libraries as always internalBoris Kolpackov3-6/+34
2021-10-01Add notion of internal scope, translate external -I to -isystem or equivalentBoris Kolpackov10-51/+446
2021-09-28Adapt to libbutl headers extension change from .mxx to .hxxKaren Arutyunov3-4/+4
2021-09-24Fortify tests against NDEBUGKaren Arutyunov2-2/+6
2021-09-21Add more libraries to list of Windows system librariesBoris Kolpackov1-0/+5
2021-09-20Add more libraries to list of Windows system librariesBoris Kolpackov1-2/+10
2021-09-20Improve MSVC /showIncludes output handlingBoris Kolpackov1-13/+35
2021-09-20Add netapi32.lib to the list of Windows system librariesBoris Kolpackov1-0/+1
2021-09-14Consistently install prerequisites from any scope by defaultBoris Kolpackov2-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-09Handle Emscripten -pthread modeBoris Kolpackov1-0/+15
2021-08-12Add ${c,cxx}.deduplicate_export_libs() functionBoris Kolpackov4-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-12Avoid duplication in Libs/Libs.private in generated .pc filesBoris Kolpackov3-23/+69
2021-08-11Optimize process_libraries() some moreBoris Kolpackov3-16/+45
2021-08-10Complete process_libraries() duplicate suppression workBoris Kolpackov5-69/+114
2021-08-09Merge library hashing and collection into single traversal passBoris Kolpackov4-230/+106
It turns out this is a lot faster on deeply-dependent libraries like Boost while not having any noticeable differences for "sane" projects.
2021-08-09Print pkgconfig_save() command at verbosity 1 since can take longBoris Kolpackov1-1/+6