Age | Commit message (Collapse) | Author | Files | Lines | |
---|---|---|---|---|---|
2024-02-22 | Detect dependency cycles in *.export.libs | Boris Kolpackov | 1 | -0/+5 | |
Fixes GH issue #362. | |||||
2024-02-06 | Fix bunch of maybe used uninitialized warnings | Boris Kolpackov | 1 | -1/+1 | |
2024-01-10 | Fix bunch of typos | Boris Kolpackov | 1 | -1/+1 | |
2023-12-12 | Work around unexecuted member for installed libraries issue | Boris Kolpackov | 1 | -4/+34 | |
See comment for the long-term plan. | |||||
2023-09-07 | Search for .tbd in addition to .dylib in Mac OS | Boris Kolpackov | 1 | -0/+25 | |
Besides .dylib, Mac OS now also has "text-based stub libraries" that use the .tbd extension. They appear to be similar to Windows import libraries and contain information such as the location of the .dylib library, its symbols, etc. For example, there is /Library/.../MacOSX13.3.sdk/usr/lib/libsqlite3.tbd which points to /usr/lib/libsqlite3.dylib (but which itself is invisible/inaccessible, presumably for security). Note that for now we are treating the .tbd library as the shared library but could probably do the more elaborate dance with ad hoc members like on Windows if really necessary. | |||||
2023-08-29 | Add diagnostics color support on Windows (GH issue #312) | Boris Kolpackov | 1 | -8/+39 | |
Note that currently this has to be enabled with an explicit --diag-color option. In the future the plan is to enable it by default if supported. | |||||
2023-06-02 | Fix data race in library metadata protocol logic | Boris Kolpackov | 1 | -2/+3 | |
2022-12-09 | Enable diagnostics color in GCC and Clang | Boris Kolpackov | 1 | -0/+49 | |
2022-12-08 | Normalize extracted header/library search directories (GH issue #235) | Boris Kolpackov | 1 | -0/+6 | |
2022-12-06 | Handle bin.whole when specified for interface dependencies | Boris Kolpackov | 1 | -5/+23 | |
2022-12-05 | Skip common .pc file for binless if found but rejected binful (GH issues #235) | Boris Kolpackov | 1 | -3/+35 | |
2022-10-10 | Preparatory work for public/private variable distinction | Boris Kolpackov | 1 | -2/+5 | |
We still always use the public var_pool from context but where required, all access now goes through scope::var_pool(). | |||||
2022-09-19 | Fix race between load and match phase logic in cc:search_library() | Boris Kolpackov | 1 | -12/+25 | |
2022-08-17 | Fix bug in handling of "in *.export.libs but not in prerequisites" case | Boris Kolpackov | 1 | -5/+16 | |
2022-08-17 | Handle another "in *.export.libs but not in prerequisites" case | Boris Kolpackov | 1 | -48/+70 | |
Also, enable this check even if proc_lib is not specified unless in the execute phase. | |||||
2022-07-19 | Fix bug in target::matched() | Boris Kolpackov | 1 | -6/+1 | |
2022-06-28 | Complete support for saving/loading library metadata to/from pkg-config files | Boris Kolpackov | 1 | -81/+155 | |
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. |