aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2018-12-15Fix line counting in cc::lexerKaren Arutyunov2-2/+4
2018-12-12Fix bug in module interface unit preprocessingBoris Kolpackov1-5/+9
2018-12-04Adjust module tests to comply with the merged proposal (P1103)Boris Kolpackov1-8/+5
Specifically, import can no longer be inside an export block.
2018-12-03Remove unnecessary delete/default declarationsBoris Kolpackov1-11/+0
2018-12-03Suppress MSVC warnings at project levelBoris Kolpackov3-1/+13
2018-12-03Diagnose separated variable/function nameBoris Kolpackov1-1/+3
2018-12-01Add commented out builds value to manifestKaren Arutyunov1-0/+1
2018-11-30Various documentation updates, section on debugging build issuesBoris Kolpackov1-96/+595
2018-11-30Adapt to inventing path_match_flagsKaren Arutyunov2-5/+6
2018-11-28Regenerate options documentationBoris Kolpackov1-3/+3
2018-11-28Add note on potential future improvements to mtime checkBoris Kolpackov1-0/+6
2018-11-28Fix couple of man page formatting issuesBoris Kolpackov1-4/+4
2018-11-28Add --[no-]mtime-check options to control this behavior at runtimeBoris Kolpackov13-44/+127
By default the checks are enabled only for the staged toolchain.
2018-11-28Add config.hxx.in config header, move stage status thereBoris Kolpackov6-9/+43
2018-11-27Add --dump <phase> option, omit state dumping from verbosity level 6Boris Kolpackov7-17/+74
2018-11-26Cleanup backwards modification time workaround codeBoris Kolpackov2-118/+25
2018-11-24Add back backwards modification time workaround for FreeBSDBoris Kolpackov1-3/+7
Seems like it's still needed in some tight situations (e.g., in rule).
2018-11-24Use \n instead of endl in in ruleBoris Kolpackov1-2/+2
2018-11-24Reimplement depdb with fdstreamsBoris Kolpackov4-95/+149
2018-11-23More backwards modification time experimentationBoris Kolpackov1-0/+15
2018-11-23Revert rename of .exe.d to .d (did not make any difference)Boris Kolpackov1-5/+3
2018-11-23Don't allow pattern characters in target names, scope directoriesBoris Kolpackov1-16/+49
2018-11-22Rename .exe.d to just .d to test Windows interference theoryBoris Kolpackov1-3/+5
2018-11-22Tweak in rule to ensure correct mtime orderBoris Kolpackov1-1/+4
2018-11-22Make backwards modification time check permanent, add another experimentBoris Kolpackov7-51/+163
2018-11-22Fix bug in dependency chain logicBoris Kolpackov1-13/+15
2018-11-21More backwards modification time experimentationBoris Kolpackov3-15/+37
2018-11-21Add support for target and prerequisite specific variable blocksBoris Kolpackov12-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-20Improve workaround for backwards modification time issueBoris Kolpackov3-25/+46
2018-11-19Extend backwards modification time diagnosticsBoris Kolpackov3-4/+7
2018-11-19Fix expected diagnostics in testBoris Kolpackov1-1/+1
2018-11-19Workaround Apple ar fractional second truncation bug on APFSBoris Kolpackov1-0/+16
2018-11-19Finalize workaround for backwards modification time issueBoris Kolpackov6-55/+69
2018-11-19Minor diagnostics tweakBoris Kolpackov1-1/+2
2018-11-17Print id of failed testKaren Arutyunov11-13/+153
2018-11-16Test workaround theory for backwards mtime issueBoris Kolpackov1-5/+4
2018-11-16Implement support for dependency chainsBoris Kolpackov5-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-16Adjust tracing level for few noisy casesBoris Kolpackov2-3/+9
2018-11-16Fix GCC maybe used uninitialized warningKaren Arutyunov1-1/+1
2018-11-15Instrument cc:link_rule with backwards mtime detection/diagnosticsBoris Kolpackov1-0/+20
2018-11-14Fallback to loading outer buildfile if there isn't one in src_baseBoris Kolpackov13-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-14Tweak assert directive diagnosticsBoris Kolpackov2-4/+5
2018-11-13Minor terminology tweaks (model -> build state)Boris Kolpackov4-11/+11
2018-11-09Fix bug in command line variable override depth calculationBoris Kolpackov1-7/+11
2018-11-09Add support for relative to base scope command line variable overridesBoris Kolpackov7-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-08Make command line variable override scope syntax consistent with buildfileBoris Kolpackov2-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-08Fix bug in override logic for command line variable with project visibilityBoris Kolpackov3-5/+29
2018-11-07Remove extraneous spaceBoris Kolpackov1-1/+1
2018-11-07Improve parser diagnosticsBoris Kolpackov1-0/+11
2018-11-06Ignore non-existent /usr/local/{include/,lib/}Boris Kolpackov1-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.