aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2015-08-13Rework postponed logicBoris Kolpackov13-78/+91
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 Kolpackov7-30/+75
2015-07-31Cosmetic changeBoris Kolpackov1-1/+1
2015-07-31Essential install module functionalityBoris Kolpackov45-200/+1086
2015-07-29Initial support for target type/pattern-specific variablesBoris Kolpackov7-26/+145
2015-07-28Install module genesisBoris Kolpackov11-7/+207
2015-07-24Fix bugs in dependency extraction codeBoris Kolpackov1-3/+15
2015-07-24Add support for generated test input/outputBoris Kolpackov22-125/+317
2015-07-24Further test module developmentBoris Kolpackov11-61/+315
2015-07-23Basic test supportBoris Kolpackov15-42/+187
2015-07-22Fix postponed re-examination logicBoris Kolpackov10-25/+43
Now postponed takes precedence over changed.
2015-07-21Test module genesisBoris Kolpackov17-19/+303
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 Kolpackov16-617/+1108
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 Kolpackov17-62/+116
2015-07-13Make subprojects list of name=subdir pairsBoris Kolpackov7-39/+105
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 Kolpackov17-29/+344
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 Kolpackov12-84/+167
2015-07-07Relax requirement on amalgamation src_root to track sub-projectBoris Kolpackov13-61/+98
2015-07-07Rework module architectureBoris Kolpackov28-443/+673
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
2015-07-02Various improvements to cli moduleBoris Kolpackov7-57/+76
2015-07-02Make few existing file searching optimizationsBoris Kolpackov3-5/+25
2015-07-01Get rid of accessors/modifiers in cli.cxx targetBoris Kolpackov3-35/+40
2015-07-01Clean up group state, mtime designBoris Kolpackov10-86/+124
2015-07-01Group state supportBoris Kolpackov8-56/+93
2015-07-01Cleanup group "see through" designBoris Kolpackov15-316/+350
2015-06-30Group "see through" iteration, take 1Boris Kolpackov20-152/+562
2015-06-26Part two of dependency injection with auto-generation supportBoris Kolpackov13-242/+416
2015-06-25Part one of dependency injection with auto-generation supportBoris Kolpackov28-58/+344
2015-06-24Implement proper target type detection in dependency injectionBoris Kolpackov5-10/+75
2015-06-24First take on the cli module plus necessary infrastructureBoris Kolpackov33-163/+1065
2015-06-22Remove prerequisite rewriting from c/c++ dependency injection codeBoris Kolpackov1-14/+4
2015-06-22Remove prerequisite rewriting from inject_parent_fsdir()Boris Kolpackov3-24/+7
2015-06-22Remove prerequisite rewriting for c/cxx chainingBoris Kolpackov7-93/+98
2015-06-18Add headers to buildfiles, move tests/build/ to tests/Boris Kolpackov26-7/+35
2015-06-18Move path_mtime to filesystem, rename file_mtime, follow symlinksBoris Kolpackov3-8/+15
2015-06-18Add char-scanner to libbutl, use in libbpkg and build2Boris Kolpackov2-129/+14