aboutsummaryrefslogtreecommitdiff
path: root/build
AgeCommit message (Collapse)AuthorFilesLines
2015-09-04Fix static initialization order issueBoris Kolpackov2-4/+14
2015-09-02Override duplicate generated C++ dependency prefixBoris Kolpackov1-3/+12
2015-09-02Remove stray spaceBoris Kolpackov1-1/+1
2015-09-01Minor changesBoris Kolpackov2-4/+1
2015-08-31Clean parser implementationBoris Kolpackov2-59/+13
2015-08-31Rework scoping logicBoris Kolpackov28-246/+475
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 Kolpackov11-27/+88
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 Kolpackov34-229/+1093
2015-08-24Ignore unknown prerequisite types in C++ link ruleBoris Kolpackov2-13/+0
2015-08-24Cosmetic changeBoris Kolpackov1-1/+1
2015-08-24Only treat name as directory if it is reversibleBoris Kolpackov2-29/+35
2015-08-24Add support for reversing project qualification to string valueBoris Kolpackov1-1/+26
2015-08-24New variable architectureBoris Kolpackov37-955/+1988
2015-08-17Tighten variable_map interfaceBoris Kolpackov4-35/+54
2015-08-14Don't short-cut to group_state if recipe is group_recipeBoris Kolpackov2-15/+8
This way we mess up the dependents count.
2015-08-14Rework meta/operation registrationBoris Kolpackov16-115/+186
We now have global tables for meta/operation. Plus each can then be enabled on the per-project basis.
2015-08-14Fix several issues in outer operation recipe override logicBoris Kolpackov3-24/+50
2015-08-13Rework postponed logicBoris Kolpackov12-75/+88
Specifically, now postponed is only used by the execution mode logic and rules should not return it directly.
2015-08-03Fix few bugsBoris Kolpackov3-4/+10
2015-08-03match_only rework, part 2Boris Kolpackov8-96/+123
2015-08-03match_only and dependents count rework, part 1Boris Kolpackov6-29/+73
2015-07-31Cosmetic changeBoris Kolpackov1-1/+1
2015-07-31Essential install module functionalityBoris Kolpackov27-198/+1017
2015-07-29Initial support for target type/pattern-specific variablesBoris Kolpackov7-26/+145
2015-07-28Install module genesisBoris Kolpackov8-7/+195
2015-07-24Fix bugs in dependency extraction codeBoris Kolpackov1-3/+15
2015-07-24Add support for generated test input/outputBoris Kolpackov15-124/+273
2015-07-24Further test module developmentBoris Kolpackov7-55/+305
2015-07-23Basic test supportBoris Kolpackov12-41/+172
2015-07-22Fix postponed re-examination logicBoris Kolpackov6-25/+29
Now postponed takes precedence over changed.
2015-07-21Test module genesisBoris Kolpackov13-19/+284
2015-07-21Be quiet when running pre/post operationsBoris Kolpackov1-2/+8
2015-07-21Improve nested operations supportBoris Kolpackov7-87/+124
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-21Add alias{} target type, use as base for dir{}Boris Kolpackov5-16/+40
2015-07-20Implement pre/post operation supportBoris Kolpackov7-88/+283
Also, extend execution mode/postponed logic to propagate the postponed target state. At the top, we now re-try postponed targets. This results in the expected behavior when, for example, cleaning two targets with one depending on the other.
2015-07-20Remove tracesBoris Kolpackov1-4/+0
2015-07-20Implement support for importing installed librariesBoris Kolpackov13-617/+1093
2015-07-15Implement project-qualified names/prerequisites, two-stage importBoris Kolpackov22-107/+304
2015-07-14Fix postfix operator++/-- implementationsBoris Kolpackov1-3/+3
2015-07-14Add notion of strong/weak amalgamation, make strong new clean boundaryBoris Kolpackov9-44/+88
2015-07-13Implement subproject importBoris Kolpackov4-35/+87
2015-07-13Make subprojects list of name=subdir pairsBoris Kolpackov6-38/+104
2015-07-13Add support for pair-enabled variablesBoris Kolpackov5-24/+29
2015-07-12Add more diagnosticsBoris Kolpackov1-1/+10
2015-07-10Implement automatic subproject discoveryBoris Kolpackov9-26/+327
Currently we only capture their directories without the project names. We will need project names when we hook import search into this.
2015-07-08Implement automatic amalgamation discoveryBoris Kolpackov9-82/+165
2015-07-07Relax requirement on amalgamation src_root to track sub-projectBoris Kolpackov3-56/+69
2015-07-07Rework module architectureBoris Kolpackov26-442/+671
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 Kolpackov5-16/+19