Age | Commit message (Collapse) | Author | Files | Lines | |
---|---|---|---|---|---|
2022-06-24 | Allow ad hoc rules not to list targets that are updated during match | Boris Kolpackov | 1 | -1/+3 | |
For example, this allows a Qt moc rule not to list generated headers from libQtCore since they are pre-generated by the library. | |||||
2022-06-24 | Add ability to get common interface options via $x.lib_poptions() | Boris Kolpackov | 1 | -25/+55 | |
Specifically, the output target type may now be omitted for utility libraries (libul{} and libu[eas]{}). In this case, only "common interface" options will be returned for lib{} dependencies. This is primarily useful for obtaining poptions to be passed to tools other than C/C++ compilers (for example, Qt moc). | |||||
2022-05-05 | Recognize -pthread as king of -l in *.libs | Boris Kolpackov | 1 | -23/+23 | |
2022-04-15 | Adjust small vector limit in process_libraries() | Boris Kolpackov | 1 | -40/+66 | |
2022-04-13 | Prune library graph traversal for recursively-binless libraries | Boris Kolpackov | 1 | -26/+50 | |
2022-04-13 | Add automatic interface dependency deduplication in cc::process_libraries() | Boris Kolpackov | 1 | -16/+80 | |
2022-03-30 | Infrastructure for library metadata support | Boris Kolpackov | 1 | -2/+7 | |
2022-03-02 | Add update operation-specific variable with unmatch|match additional values | Boris Kolpackov | 1 | -1/+1 | |
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-15 | Diagnose various misuses of library metadata protocol | Boris Kolpackov | 1 | -0/+4 | |
2021-10-07 | Verify libraries and targets they are linked to a for-install-compatible | Boris Kolpackov | 1 | -3/+4 | |
2021-08-12 | Add ${c,cxx}.deduplicate_export_libs() function | Boris Kolpackov | 1 | -0/+2 | |
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 | 1 | -0/+2 | |
2021-08-11 | Optimize process_libraries() some more | Boris Kolpackov | 1 | -15/+41 | |
2021-08-05 | Implement traversal pruning in process_libraries() | Boris Kolpackov | 1 | -360/+376 | |
2021-08-05 | Add resolved library cache, use in cc::process_libraries() | Boris Kolpackov | 1 | -8/+61 | |
2021-05-13 | Add ${c,cxx}.find_system_{header,library}() functions | Boris Kolpackov | 1 | -0/+4 | |
2021-05-04 | Replace int_ with intf_ and imp_ with impl_ in names | Boris Kolpackov | 1 | -7/+7 | |
2021-05-04 | Handle duplicate suppression of multi-element libraries (-l foo) | Boris Kolpackov | 1 | -22/+126 | |
See GitHub issue #114 for context. | |||||
2021-02-11 | Generalize process_libraries() to allow no picking installed library member | Boris Kolpackov | 1 | -37/+64 | |
2021-02-09 | Minor simplification | Boris Kolpackov | 1 | -2/+2 | |
2021-02-03 | Propagate relevant options/prerequisites to header unit sidebuilds | Boris Kolpackov | 1 | -2/+15 | |
2021-01-21 | Use target name to derive binless library -l-name | Boris Kolpackov | 1 | -0/+4 | |
2020-12-11 | Add support for module interface-only libraries | Boris Kolpackov | 1 | -2/+2 | |
Also suppress generation of the object file in cases where we don't need it. | |||||
2020-12-04 | Fix bug in installed libraries matching logic | Boris Kolpackov | 1 | -24/+34 | |
2020-12-03 | Fix lock/unlock order | Boris Kolpackov | 1 | -1/+2 | |
2020-12-03 | Fix bug in previous commit | Boris Kolpackov | 1 | -2/+2 | |
2020-12-03 | Fix modules support for installed libraries | Boris Kolpackov | 1 | -5/+23 | |
2020-11-13 | Minor tracing fix and addition | Boris Kolpackov | 1 | -0/+3 | |
2020-07-17 | Fix race in path/mtime assignment and file_rule::match() | Boris Kolpackov | 1 | -17/+7 | |
2020-07-01 | Fix bug in *.export.imp_libs logic | Boris Kolpackov | 1 | -2/+2 | |
2020-07-01 | Add *.export.imp_libs to get rid of dual *.export.libs semantics | Boris Kolpackov | 1 | -36/+35 | |
2020-06-26 | Minor terminology fix in comments | Boris Kolpackov | 1 | -3/+2 | |
2020-06-26 | Fix race in library metadata protocol | Boris Kolpackov | 1 | -2/+3 | |
Specifically, we need to check whether the prerequisite_member is ad hoc before checking whether it is NULL because ad hoc ones are blanked out (set to NULL) during execute. | |||||
2020-05-22 | Make template definition available in all translation units where used | Boris Kolpackov | 1 | -27/+0 | |
We were trying to be clever but GCC 10's IPA-SRA optimization didn't like it. | |||||
2020-04-30 | Rename target::member to target::adhoc_member | Boris Kolpackov | 1 | -1/+1 | |
2020-04-27 | Rework tool importation along with cli module | Boris Kolpackov | 1 | -14/+2 | |
Specifically, now config.<tool> (like config.cli) is handled by the import machinery (it is like a shorter alias for config.import.<tool>.<tool>.exe that we already had). And the cli module now uses that instead of custom logic. This also adds support for uniform tool metadata extraction that is handled by the import machinery. As a result, a tool that follows the "build2 way" can be imported with metadata by the buildfile and/or corresponding module without any tool-specific code or brittleness associated with parsing --version or similar outputs. See the cli tool/module for details. Finally, two new flavors of the import directive are now supported: import! triggers immediate importation skipping any rule-specific logic while import? is optional import (analogous to using?). Note that optional import is always immediate. There is also the import-specific metadata attribute which can be specified for these two import flavors in order to trigger metadata importation. For example: import? [metadata] cli = cli%exe{cli} if ($cli != [null]) info "cli version $($cli:cli.version)" | |||||
2020-02-07 | Drop copyright notice from source code | Karen Arutyunov | 1 | -1/+0 | |
2020-02-04 | Add note to manual on specifying search paths in compiler mode | Boris Kolpackov | 1 | -0/+2 | |
2020-02-03 | Add header/library search paths from compiler mode to sys_*_dirs | Boris Kolpackov | 1 | -50/+16 | |
2020-01-31 | Propagate installed library out (tag) when converting to name | Boris Kolpackov | 1 | -8/+18 | |
2020-01-31 | Tag installed library targets with linker path | Boris Kolpackov | 1 | -20/+29 | |
This makes sure we get different targets for different toolchains. | |||||
2019-11-29 | Reorder {cc,c/cxx}.{poptions,loptions} | Boris Kolpackov | 1 | -4/+5 | |
Now it is c/cxx first followed by cc which is the reverse order of coptions since the header/library search paths are examined in the order specified (in contrast to the "last value wins" semantics that we assume for coptions). | |||||
2019-11-07 | Don't add $install.lib to module library search path if import.build2 is NULL | Boris Kolpackov | 1 | -6/+21 | |
2019-11-05 | Add support for automatic importing of libbuild2 of installed case | Boris Kolpackov | 1 | -1/+16 | |
2019-10-08 | Extend /LIBPATH handling to win32-msvc target system | Boris Kolpackov | 1 | -1/+3 | |
2019-10-01 | Adapt to renaming butl::casecmp() to icasecmp() | Karen Arutyunov | 1 | -1/+1 | |
2019-08-28 | Move cc build system module to separate library | Karen Arutyunov | 1 | -0/+1031 | |