Age | Commit message (Collapse) | Author | Files | Lines | |
---|---|---|---|---|---|
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 | |
2022-05-23 | Add ability to iterate over variable pool | Boris Kolpackov | 1 | -7/+14 | |
2022-05-23 | Add config::origin(const variable&) overload | Boris Kolpackov | 2 | -9/+23 | |
2022-05-22 | Add support for variable patterns in config.config.disfigure | Boris Kolpackov | 3 | -5/+127 | |
2022-05-20 | Make $config.origin() also available internally as config::origin() | Boris Kolpackov | 3 | -28/+59 | |
2022-05-19 | Add config.config.unload variable to omit loading config.build | Boris Kolpackov | 1 | -7/+34 | |
Note that the configuration is still loaded from config.config.load if specified. Note also that similar to config.config.load, only values specified on this project's root scope and global scope are considered. | |||||
2022-05-17 | Add OpenBSD libc detection | Boris Kolpackov | 1 | -0/+2 | |
2022-05-17 | Handle stack size querying on OpenBSD | Boris Kolpackov | 1 | -1/+13 | |
2022-05-11 | Add $config.origin() function | Boris Kolpackov | 1 | -0/+70 | |
This function can be used to query the origin of a configuration variable value. The result is one of `undefined`, `default`, `buildfile`, or `override`. | |||||
2022-05-10 | Use our own implementation of C++14 threads on MinGW | Boris Kolpackov | 3 | -27/+49 | |
2022-05-06 | Minor terminology fix in diagnostics and comments | Boris Kolpackov | 6 | -8/+8 | |
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-05-02 | Don't verify parser replay integrity if exception is being thrown | Boris Kolpackov | 1 | -3/+21 | |
2022-04-25 | Rename cmdline to b_cmdline, and options to b_options | Boris Kolpackov | 6 | -199/+199 | |
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-21 | Work around bogus -Wrestrict in GCC 12 (GCC bug #105329) | Boris Kolpackov | 2 | -4/+10 | |
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-20 | Replace match_extra::buffer with more general data storage facility | Boris Kolpackov | 6 | -14/+84 | |
2022-04-20 | Add explicit flag to more efficiently avoid repeated load_root() calls | Boris Kolpackov | 2 | -20/+23 | |
2022-04-20 | Add import cache | Boris Kolpackov | 2 | -2/+77 | |
2022-04-19 | Use target recipe for auxiliary data storage during match-apply | Boris Kolpackov | 18 | -145/+286 | |
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 | 10 | -52/+98 | |
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 | 5 | -14/+39 | |
2022-04-19 | Switch recipe from std::function to butl::move_only_function_ex | Boris Kolpackov | 5 | -45/+24 | |