Age | Commit message (Collapse) | Author | Files | Lines | |
---|---|---|---|---|---|
2015-12-03 | Add ability for module to remember that it is unconfigured | Boris Kolpackov | 5 | -24/+65 | |
A module can set and then check the config.*.configured special variable to false. | |||||
2015-12-03 | Implement if-else conditions | Boris Kolpackov | 5 | -20/+311 | |
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 | Redo extension derivation for file{}, doc{}, and cli{} | Boris Kolpackov | 6 | -22/+39 | |
We now first check the 'extension' variable, then use the default. | |||||
2015-12-02 | Add support for optional configuration for cli module | Boris Kolpackov | 2 | -47/+101 | |
2015-12-02 | Don't write config.{loaded,configured} special variables to config.build | Boris Kolpackov | 1 | -0/+6 | |
2015-12-02 | Implement optional module loading | Boris Kolpackov | 31 | -193/+332 | |
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 | Use 'extension' variable to resolve extension for file{} | Boris Kolpackov | 7 | -78/+127 | |
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 | 14 | -161/+109 | |
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 | 16 | -86/+262 | |
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-12-01 | Override outer configuration install paths that contain package name | Boris Kolpackov | 3 | -32/+55 | |
2015-12-01 | Fix INSTALL exclusion | Boris Kolpackov | 1 | -1/+1 | |
2015-11-30 | Don't try to install targets from other projects | Boris Kolpackov | 3 | -2/+28 | |
2015-11-30 | Add install support | Boris Kolpackov | 3 | -5/+7 | |
2015-11-30 | Tighten unresolved group logic | Boris Kolpackov | 4 | -17/+39 | |
Now a wildcard/fallback rule should explicitly detect and handle unresolved situation. | |||||
2015-11-30 | Implement dist support for including/excluding targets | Boris Kolpackov | 3 | -5/+19 | |
For example: cxx{*-options}: dist = true | |||||
2015-11-30 | Implement target type/pattern-specific variables | Boris Kolpackov | 4 | -28/+148 | |
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-30 | Add cli{} prerequisite if cli.cxx{} group doesn't have any | Boris Kolpackov | 1 | -4/+7 | |
This happens when we use the group only for setting cli.options. Not very clean. | |||||
2015-11-30 | Cosmetic change | Boris Kolpackov | 1 | -52/+52 | |
2015-11-29 | Allow for target group members to remain unresolved | Boris Kolpackov | 5 | -17/+27 | |
This, for example, can happen when we have a fallback rule for dist(update) or configure(update). | |||||
2015-11-28 | Add support for dist | Boris Kolpackov | 3 | -13/+59 | |
2015-11-28 | Add support for name crosses, for example {hxx ixx cxx}{foo bar} | Boris Kolpackov | 5 | -31/+217 | |
See tests/names for more examples. | |||||
2015-11-28 | Include export.build from loaded, src-amalgamated subprojects | Boris Kolpackov | 1 | -3/+25 | |
2015-11-28 | Minor change | Boris Kolpackov | 1 | -1/+1 | |
2015-11-28 | Bump version to 0.1.0 | Boris Kolpackov | 2 | -2/+2 | |
2015-11-28 | Fix separated { handling in names parser | Boris Kolpackov | 1 | -2/+2 | |
'foo/ {a b}' should be equivalent to 'foo/ a b', not 'foo/a foo/b'. | |||||
2015-11-28 | Update INSTALL, bootstrap with revised steps | Boris Kolpackov | 2 | -32/+54 | |
2015-11-24 | Add missing #include | Boris Kolpackov | 1 | -0/+1 | |
2015-11-24 | Account for dangling/inaccessible links | Boris Kolpackov | 1 | -1/+12 | |
2015-09-25 | Quote arguments with spaces in print_process() | Boris Kolpackov | 1 | -4/+17 | |
2015-09-11 | Use install::alisa_rule to ignore non-installable prerequisites | Boris Kolpackov | 5 | -9/+66 | |
2015-09-11 | Check amalgamation itself when searching for imported project | Boris Kolpackov | 1 | -1/+10 | |
2015-09-11 | Handle file io failures in parser | Boris Kolpackov | 4 | -84/+99 | |
2015-09-11 | Add support for unnamed projects | Boris Kolpackov | 8 | -5/+34 | |
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-11 | Preserve pairs in expansion | Boris Kolpackov | 1 | -0/+6 | |
2015-09-10 | Reimplement buildspec parsing to deal with eval context | Boris Kolpackov | 1 | -71/+108 | |
In short, in buildspec, parens are treated as operation application rather than eval context unless double-quoted. So in 'clean(foo)' we have the clean operation on target foo while in '"clean(foo)"' we have target cleanfoo. Also, as a bonus, we can now do {clean update}(/long/target/name/). | |||||
2015-09-10 | Fix bug in names() chunking mode | Boris Kolpackov | 1 | -4/+4 | |
2015-09-10 | Add support for token pre-processing in lexer | Boris Kolpackov | 2 | -2/+21 | |
2015-09-10 | Lexer test fixes | Boris Kolpackov | 1 | -4/+4 | |
2015-09-10 | Add support for chunking name parsing | Boris Kolpackov | 6 | -27/+146 | |
2015-09-09 | For newline escaping, ignore whole thing instead of making it newline | Boris Kolpackov | 6 | -5/+44 | |
To capture literal newline, use quoting. | |||||
2015-09-09 | Add support for quoting directive names | Boris Kolpackov | 9 | -48/+57 | |
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 | 5 | -27/+85 | |
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 | 13 | -131/+276 | |
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 | 6 | -105/+105 | |
2015-09-08 | Initial take on double quote support | Boris Kolpackov | 6 | -20/+148 | |
Currently, $(foo)-style variable expansion is not supported. | |||||
2015-09-08 | Use mode stack in lexer | Boris Kolpackov | 3 | -24/+44 | |
2015-09-08 | Implement single quote support | Boris Kolpackov | 6 | -15/+95 | |
2015-09-08 | Move context-dependent functions from diagnostics to context | Boris Kolpackov | 6 | -184/+183 | |
2015-09-08 | Clean up lexer mode logic | Boris Kolpackov | 3 | -3/+4 | |
2015-09-08 | Rework diagnostics verbosity, add quiet mode/option | Boris Kolpackov | 32 | -156/+234 | |