Age | Commit message (Collapse) | Author | Files | Lines | |
---|---|---|---|---|---|
2022-06-28 | Complete support for saving/loading library metadata to/from pkg-config files | Boris Kolpackov | 1 | -0/+5 | |
2022-04-19 | Use target recipe for auxiliary data storage during match-apply | Boris Kolpackov | 1 | -5/+21 | |
In particular, we now have separate auxiliary data storage for inner and outer operations. | |||||
2022-04-06 | Add support for rule hints | Boris Kolpackov | 1 | -5/+3 | |
A rule hint is a target attribute, for example: [rule_hint=cxx] exe{hello}: c{hello} Rule hints can be used to resolve ambiguity when multiple rules match the same target as well as to override an unambiguous match. | |||||
2021-10-07 | Verify libraries and targets they are linked to a for-install-compatible | Boris Kolpackov | 1 | -1/+1 | |
2021-10-07 | Minor install-related cleanups | Boris Kolpackov | 1 | -14/+20 | |
2021-08-12 | Add ${c,cxx}.deduplicate_export_libs() function | Boris Kolpackov | 1 | -0/+7 | |
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 | -16/+35 | |
2021-08-10 | Complete process_libraries() duplicate suppression work | Boris Kolpackov | 1 | -6/+3 | |
2021-08-09 | Merge library hashing and collection into single traversal pass | Boris Kolpackov | 1 | -11/+2 | |
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-05 | Implement traversal pruning in process_libraries() | Boris Kolpackov | 1 | -3/+6 | |
2021-07-01 | Suppress duplicate libraries in pkg-config files | Boris Kolpackov | 1 | -0/+34 | |
2021-06-21 | Add support for automatic generation of symbol exporting .def file | Boris Kolpackov | 1 | -3/+1 | |
2021-05-13 | Add ${c,cxx}.find_system_{header,library}() functions | Boris Kolpackov | 1 | -0/+3 | |
2021-05-06 | Propagate complete match rules from utility libraries in link rule | Boris Kolpackov | 1 | -0/+10 | |
This makes sure mixed-language (e.g., C and C++) utility libraries behave as expected. | |||||
2021-05-04 | Handle duplicate suppression of multi-element libraries (-l foo) | Boris Kolpackov | 1 | -20/+40 | |
See GitHub issue #114 for context. | |||||
2020-12-11 | Add support for module interface-only libraries | Boris Kolpackov | 1 | -0/+8 | |
Also suppress generation of the object file in cases where we don't need it. | |||||
2020-12-03 | Add ability to get absolute library paths from ${c,cxx}.lib_libs() | Boris Kolpackov | 1 | -1/+2 | |
2020-11-24 | Fix compilation error on older compilers (GCC 4.9, MSVC 14.3) | Boris Kolpackov | 1 | -4/+4 | |
2020-11-23 | Suppress duplicates when extracting library options (GitHub issue #114) | Boris Kolpackov | 1 | -2/+58 | |
2020-11-11 | Add ${c,cxx}.lib_{poptions,libs,rpaths}() functions | Boris Kolpackov | 1 | -19/+27 | |
These functions can be used to query library metadata for options and libraries that should be used when compiling/linking dependent targets, similar to how cc::{compile,link}_rule do it. With this support it should be possible to more or less re-create their semantics in ad hoc recipes. | |||||
2020-07-14 | Fix Clang warning | Boris Kolpackov | 1 | -0/+2 | |
2020-07-13 | Add ability to extend rule interface in source-compatible manner | Boris Kolpackov | 1 | -1/+1 | |
2020-03-20 | Generate common .pc file in addition to static/staged when installing lib{} | Boris Kolpackov | 1 | -1/+1 | |
The common .pc file is produced by ignoring any static/shared-specific poptions and splitting loptions/libs into Libs/Libs.private. It is "best effort", in a sense that it's not guaranteed to be sufficient in all cases, but it will probably cover the majority of cases, even on Windows, thanks to automatic dllimport'ing of functions. | |||||
2020-02-07 | Drop copyright notice from source code | Karen Arutyunov | 1 | -1/+0 | |
2019-10-29 | Tighten up versioned libraries clean patterns | Boris Kolpackov | 1 | -4/+6 | |
2019-10-14 | Implement MSVC installation discovery for version 15 (2017) and later | Karen Arutyunov | 1 | -4/+4 | |
In particular, this removes the requirement to build from the Visual Studio command prompt. Note that since MSVC compiler binaries are target-specific (i.e., there are no -m32/-m64 options nor something like /MACHINE), in this case we default to a 64-bit build (a 32-bit build can still be achieved by running from a suitable command prompt). Finally, this mechanism is also used to find Clang bundled with MSVC. | |||||
2019-08-28 | Move cc build system module to separate library | Karen Arutyunov | 1 | -0/+188 | |