Age | Commit message (Collapse) | Author | Files | Lines | |
---|---|---|---|---|---|
2022-07-21 | Don't issue conditional dependency declaration warning for imported projects | Boris Kolpackov | 3 | -9/+46 | |
2022-07-20 | Fix bug in cc::pkconfig_save() | Boris Kolpackov | 1 | -1/+1 | |
2022-07-20 | Tweak diagnostics | Boris Kolpackov | 1 | -1/+1 | |
2022-07-20 | Adjust conditional dependency declaration warning logic | Boris Kolpackov | 2 | -13/+19 | |
Now instead of ignoring imported stuff (which turned out to be racy), we only consider conditions up to the include boundary. The thinking here is that an included (but not sourced) buildfile is a standalone entity (e.g., imported project but also could be just a side-included buildfile). Note that unfortunately we will still be issuing warnings in imported projects since there is no straightforward way to know what is being distributed and what is not while parsing. | |||||
2022-07-20 | Adjust to match libpkg-config interface/semantics changes | Boris Kolpackov | 1 | -5/+25 | |
2022-07-19 | Warn about conditional dependency declarations during distribution | Boris Kolpackov | 2 | -0/+51 | |
2022-07-19 | Fix bug in target::matched() | Boris Kolpackov | 2 | -7/+7 | |
2022-07-17 | Map VC 17 to runtime version 14.3 | Boris Kolpackov | 2 | -3/+6 | |
2022-07-13 | Work around "storing address of local variable" warning issued by GCC 12 | Boris Kolpackov | 1 | -1/+1 | |
The warning is issued inside the target_lock's move constructor so we sidestep the whole thing by avoiding the call to the move constructor. | |||||
2022-07-08 | Fix script::parser::need_cmdline_relex() | Karen Arutyunov | 1 | -1/+1 | |
2022-07-07 | Use new cmdline type for canned command lines in {Build,Test}script | Boris Kolpackov | 12 | -73/+389 | |
2022-07-07 | Fix incorrect function family assignment for $target.process_path() | Boris Kolpackov | 1 | -1/+1 | |
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 | 2 | -26/+95 | |
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 | Regenerate options parsing files | Karen Arutyunov | 4 | -47/+162 | |
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 | 2 | -3/+3 | |
2022-06-29 | Make sure we generate common pkg-config file for only liba{}/libs{} | Boris Kolpackov | 5 | -8/+44 | |
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 | 2 | -178/+228 | |
2022-06-28 | Complete support for saving/loading library metadata to/from pkg-config files | Boris Kolpackov | 5 | -167/+308 | |
2022-06-28 | Add support for querying out-qualified target-specific variables | Boris Kolpackov | 7 | -35/+68 | |
2022-06-28 | Handle out-qualified prerequisites | Boris Kolpackov | 1 | -6/+20 | |
2022-06-28 | Add support for rule-specific import phase 2 | Boris Kolpackov | 6 | -41/+184 | |
For example: import! [metadata, rule_hint=cxx.link] lib = libhello%lib{hello} | |||||
2022-06-24 | Allow ad hoc rules not to list targets that are updated during match | Boris Kolpackov | 10 | -37/+136 | |
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 | Make libul{} rule match without hint | Boris Kolpackov | 3 | -31/+11 | |
In the end, the extra jumping through the hoops doesn't justify the extra safety we gain. The only plausible accidental mistake is making libul{} a dependency of ./ but then we don't prevent the same for libue{}, which also doesn't make much sense. Though, the consequences of doing this for libul{} could be more severe, like messed up for-install'ness. Oh, well, I guess people will just have to pay attention (this could be a good check for the linter we've been thinking about). | |||||
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 rule to libul{} with explicit bin.metadata hint | Boris Kolpackov | 5 | -11/+110 | |
This rule picks, matches, and unmatches (if possible) a member for the purpose of making its metadata (for example, library's poptions, if it's one of the cc libraries) available. | |||||
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-06-23 | Minor enhancements to algorithms | Boris Kolpackov | 3 | -20/+82 | |
2022-06-22 | Add missing match_data() destructor | Boris Kolpackov | 1 | -0/+5 | |
2022-06-21 | Add --trace-{match,execute} options | Boris Kolpackov | 14 | -105/+420 | |
These options can be used to understand which dependency chain causes matching or execution of a particular target. | |||||
2022-06-17 | Add ability to ignore subprojects in create_bootstrap_outer() | Boris Kolpackov | 3 | -6/+7 | |
2022-06-14 | Add note to parser::lookup_variable() description | Boris Kolpackov | 1 | -0/+4 | |
2022-06-14 | Tighten value::extra usage in config module | Boris Kolpackov | 4 | -5/+10 | |
Specifically, only values marked with 1 are treated as default leaving other values for use for other purposes. | |||||
2022-06-06 | Add another config::origin() overload | Boris Kolpackov | 2 | -2/+15 | |
2022-06-03 | Reset value::extra on variable_map value change/version increment | Boris Kolpackov | 5 | -7/+25 | |
The reset on each modification semantics is used to implement the default value distinction as currently done in the config module but later probably will be done for ?= and $origin(). | |||||
2022-06-03 | Add another variable_map::insert() overload | Boris Kolpackov | 1 | -0/+6 | |
2022-06-03 | Expose type name to value_type mapping function in parser | Boris Kolpackov | 2 | -4/+13 | |
2022-06-03 | Move config::variable_visibility to separate types.hxx header | Boris Kolpackov | 2 | -8/+27 | |
2022-05-27 | Don't pass --format to OpenBSD tar (ustar is default) | Boris Kolpackov | 1 | -22/+25 | |
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-23 | Cache build.host value in context | Boris Kolpackov | 6 | -7/+12 | |