aboutsummaryrefslogtreecommitdiff
path: root/libbuild2
AgeCommit message (Collapse)AuthorFilesLines
2021-10-04Add support for treating specific libraries as always internalBoris Kolpackov5-8/+76
2021-10-01Add notion of internal scope, translate external -I to -isystem or equivalentBoris Kolpackov13-53/+552
2021-10-01Add missing return to scope::bundle_root()Boris Kolpackov1-0/+4
2021-09-29Add notion of bundle amalgamation scopeBoris Kolpackov5-0/+58
2021-09-28Adapt to libbutl headers extension change from .mxx to .hxxKaren Arutyunov34-84/+84
2021-09-24Fortify tests against NDEBUGKaren Arutyunov12-10/+36
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-20Add support for disabling clean through target-prerequisite relationshipBoris Kolpackov7-37/+59
Our current semantics is to clean any prerequisites that are in the same project (root scope) as the target and it may seem more natural to rather only clean prerequisites that are in the same base scope. While it's often true for simple projects, in more complex cases it's not unusual to have common intermediate build results (object files, utility libraries, etc) reside in the parent and/or sibling directories. With such arrangements, cleaning only in base (even from the project root) may leave such intermediate build results laying around (since there is no reason to list them as prerequisites of any directory aliases). So we clean in the root scope by default but now any target-prerequisite relationship can be marked not to trigger a clean with the clean=false prerequisite-specific value.
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-20Assign pre-defined semantics to config.<project>.develop variablesBoris Kolpackov6-45/+123
This variable allows a project to distinguish between development and consumption builds. While normally there is no distinction between these two modes, sometimes a project may need to provide additional functionality during development. For example, a source code generator which uses its own generated code in its implementation may need to provide a bootstrap step from the pre-generated code. Normally, such a step is only needed during development. See "Project Configuration" in the manual for details.
2021-09-17Add fallback update-for-uninstall rule to global scopeBoris Kolpackov1-3/+6
2021-09-16Fix diagnostics corner case in perform_clean_extra()Boris Kolpackov1-5/+5
2021-09-16Fix over-tight assumption in standard operation match()Boris Kolpackov1-0/+1
2021-09-15Do variable lookup in ad hoc target groupsBoris Kolpackov4-22/+52
2021-09-14Add support for passing multiple names to $name.*() functionsBoris Kolpackov1-3/+49
2021-09-14Fix few issues with new config.install.scopeBoris Kolpackov1-32/+31
2021-09-14Impose 12K line count limit for regex matches in TestscriptBoris Kolpackov1-1/+15
2021-09-14Consistently install prerequisites from any scope by defaultBoris Kolpackov9-60/+131
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-13Impose 16KB line length limit for regex matches in TestscriptBoris Kolpackov1-1/+14
2021-09-09Handle Emscripten -pthread modeBoris Kolpackov1-0/+15
2021-09-08Adjust to renaming of butl::fdbuf to fdstreambufBoris Kolpackov2-4/+4
2021-09-02Don't consider aliasing in variable override lookupBoris Kolpackov3-6/+13
2021-09-02Add diag_frame around export stub loadingBoris Kolpackov1-2/+11
This gives the location of the importer in case the export stub issues any diagnostics.
2021-08-25Keep mtime check always enabled on WindowsBoris Kolpackov2-3/+5
Windows is known not to guarantee monotonically increasing mtimes.
2021-08-23Clear data in target::data() modifiersBoris Kolpackov1-2/+4
Currently we may end up resetting the data during the rule ambiguity detection.
2021-08-18Fix bug in external module skipping logicBoris Kolpackov1-7/+5
2021-08-13Fix amalgamation discovery logic some moreBoris Kolpackov1-1/+5
2021-08-13Cache git status results in version moduleBoris Kolpackov4-53/+64
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 Kolpackov5-23/+59
2021-08-10Complete process_libraries() duplicate suppression workBoris Kolpackov5-69/+114
2021-08-09Use parse_variable_name() in parse_import(), parse_config()Boris Kolpackov2-15/+22
2021-08-09Make variable assignment mandatory in import directiveBoris Kolpackov1-125/+52
In return we get the ability to specify value attributes.
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
2021-08-05Implement traversal pruning in process_libraries()Boris Kolpackov8-421/+503
2021-08-05Add resolved library cache, use in cc::process_libraries()Boris Kolpackov2-9/+74
2021-08-05Avoid normalizing likely already normalized directories in search_existing()Boris Kolpackov1-1/+8
2021-08-04Take into account file-base'ness in ad hoc buildscript recipesBoris Kolpackov10-19/+76
2021-08-03Fix incorrect assumption in amalgamation discovery logicBoris Kolpackov1-8/+10
2021-08-03Regenerate options parsing filesBoris Kolpackov3-14/+90
2021-08-02Print list of bootstrapped modules in info meta-operationBoris Kolpackov1-1/+10
2021-07-30Fix issue in amalgamation discoveryBoris Kolpackov1-41/+53
2021-07-23Remove duplicate friend declaration to make GCC 4.9 happyBoris Kolpackov1-2/+0
2021-07-23Reserve variable names/components that start with underscore to build2 coreBoris Kolpackov3-15/+44
2021-07-22Adjust Emscripten Clang version to account for unreleased snapshotsBoris Kolpackov1-1/+17
2021-07-22Add note on new /std:c11 and /std:c17 MSVC optionsBoris Kolpackov1-0/+5