Age | Commit message (Collapse) | Author | Files | Lines | |
---|---|---|---|---|---|
2022-07-20 | Fix bug in cc::pkconfig_save() | Boris Kolpackov | 1 | -1/+1 | |
2022-07-20 | Adjust to match libpkg-config interface/semantics changes | Boris Kolpackov | 1 | -5/+25 | |
2022-07-19 | Fix bug in target::matched() | Boris Kolpackov | 1 | -6/+1 | |
2022-07-17 | Map VC 17 to runtime version 14.3 | Boris Kolpackov | 1 | -2/+5 | |
2022-07-05 | Drop unused lambda capture | Boris Kolpackov | 1 | -2/+1 | |
2022-07-05 | Switch to using libpkg-config instead of libpkgconf by default | Boris Kolpackov | 3 | -7/+276 | |
The use of (now deprecated) libpkgconf is still possible by setting config.build2.libpkgconf to true. Note that libpkgconf is known to have issues on Windows and Mac OS so this should only be used on Linux and maybe BSDs. Also note that we will only keep this until upstream (again) breaks backwards compatibility at which point we will drop this support. | |||||
2022-07-05 | Recognize special .for_install variable suffix in library user metadata | Boris Kolpackov | 1 | -25/+79 | |
2022-07-04 | Work around VC16 issue | Boris Kolpackov | 1 | -0/+2 | |
2022-07-04 | Factor libpkgconf-based pkgconfig implementation to separate source file | Boris Kolpackov | 3 | -461/+499 | |
2022-07-02 | Minor cleanups in class pkgconf implementation | Boris Kolpackov | 1 | -22/+32 | |
2022-07-02 | Add note on version we save in pkg-config files | Boris Kolpackov | 1 | -0/+14 | |
2022-07-01 | Ignore Provides when loading pkg-config information | Boris Kolpackov | 1 | -0/+1 | |
Without this flag, on encountering an unknown package, libpkgconf will load *all* pkg-config files it can find in order to see if any of them provide it. | |||||
2022-06-29 | Work around MSVC 14.3 issues | Boris Kolpackov | 1 | -2/+2 | |
2022-06-29 | Make sure we generate common pkg-config file for only liba{}/libs{} | Boris Kolpackov | 1 | -2/+19 | |
2022-06-29 | Save cc.type in pkg-config files | Boris Kolpackov | 2 | -5/+30 | |
2022-06-29 | Rework pkg-config variable naming, use build2.metadata as general indicator | Boris Kolpackov | 1 | -174/+222 | |
2022-06-28 | Complete support for saving/loading library metadata to/from pkg-config files | Boris Kolpackov | 5 | -167/+308 | |
2022-06-24 | Allow ad hoc rules not to list targets that are updated during match | Boris Kolpackov | 3 | -8/+19 | |
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 control -I translation in $x.lib_poptions() | Boris Kolpackov | 3 | -11/+22 | |
2022-06-24 | Add ability to get common interface options via $x.lib_poptions() | Boris Kolpackov | 8 | -66/+169 | |
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-06-24 | Match libraries before update for install prerequisites in cc::link_rule | Boris Kolpackov | 1 | -4/+11 | |
2022-06-23 | Handle empty entries in GCC -print-search-dirs | Boris Kolpackov | 1 | -7/+12 | |
2022-05-23 | Detect cross-linking and pass -rpath-link in addition to -rpath | Boris Kolpackov | 1 | -7/+69 | |
According to the GNU ld documentation (and painful practical experience), -rpath does not always imply -rpath-link for cross-linkers. | |||||
2022-05-17 | Add OpenBSD libc detection | Boris Kolpackov | 1 | -0/+2 | |
2022-05-06 | Minor terminology fix in diagnostics and comments | Boris Kolpackov | 1 | -1/+1 | |
2022-05-05 | Recognize -pthread as king of -l in *.libs | Boris Kolpackov | 4 | -38/+56 | |
2022-05-05 | Allow linking libraries without any sources/headers with hint | Boris Kolpackov | 1 | -3/+8 | |
This can be useful for creating "metadata libraries". | |||||
2022-04-24 | Omit ignorable change detection for header units | Boris Kolpackov | 1 | -1/+9 | |
Since the checksum ignores preprocessor directives, this may cause us to ignore a change to an exported macro. | |||||
2022-04-24 | Fix bug in previous commit | Boris Kolpackov | 1 | -1/+1 | |
2022-04-24 | Recognize ARM64 as MSVC target | Boris Kolpackov | 1 | -12/+19 | |
2022-04-20 | Fix bug in recursively-binless detection logic | Boris Kolpackov | 1 | -1/+5 | |
2022-04-20 | Get rid of unnecessary move() call | Boris Kolpackov | 1 | -1/+1 | |
2022-04-19 | Use target recipe for auxiliary data storage during match-apply | Boris Kolpackov | 5 | -43/+84 | |
In particular, we now have separate auxiliary data storage for inner and outer operations. | |||||
2022-04-19 | Switch to using std::function for target::data_pad | Boris Kolpackov | 3 | -9/+2 | |
2022-04-19 | Optimize header cache some more by storing hash in key | Boris Kolpackov | 2 | -4/+42 | |
2022-04-19 | Skip find() inside target_set::insert*() if target is unlikely to be there | Boris Kolpackov | 1 | -2/+4 | |
2022-04-15 | Adjust small vector limit in process_libraries() | Boris Kolpackov | 2 | -43/+86 | |
2022-04-15 | Get rid of target::dynamic_type() virtual function | Boris Kolpackov | 1 | -12/+30 | |
Instead of overriding this function, derived targets must now set the dynamic_type variable to their static_type in their constructor body. | |||||
2022-04-14 | Add header cache to cc::compile_rule::enter_header() | Boris Kolpackov | 3 | -32/+193 | |
2022-04-13 | Fix bug in previous commit | Boris Kolpackov | 1 | -1/+1 | |
2022-04-13 | Prune library graph traversal for recursively-binless libraries | Boris Kolpackov | 3 | -57/+213 | |
2022-04-13 | Add automatic interface dependency deduplication in cc::process_libraries() | Boris Kolpackov | 3 | -18/+92 | |
2022-04-07 | Rename {match,execute}() to *_sync(), add *_complete() | Boris Kolpackov | 2 | -2/+2 | |
In particular, the match() rename makes sure it doesn't clash with rule::match() which, after removal of the hint argument in simple_rule, has exactly the same signature, thus making it error-prone to calling recursively. | |||||
2022-04-06 | Work around Clang warnings | Boris Kolpackov | 1 | -0/+4 | |
2022-04-06 | Add support for rule hints | Boris Kolpackov | 9 | -45/+43 | |
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. | |||||
2022-03-30 | Infrastructure for library metadata support | Boris Kolpackov | 3 | -9/+334 | |
2022-03-28 | Respect dry-run in Windows assembly creation logic | Boris Kolpackov | 1 | -3/+8 | |
2022-03-28 | Add ability to customize pkg-config header and library search paths | Boris Kolpackov | 3 | -11/+46 | |
Specifically, {cc,c,cxx}.pkgconfig.{include,lib} variables specify header (-I) and library (-L) search paths to use in the generated .pc files instead of the default install.{include,lib}. Relative paths are resolved as install paths. | |||||
2022-03-25 | Store bin.whole flag in pkg-config files | Boris Kolpackov | 2 | -14/+47 | |
2022-03-17 | Handle absolute POSIX paths in MinGW GCC search paths | Boris Kolpackov | 1 | -2/+34 | |