Age | Commit message (Collapse) | Author | Files | Lines | |
---|---|---|---|---|---|
2015-12-07 | Add support for specifying minimum required build2 version | Boris Kolpackov | 1 | -0/+31 | |
The syntax is: using build@0.1.0-a1 The idea is that we will later also use it for modules and 'build' is a special, the "build system itself" module. Also fix a problem with peeking and lexer mode switching. | |||||
2015-12-03 | Implement new potential directive keyword test | Boris Kolpackov | 5 | -9/+25 | |
Now we can use directive names as variables and targets type, for example: print = foo # variable print{foo}: # target | |||||
2015-12-03 | Implement if-else conditions | Boris Kolpackov | 3 | -0/+126 | |
if if! elif elif! else The expression should evaluate to true of false. The if! and elif! versions are provided as shortcuts to writing if (!...). See tests/if-else for examples. | |||||
2015-12-02 | Implement optional module loading | Boris Kolpackov | 1 | -0/+5 | |
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-01 | Reimplement define as dynamic derivation rather than alias | Boris Kolpackov | 2 | -12/+26 | |
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 | -0/+16 | |
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 | -0/+33 | |
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-11-28 | Add support for name crosses, for example {hxx ixx cxx}{foo bar} | Boris Kolpackov | 3 | -0/+94 | |
See tests/names for more examples. | |||||
2015-09-11 | Add support for unnamed projects | Boris Kolpackov | 6 | -0/+15 | |
Sometimes (e.g., in bpkg configuration) we don't have a project name. In fact, it is not really a project; it can never be referenced in an import directive. So we now have a notion of an unnamed project. Such a project should still have the 'project' variable set first thing in bootstrap.build but its value should be empty. Note that we can still amalgamate such projects just liked named ones. | |||||
2015-09-10 | Lexer test fixes | Boris Kolpackov | 1 | -4/+4 | |
2015-09-10 | Add support for chunking name parsing | Boris Kolpackov | 4 | -16/+116 | |
2015-09-09 | For newline escaping, ignore whole thing instead of making it newline | Boris Kolpackov | 5 | -0/+40 | |
To capture literal newline, use quoting. | |||||
2015-09-09 | Add support for quoting directive names | Boris Kolpackov | 3 | -0/+12 | |
Now only unquoted, literal names are recognized as directives, for example: 'print' = abc print $print | |||||
2015-09-09 | Add initial support for function calls: $func(a b c) | Boris Kolpackov | 4 | -0/+26 | |
Now it is just a stub that prints the function name and its argument. Currently only single argument can be passed (no value pack support yet). | |||||
2015-09-09 | Add support for evaluation context | Boris Kolpackov | 9 | -1/+72 | |
For now it acts as just the value mode that can be enabled anywhere variable expansion is supported, for example: (foo=bar): And the primary use currently is to enable/test quoted and indirect variable expansion: "foo bar" = FOO BAR print $"foo bar" # Invalid. print $("foo bar") # Yeah, baby. foo = FOO FOO = foo print $($foo) Not that you should do something like this... | |||||
2015-09-09 | Reimplement double quote lexing to avoid "implied quote" trick | Boris Kolpackov | 4 | -1/+9 | |
2015-09-08 | Initial take on double quote support | Boris Kolpackov | 4 | -1/+55 | |
Currently, $(foo)-style variable expansion is not supported. | |||||
2015-09-08 | Implement single quote support | Boris Kolpackov | 2 | -10/+48 | |
2015-08-31 | Rework scoping logic | Boris Kolpackov | 13 | -2/+125 | |
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 | 9 | -1/+29 | |
2015-08-24 | Test installing doc{} as prerequisite of exe{} | Boris Kolpackov | 2 | -1/+2 | |
2015-08-24 | Only treat name as directory if it is reversible | Boris Kolpackov | 2 | -0/+12 | |
2015-08-24 | Add support for reversing project qualification to string value | Boris Kolpackov | 4 | -0/+38 | |
2015-08-24 | New variable architecture | Boris Kolpackov | 2 | -2/+2 | |
2015-08-13 | Rework postponed logic | Boris Kolpackov | 1 | -3/+3 | |
Specifically, now postponed is only used by the execution mode logic and rules should not return it directly. | |||||
2015-08-03 | match_only and dependents count rework, part 1 | Boris Kolpackov | 1 | -1/+2 | |
2015-07-31 | Essential install module functionality | Boris Kolpackov | 18 | -2/+69 | |
2015-07-28 | Install module genesis | Boris Kolpackov | 3 | -0/+12 | |
2015-07-24 | Add support for generated test input/output | Boris Kolpackov | 7 | -1/+44 | |
2015-07-24 | Further test module development | Boris Kolpackov | 3 | -5/+7 | |
2015-07-23 | Basic test support | Boris Kolpackov | 3 | -1/+15 | |
2015-07-22 | Fix postponed re-examination logic | Boris Kolpackov | 4 | -0/+14 | |
Now postponed takes precedence over changed. | |||||
2015-07-21 | Test module genesis | Boris Kolpackov | 4 | -0/+19 | |
2015-07-20 | Implement support for importing installed libraries | Boris Kolpackov | 3 | -0/+15 | |
2015-07-13 | Implement subproject import | Boris Kolpackov | 13 | -27/+29 | |
2015-07-13 | Make subprojects list of name=subdir pairs | Boris Kolpackov | 1 | -1/+1 | |
2015-07-10 | Implement automatic subproject discovery | Boris Kolpackov | 8 | -3/+17 | |
Currently we only capture their directories without the project names. We will need project names when we hook import search into this. | |||||
2015-07-08 | Implement automatic amalgamation discovery | Boris Kolpackov | 3 | -2/+2 | |
2015-07-07 | Relax requirement on amalgamation src_root to track sub-project | Boris Kolpackov | 10 | -5/+29 | |
2015-07-07 | Rework module architecture | Boris Kolpackov | 2 | -1/+2 | |
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-02 | Various improvements to cli module | Boris Kolpackov | 1 | -4/+4 | |
2015-07-02 | Make few existing file searching optimizations | Boris Kolpackov | 1 | -2/+5 | |
2015-06-30 | Group "see through" iteration, take 1 | Boris Kolpackov | 2 | -5/+5 | |
2015-06-26 | Part two of dependency injection with auto-generation support | Boris Kolpackov | 3 | -5/+18 | |
2015-06-25 | Part one of dependency injection with auto-generation support | Boris Kolpackov | 21 | -12/+99 | |
2015-06-24 | Implement proper target type detection in dependency injection | Boris Kolpackov | 2 | -2/+6 | |
2015-06-24 | First take on the cli module plus necessary infrastructure | Boris Kolpackov | 5 | -0/+20 | |
2015-06-18 | Add headers to buildfiles, move tests/build/ to tests/ | Boris Kolpackov | 22 | -6/+18 | |
2015-06-18 | Move path and filesystem from build2 to libbutl | Boris Kolpackov | 4 | -231/+2 | |
2015-06-18 | Move prefix-map from build2 to libbutl | Boris Kolpackov | 3 | -155/+1 | |