aboutsummaryrefslogtreecommitdiff
path: root/build2/context.cxx
AgeCommit message (Collapse)AuthorFilesLines
2017-12-07Distinguish between "fixed" and "default" target extensionsBoris Kolpackov1-1/+3
This fixes wrong merging of, say, file{README} and file{README.MySQL} (in libmysqlclient).
2017-12-03Allow typification of variables and values across load generationsBoris Kolpackov1-1/+1
The original semantics turned out to be too restrictive. For example, the user may have specified the config.c variable on the command line that is only used by an imported project that is loaded in a subsequent generation. We are also relaxing it for values since conceptually the two feel the same. For a value the (hypothetical) example is a "common" variable set in a project root that is only queried in a subdirectory in a subsequent generation.
2017-12-01Terminate waiting threads if coming off failed load phaseBoris Kolpackov1-2/+148
In this case the build state may no longer be valid.
2017-11-21Improve skipped update diagnosticsBoris Kolpackov1-0/+1
Instead of printing a line for each target skipped we now print a summary with count at the end. We also now show the skip count in progress.
2017-11-09Add support for for-loopBoris Kolpackov1-1/+1
The semantics is similar to the C++11 range-based for: list = 1 2 3 for i: $list print $i Note that there is no scoping of any kind for the loop variable ('i' in the above example). See tests/loop/for.test for some examples/ideas. In the future the plan is to also support more general while-loop as well as break and continue.
2017-10-03Adapt to modularization of libbutlKaren Arutyunov1-1/+1
2017-08-20Add support for not cleaning generated version fileBoris Kolpackov1-0/+4
2017-08-04Make file_rule match mtime_targets that have valid timestampBoris Kolpackov1-2/+2
This can be used to handle installed target groups like lib{}.
2017-08-01Add version, project.summary, project.url built-in variablesBoris Kolpackov1-4/+16
Extract them from manifest in the version module. Use them when generating the pkg-config's .pc files.
2017-07-27Implement displaying build progress (--progress|-p)Boris Kolpackov1-20/+63
2017-05-01Add hxx extension for headersKaren Arutyunov1-11/+11
2017-04-28Align build.version.* variables with standard version/version moduleBoris Kolpackov1-11/+25
2017-04-28Add in{} target type for .in ("input") file (requires preprocessing)Boris Kolpackov1-0/+1
2017-04-25Rename version header to version-impl to give way to version moduleBoris Kolpackov1-1/+0
2017-03-17Implement create meta-operationBoris Kolpackov1-1/+5
2017-03-15Add build.verbosity variable with -v/-V/--verbose valueBoris Kolpackov1-0/+4
2017-03-10Implement support for wildcard patternsBoris Kolpackov1-92/+97
2017-03-02Implement parallel matchBoris Kolpackov1-7/+146
2017-02-13Add MT-safe variable_cache, use for variable overridesBoris Kolpackov1-4/+0
2017-02-13Allow back overriding variables specified in buildfilesBoris Kolpackov1-1/+1
It is still not clear whether this is the right thing to allow, conceptually, but with this disallowed it's hard to test this functionality. Perhaps we should have an attribute [overridable]. The problem is one will also have to set this variable to some value (e.g., [null]) which is not exactly the same as undefined (especially when testing).
2017-02-13Implement parallel error propagation, keep_going modeBoris Kolpackov1-3/+34
Keep going is the default but there is now the -s|--serial-stop that makes the driver run serially and stop at first error. Also fix some lockups, other minor improvements/features.
2017-02-13Introduce target::task_countBoris Kolpackov1-1/+1
2017-02-13Pass const scope& where modification should not happenBoris Kolpackov1-9/+13
2017-02-13Redo variable pattern-typing to match in more specific orderBoris Kolpackov1-8/+12
2017-02-13Add notion of load phase generationBoris Kolpackov1-2/+5
2017-02-13Implement pattern-based variable typing, tighten variable type updateBoris Kolpackov1-1/+16
2017-02-13Add notion of phase, enforceBoris Kolpackov1-0/+2
2017-02-13Add scheduling calls to operation's match()Boris Kolpackov1-2/+2
2017-02-13Add model mutex, make var_pool const by defaultBoris Kolpackov1-19/+41
2017-01-19Get rid of extension_poolBoris Kolpackov1-4/+0
2017-01-19Get rid of project_name_poolBoris Kolpackov1-2/+0
With small string optimizations this is most likely a hindrance rather that an optimization.
2017-01-09Make use of operator<<(ostream, exception)Karen Arutyunov1-1/+1
2017-01-06Store platform targets as typed target_tripletBoris Kolpackov1-12/+11
2017-01-05Update copyright yearBoris Kolpackov1-1/+1
2016-12-16Move exe{} to build2 core, add fallback extensions (existing files)Boris Kolpackov1-0/+1
2016-12-05Use empty path for root scopeKaren Arutyunov1-5/+3
2016-11-21Change build.driver/path variable to build.path/process_pathBoris Kolpackov1-16/+9
2016-11-18Implement noop meta-operationBoris Kolpackov1-0/+1
The effect is loading all the buildfiles but not searching/matching/executing any targets/operations. Useful for testing.
2016-11-07Make build.driver path absoluteBoris Kolpackov1-1/+13
2016-11-04Add --no-line, --no-column optionsBoris Kolpackov1-2/+0
2016-11-04Add build.driver variable with build system driver path (argv[0])Boris Kolpackov1-0/+2
2016-11-04Change token type 'name' to more general 'word'Boris Kolpackov1-3/+3
2016-11-04Minor dependency cleanupBoris Kolpackov1-50/+3
2016-11-04Various design/implementation cleanupsBoris Kolpackov1-1/+1
2016-08-30Add support for target visibility, use for dist, test, installBoris Kolpackov1-1/+1
This means we can no longer write: install = false Now it should be: *: install = false
2016-08-30Remove backwards-compatibility kludgesBoris Kolpackov1-4/+0
2016-08-30Add support for config.build file versioningBoris Kolpackov1-0/+5
2016-08-28Limit c.std, cxx.std, and extension visibility to projectBoris Kolpackov1-1/+1
2016-08-19Implement uninstall operationBoris Kolpackov1-0/+1
2016-08-15Include host machine in --version outputBoris Kolpackov1-3/+0