aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
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.
2018-11-05Only search for external tools (compilers, linkers, etc) in PATHBoris Kolpackov6-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-05Distinguish between MSVC command line errors and warningsBoris Kolpackov2-2/+5
2018-11-05Resolve /WN /Wall /w option overridesBoris Kolpackov2-7/+73
Failed that, MSVC "helpfully" warns that one is overriding the other.
2018-11-05Handle MSVC command line warningsBoris Kolpackov2-36/+66
2018-11-02Fix typoBoris Kolpackov3-3/+3
2018-11-02Use rule-specific variables for backlink valueBoris Kolpackov3-13/+22
2018-11-02Use rule-specific variables for module name set on bmi*{} targetsBoris Kolpackov3-13/+21
2018-11-01Fix atomic count initializationBoris Kolpackov1-2/+2
2018-11-01Bump minimum supported Clang version to 3.7Boris Kolpackov1-1/+1
2018-11-01Add support for rule-specific variables, use to fix cc.type data raceBoris Kolpackov14-68/+231
2018-10-27Update libpkgconf version constraint to allow 1.5.xBoris Kolpackov1-1/+1
2018-10-27Fallback to --version for GCC/Clang-like compilers if -v didn't workBoris Kolpackov1-15/+20
2018-10-26Add config.{c,cxx}.{id,version,target} configuration variablesBoris Kolpackov12-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-26Add support for libpkgconf 1.5 APIKaren Arutyunov1-2/+41
2018-10-25Redesign cc::compiler_id to make variant customizableBoris Kolpackov9-190/+223
2018-10-25Fix execute_direct() to handle "match failed" caseBoris Kolpackov1-5/+11
2018-10-25Fix race in rule synthesis logicBoris Kolpackov3-11/+50
2018-10-25Fix bug in add_adhoc_member() (set group)Boris Kolpackov1-0/+3
2018-10-24Fix GCC 8 -fimplicit-fallthrough warningsKaren Arutyunov1-0/+3
2018-10-23Treat invalid names as values if they are quotedBoris Kolpackov2-20/+40
2018-10-23Move invalid_argument handler from default_thunk() to call()Boris Kolpackov2-17/+19
This way we let a custom thunk catch derived exception (like invalid_path).
2018-10-19Suggest override variable (config.x) when tool is not foundBoris Kolpackov5-13/+63
2018-10-19Fix bug in binutils pattern derivation logicBoris Kolpackov1-7/+15
2018-10-19Improve inconsistent compiler behavior diagnosticsBoris Kolpackov1-9/+15
2018-10-18Add note to manual on creating binless libraries with bdep-newBoris Kolpackov1-1/+11
2018-10-18Fix bug in binless library linking logicBoris Kolpackov3-27/+16
2018-10-17Fix few bugs in manualBoris Kolpackov1-9/+10
2018-10-16Raise libcpp version in regex-related check to 7.0.0Karen Arutyunov1-1/+1
2018-10-04Add note on C++ module interface unit naming to manualBoris Kolpackov1-1/+8
2018-09-16Fix bug in manualBoris Kolpackov1-1/+1
2018-09-14Fix uncaught invalid_path exceptionKaren Arutyunov1-18/+25
2018-09-12Fix typo in NEWS fileBoris Kolpackov1-1/+1
2018-09-12Bump version to 0.9.0-a.0.z, master is open for businessBoris Kolpackov3-5/+5
2018-09-11Change build.version.stage to falsev0.8.0Boris Kolpackov1-1/+1
2018-09-11Bump version to 0.8.0Boris Kolpackov2-3/+3
2018-09-10Documentation fixes and improvementsBoris Kolpackov1-158/+167
2018-09-10Replace libu with libue in buildfilesKaren Arutyunov10-13/+13
2018-09-10Update NEWS fileBoris Kolpackov1-0/+139
2018-09-08More documentation fixesBoris Kolpackov1-1/+1
2018-09-08Documentation fixBoris Kolpackov1-1/+1
2018-09-08Documentation fixesBoris Kolpackov1-466/+503
2018-09-07Fix binless logic some moreBoris Kolpackov2-15/+16
2018-09-07Explain subprojects and amalgamation in manualBoris Kolpackov1-5/+245
2018-09-06Fix issues with interaction between binless logic and Windows DLLsBoris Kolpackov4-26/+46