Age | Commit message (Collapse) | Author | Files | Lines | |
---|---|---|---|---|---|
2018-11-22 | Fix bug in dependency chain logic | Boris Kolpackov | 1 | -13/+15 | |
2018-11-21 | More backwards modification time experimentation | Boris Kolpackov | 3 | -15/+37 | |
2018-11-21 | Add support for target and prerequisite specific variable blocks | Boris Kolpackov | 12 | -220/+553 | |
For example, now instead of: lib{foo}: cxx.loptions += -static lib{foo}: cxx.libs += -lpthread We can write: lib{foo}: { cxx.loptions += -static cxx.libs += -lpthread } The same works for prerequisites as well as target type/patterns. For example: exe{*.test}: { test = true install = false } | |||||
2018-11-20 | Improve workaround for backwards modification time issue | Boris Kolpackov | 3 | -25/+46 | |
2018-11-19 | Extend backwards modification time diagnostics | Boris Kolpackov | 3 | -4/+7 | |
2018-11-19 | Fix expected diagnostics in test | Boris Kolpackov | 1 | -1/+1 | |
2018-11-19 | Workaround Apple ar fractional second truncation bug on APFS | Boris Kolpackov | 1 | -0/+16 | |
2018-11-19 | Finalize workaround for backwards modification time issue | Boris Kolpackov | 6 | -55/+69 | |
2018-11-19 | Minor diagnostics tweak | Boris Kolpackov | 1 | -1/+2 | |
2018-11-17 | Print id of failed test | Karen Arutyunov | 11 | -13/+153 | |
2018-11-16 | Test workaround theory for backwards mtime issue | Boris Kolpackov | 1 | -5/+4 | |
2018-11-16 | Implement support for dependency chains | Boris Kolpackov | 5 | -142/+227 | |
Now instead of: ./: exe{foo} exe{foo}: cxx{*} We can write: ./: exe{foo}: cxx{*} Or even: ./: exe{foo}: libue{foo}: cxx{*} This can be combined with prerequisite-specific variables (which naturally only apply to the last set of prerequisites in the chain): ./: exe{foo}: libue{foo}: bin.whole = false | |||||
2018-11-16 | Adjust tracing level for few noisy cases | Boris Kolpackov | 2 | -3/+9 | |
2018-11-16 | Fix GCC maybe used uninitialized warning | Karen Arutyunov | 1 | -1/+1 | |
2018-11-15 | Instrument cc:link_rule with backwards mtime detection/diagnostics | Boris Kolpackov | 1 | -0/+20 | |
2018-11-14 | Fallback to loading outer buildfile if there isn't one in src_base | Boris Kolpackov | 13 | -66/+199 | |
This covers the case where the target is defined in the outer buildfile which is common with non-intrusive project conversions where everything is built from a single root buildfile. | |||||
2018-11-14 | Tweak assert directive diagnostics | Boris Kolpackov | 2 | -4/+5 | |
2018-11-13 | Minor terminology tweaks (model -> build state) | Boris Kolpackov | 4 | -11/+11 | |
2018-11-09 | Fix bug in command line variable override depth calculation | Boris Kolpackov | 1 | -7/+11 | |
2018-11-09 | Add support for relative to base scope command line variable overrides | Boris Kolpackov | 7 | -52/+113 | |
Currently, if we say: $ b dir/ ./foo=bar The scope the foo=bar is set on is relative to CWD, not dir/. While this may seem wrong at first, this is the least surprising behavior when we take into account that there can be multiple dir/'s. Sometimes, however, we do want the override directory to be treated relative to (every) target's base scope that we are building. To support this we are extending the '.' and '..' special directory names (which are still resolved relative to CWD) with '...', which means "relative to the base scope of every target in the buildspec". For example: $ b dir/ .../foo=bar Is equivalent to: $ b dir/ dir/foo=bar And: $ b liba/ libb/ .../tests/foo=bar Is equivalent to: $ b liba/ libb/ liba/tests/foo=bar libb/tests/foo=bar | |||||
2018-11-08 | Make command line variable override scope syntax consistent with buildfile | Boris Kolpackov | 2 | -20/+76 | |
Before: $ b dir/:foo=bar ... After: $ b dir/foo=bar Alternatively (the buildfile syntax): $ b 'dir/ foo=bar' Note that the (rarely used) scope visibility modifier now leads to a double slash: $ b dir//foo=bar | |||||
2018-11-08 | Fix bug in override logic for command line variable with project visibility | Boris Kolpackov | 3 | -5/+29 | |
2018-11-07 | Remove extraneous space | Boris Kolpackov | 1 | -1/+1 | |
2018-11-07 | Improve parser diagnostics | Boris Kolpackov | 1 | -0/+11 | |
2018-11-06 | Ignore non-existent /usr/local/{include/,lib/} | Boris Kolpackov | 1 | -17/+28 | |
This should fix some bizarre yo-yo'ing cases where uninstall removes the directories which in turn triggers a rebuild on the next invocation. | |||||
2018-11-05 | Only search for external tools (compilers, linkers, etc) in PATH | Boris Kolpackov | 6 | -11/+42 | |
Specifically, omit the current executable's directory on Windows since there is no reason for them to be found there automagically and this can lead to surprising behavior (for example, our MinGW GCC being used instead of the user's even though the user's is in PATH before ours). | |||||
2018-11-05 | Distinguish between MSVC command line errors and warnings | Boris Kolpackov | 2 | -2/+5 | |
2018-11-05 | Resolve /WN /Wall /w option overrides | Boris Kolpackov | 2 | -7/+73 | |
Failed that, MSVC "helpfully" warns that one is overriding the other. | |||||
2018-11-05 | Handle MSVC command line warnings | Boris Kolpackov | 2 | -36/+66 | |
2018-11-02 | Fix typo | Boris Kolpackov | 3 | -3/+3 | |
2018-11-02 | Use rule-specific variables for backlink value | Boris Kolpackov | 3 | -13/+22 | |
2018-11-02 | Use rule-specific variables for module name set on bmi*{} targets | Boris Kolpackov | 3 | -13/+21 | |
2018-11-01 | Fix atomic count initialization | Boris Kolpackov | 1 | -2/+2 | |
2018-11-01 | Bump minimum supported Clang version to 3.7 | Boris Kolpackov | 1 | -1/+1 | |
2018-11-01 | Add support for rule-specific variables, use to fix cc.type data race | Boris Kolpackov | 14 | -68/+231 | |
2018-10-27 | Update libpkgconf version constraint to allow 1.5.x | Boris Kolpackov | 1 | -1/+1 | |
2018-10-27 | Fallback to --version for GCC/Clang-like compilers if -v didn't work | Boris Kolpackov | 1 | -15/+20 | |
2018-10-26 | Add config.{c,cxx}.{id,version,target} configuration variables | Boris Kolpackov | 12 | -500/+714 | |
These variables allow overriding guessed compiler id/version/target, for example, in case of mis-guesses or when working with compilers that don't report their base (e.g., GCC, Clang) with -v/--version (common in the embedded space). | |||||
2018-10-26 | Add support for libpkgconf 1.5 API | Karen Arutyunov | 1 | -2/+41 | |
2018-10-25 | Redesign cc::compiler_id to make variant customizable | Boris Kolpackov | 9 | -190/+223 | |
2018-10-25 | Fix execute_direct() to handle "match failed" case | Boris Kolpackov | 1 | -5/+11 | |
2018-10-25 | Fix race in rule synthesis logic | Boris Kolpackov | 3 | -11/+50 | |
2018-10-25 | Fix bug in add_adhoc_member() (set group) | Boris Kolpackov | 1 | -0/+3 | |
2018-10-24 | Fix GCC 8 -fimplicit-fallthrough warnings | Karen Arutyunov | 1 | -0/+3 | |
2018-10-23 | Treat invalid names as values if they are quoted | Boris Kolpackov | 2 | -20/+40 | |
2018-10-23 | Move invalid_argument handler from default_thunk() to call() | Boris Kolpackov | 2 | -17/+19 | |
This way we let a custom thunk catch derived exception (like invalid_path). | |||||
2018-10-19 | Suggest override variable (config.x) when tool is not found | Boris Kolpackov | 5 | -13/+63 | |
2018-10-19 | Fix bug in binutils pattern derivation logic | Boris Kolpackov | 1 | -7/+15 | |
2018-10-19 | Improve inconsistent compiler behavior diagnostics | Boris Kolpackov | 1 | -9/+15 | |
2018-10-18 | Add note to manual on creating binless libraries with bdep-new | Boris Kolpackov | 1 | -1/+11 | |