Age | Commit message (Collapse) | Author | Files | Lines | |
---|---|---|---|---|---|
2015-12-01 | Use 'extension' variable to resolve extension for file{} | Boris Kolpackov | 1 | -71/+10 | |
We now also check target type/pattern-specific variables. So the new usage is: cli{*}: extension = cli | |||||
2015-12-01 | Reimplement define as dynamic derivation rather than alias | Boris Kolpackov | 1 | -35/+13 | |
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-01 | Implement support for definition target type aliases | Boris Kolpackov | 1 | -14/+25 | |
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-30 | Implement target type/pattern-specific variables | Boris Kolpackov | 1 | -10/+46 | |
For example: cxx{*-options}: dist = true 1. Only single '*' wildcard is supported, matches 0 or more characters. 2. If target type is not specified, it defaults to any target. 3. Appending (+=) is not allowed. 4. The value is expanded immediately in the context of the scope. 5. The more specific pattern (i.e., with the shortest "stem") is preferred. If the stem has the same length, then the last defined (but not redefined) pattern is used. This will probably have to change to become an error. See tests/variable/type-pattern for more examples. | |||||
2015-09-08 | Rework diagnostics verbosity, add quiet mode/option | Boris Kolpackov | 1 | -1/+1 | |
2015-08-31 | Rework scoping logic | Boris Kolpackov | 1 | -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-27 | Dist module/meta-operation initial implementation | Boris Kolpackov | 1 | -0/+20 | |
2015-08-24 | New variable architecture | Boris Kolpackov | 1 | -15/+17 | |
2015-08-17 | Tighten variable_map interface | Boris Kolpackov | 1 | -11/+5 | |
2015-08-14 | Don't short-cut to group_state if recipe is group_recipe | Boris Kolpackov | 1 | -4/+1 | |
This way we mess up the dependents count. | |||||
2015-08-14 | Fix several issues in outer operation recipe override logic | Boris Kolpackov | 1 | -0/+40 | |
2015-08-13 | Rework postponed logic | Boris Kolpackov | 1 | -1/+1 | |
Specifically, now postponed is only used by the execution mode logic and rules should not return it directly. | |||||
2015-08-03 | match_only rework, part 2 | Boris Kolpackov | 1 | -0/+6 | |
2015-07-31 | Essential install module functionality | Boris Kolpackov | 1 | -34/+88 | |
2015-07-29 | Initial support for target type/pattern-specific variables | Boris Kolpackov | 1 | -1/+44 | |
2015-07-24 | Add support for generated test input/output | Boris Kolpackov | 1 | -2/+2 | |
2015-07-24 | Further test module development | Boris Kolpackov | 1 | -1/+2 | |
2015-07-21 | Improve nested operations support | Boris Kolpackov | 1 | -1/+1 | |
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-21 | Add alias{} target type, use as base for dir{} | Boris Kolpackov | 1 | -4/+14 | |
2015-07-07 | Rework module architecture | Boris Kolpackov | 1 | -77/+0 | |
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-01 | Group state support | Boris Kolpackov | 1 | -1/+2 | |
2015-07-01 | Cleanup group "see through" design | Boris Kolpackov | 1 | -15/+19 | |
2015-06-30 | Group "see through" iteration, take 1 | Boris Kolpackov | 1 | -0/+12 | |
2015-06-26 | Part two of dependency injection with auto-generation support | Boris Kolpackov | 1 | -0/+11 | |
2015-06-25 | Part one of dependency injection with auto-generation support | Boris Kolpackov | 1 | -1/+9 | |
2015-06-24 | First take on the cli module plus necessary infrastructure | Boris Kolpackov | 1 | -14/+60 | |
2015-06-18 | Move path_mtime to filesystem, rename file_mtime, follow symlinks | Boris Kolpackov | 1 | -3/+8 | |
2015-05-22 | Avoid relying on static initialization order | Boris Kolpackov | 1 | -16/+14 | |
2015-05-11 | Correct copyright | Boris Kolpackov | 1 | -1/+1 | |
2015-04-24 | Implement lib/liba/libso{} target group, shared/static library build | Boris Kolpackov | 1 | -19/+3 | |
2015-04-17 | Search in target group during variable lookup | Boris Kolpackov | 1 | -3/+7 | |
2015-04-17 | Add support for target groups, use to handle obj/obja/objso object targets | Boris Kolpackov | 1 | -14/+16 | |
2015-04-15 | New variables architecture | Boris Kolpackov | 1 | -4/+21 | |
Now operator[] is only used for lookup. | |||||
2015-04-15 | Initial library support | Boris Kolpackov | 1 | -0/+37 | |
2015-04-13 | Add separate type to represent directory paths | Boris Kolpackov | 1 | -19/+19 | |
2015-04-07 | Provide more convenient access to root scope | Boris Kolpackov | 1 | -8/+23 | |
2015-03-27 | Rework dependency state dump support | Boris Kolpackov | 1 | -1/+1 | |
We now have a combined (scopes, variables, and targets) dump. | |||||
2015-03-24 | Make meta-operations control build loop; add disfigure skeleton | Boris Kolpackov | 1 | -5/+5 | |
2015-03-13 | Add support for "first" and "last" execution modes | Boris Kolpackov | 1 | -5/+12 | |
2015-03-12 | Implement clean operation | Boris Kolpackov | 1 | -2/+15 | |
2015-03-10 | Further operation implementation | Boris Kolpackov | 1 | -0/+2 | |
2015-03-09 | Build according to buildspec | Boris Kolpackov | 1 | -31/+109 | |
At this stage operations are still ignored. | |||||
2015-03-04 | Move roots and bases to appropriate scopes | Boris Kolpackov | 1 | -1/+1 | |
2015-03-03 | Implement new default target logic, canonical directory name (empty value) | Boris Kolpackov | 1 | -1/+0 | |
The logic is as follows: if we have an explicit current directory target, then that's the default target. Otherwise, we take the first target and use it as a prerequisite to create an implicit current directory target, effectively making it the default target via an alias. If there are no targets in this buildfile, then we don't do anything. | |||||
2015-03-02 | Cleanup to support clang compilation | Boris Kolpackov | 1 | -3/+5 | |
2015-02-27 | Variable assignment, appending support | Boris Kolpackov | 1 | -1/+1 | |
2015-02-24 | Use prefix_map for scopes, establish root scope | Boris Kolpackov | 1 | -1/+1 | |
2015-02-24 | Add fsdir{} for creating directories | Boris Kolpackov | 1 | -0/+9 | |
2015-02-23 | Don't create new target for alias/action/dir prerequisite | Boris Kolpackov | 1 | -1/+16 | |
2015-02-23 | Redo rule match/build logic | Boris Kolpackov | 1 | -40/+122 | |
Now the rule is fully responsible for searching, matching, and building of prerequisites. |