aboutsummaryrefslogtreecommitdiff
path: root/build/cli
AgeCommit message (Collapse)AuthorFilesLines
2016-01-05Rename build directory/namespace to build2Boris Kolpackov6-743/+0
2015-12-14Add note on redirecting STDERR in cli testBoris Kolpackov1-0/+4
2015-12-03Clean up rule namesBoris Kolpackov1-21/+23
2015-12-03Add ability for module to remember that it is unconfiguredBoris Kolpackov1-12/+28
A module can set and then check the config.*.configured special variable to false.
2015-12-02Redo extension derivation for file{}, doc{}, and cli{}Boris Kolpackov1-2/+4
We now first check the 'extension' variable, then use the default.
2015-12-02Add support for optional configuration for cli moduleBoris Kolpackov1-42/+96
2015-12-02Implement optional module loadingBoris Kolpackov2-10/+20
The syntax is: using? cli Now each module use results in two bool variables: <module>.loaded and <module>.configured. Also implement variable visibility (the above two variables are limited to project).
2015-12-01Reimplement define as dynamic derivation rather than aliasBoris Kolpackov1-6/+2
New syntax: define cli: file The rationale is we need to be able to assign the file extension (using type/pattern-specific variables). And if it is an alias, we will assign it to the original target type. Note that we could still support aliases if we need to. Will need to bring back the id member in target_type that would normally point to itself but for an alias would point to the origin.
2015-12-01Implement support for definition target type aliasesBoris Kolpackov2-5/+7
For example: define cli=file Currently, the semantics is that of a real alias with only name differences that are used for display. See tests/define/buildfile for more use cases.
2015-11-30Tighten unresolved group logicBoris Kolpackov1-0/+6
Now a wildcard/fallback rule should explicitly detect and handle unresolved situation.
2015-11-30Add cli{} prerequisite if cli.cxx{} group doesn't have anyBoris Kolpackov1-4/+7
This happens when we use the group only for setting cli.options. Not very clean.
2015-11-29Allow for target group members to remain unresolvedBoris Kolpackov1-4/+0
This, for example, can happen when we have a fallback rule for dist(update) or configure(update).
2015-09-08Rework diagnostics verbosity, add quiet mode/optionBoris Kolpackov2-10/+10
2015-08-31Rework scoping logicBoris Kolpackov1-1/+1
Now the src directory is entered into the scope map and points to the same scope as out. This means that targets that are in src, not out (e.g., source files) will "see" rules, variables, etc. This becomes important when we try, for example, to install a source file (say, a header) from src: we need the rule as well as the install.* variables.
2015-08-29New configure meta-operation implementationBoris Kolpackov2-1/+5
Now we search and match (but do not execute) a rule for every operation supported by the project.
2015-08-27Dist module/meta-operation initial implementationBoris Kolpackov2-13/+9
2015-08-24New variable architectureBoris Kolpackov2-6/+16
2015-08-03match_only and dependents count rework, part 1Boris Kolpackov1-1/+1
2015-07-24Add support for generated test input/outputBoris Kolpackov1-2/+4
2015-07-23Basic test supportBoris Kolpackov1-1/+1
2015-07-22Fix postponed re-examination logicBoris Kolpackov1-1/+1
Now postponed takes precedence over changed.
2015-07-21Improve nested operations supportBoris Kolpackov2-2/+2
The idea is this: we need to be able to override "conditional, inner for outer" recipes with the "unconditional inner" ones. Here is the concrete scenario: we have {update, test} action and the lib{} target that is both mentioned as a prerequisite of ./ and exe{}, which is a test. At first, we want to ignore lib{} when reached as a prerequisite of ./. But then we get to it via exe{} (which is a test and thus should be updated). At this point we should override the recipe for lib{} with the one that would update it rather than ignore.
2015-07-07Rework module architectureBoris Kolpackov2-34/+42
Now the target type and rule maps are in scopes (builtins -- in global scope). We also now have the map of loaded modules in the root scope of each project.
2015-07-06Add note on cli module implementationBoris Kolpackov1-0/+1
2015-07-02Common types cleanup (strings, cstrings)Boris Kolpackov1-2/+3
2015-07-02Various improvements to cli moduleBoris Kolpackov4-53/+48
2015-07-02Make few existing file searching optimizationsBoris Kolpackov1-1/+18
2015-07-01Get rid of accessors/modifiers in cli.cxx targetBoris Kolpackov3-35/+40
2015-07-01Clean up group state, mtime designBoris Kolpackov3-65/+62
2015-07-01Group state supportBoris Kolpackov2-31/+1
2015-07-01Cleanup group "see through" designBoris Kolpackov3-15/+11
2015-06-30Group "see through" iteration, take 1Boris Kolpackov2-11/+11
2015-06-26Part two of dependency injection with auto-generation supportBoris Kolpackov1-54/+93
2015-06-24First take on the cli module plus necessary infrastructureBoris Kolpackov6-0/+611