Age | Commit message (Collapse) | Author | Files | Lines | |
---|---|---|---|---|---|
2018-07-30 | Fortify cli detection against "other" cli's (like Mono JIT compiler) | Boris Kolpackov | 1 | -12/+25 | |
2018-07-30 | Make project variable to be of project_name type | Karen Arutyunov | 32 | -116/+271 | |
2018-07-28 | Add build.version.stage boolean variable | Boris Kolpackov | 1 | -0/+14 | |
It can be used to detection (for example, in tests) whether this is a staged toolchain. | |||||
2018-07-26 | Pass extension supplied by rule to target type default extension function | Boris Kolpackov | 6 | -25/+38 | |
Also revert the precedence back to target type over rule. But now the target type is able to customize this logic (see exe{} for a use case). | |||||
2018-07-25 | Remove unnecessary initialization (which also helps GCC 4.9 and VC 14u3) | Boris Kolpackov | 1 | -1/+1 | |
2018-07-25 | Add note to bash module documentation | Boris Kolpackov | 1 | -1/+3 | |
2018-07-25 | Exclude cli and bash modules from bootstrap build | Boris Kolpackov | 4 | -10/+7 | |
2018-07-25 | Prefer default extension supplied by rule over one supplied by target type | Boris Kolpackov | 3 | -20/+25 | |
2018-07-25 | Add note | Boris Kolpackov | 1 | -3/+4 | |
2018-07-25 | Fix C++ module test | Karen Arutyunov | 1 | -1/+1 | |
2018-07-25 | Fix broken dist checksum calculation | Karen Arutyunov | 1 | -1/+1 | |
2018-07-24 | Make exe{} target default to no extension rather than fail | Boris Kolpackov | 2 | -13/+10 | |
This just keep breaking (this time for exe{}: in{} match during distribution). So we assume rules will assign the target platform extension if necessary and if not, then we default to no extension (e.g., a shell script). | |||||
2018-07-24 | Switch to new GCC module interface (-fmodule-mapper) | Boris Kolpackov | 3 | -153/+112 | |
2018-07-24 | Handle leading 'module;' marker (p0713) | Boris Kolpackov | 4 | -4/+45 | |
2018-07-24 | Document in and bash modules | Boris Kolpackov | 2 | -11/+309 | |
2018-07-23 | Sanitize project name when forming config.import.<proj> variable | Boris Kolpackov | 1 | -5/+23 | |
Specifically, '-', '+', and '.' are replaced with '_' to form a "canonical" variable name. | |||||
2018-07-21 | Install bash module prerequisites for amalgamation rather than project | Boris Kolpackov | 4 | -5/+31 | |
This is similar to what we do for shared libraries in cc::install_rule. | |||||
2018-07-21 | Fix installed import semantics for bash modules | Boris Kolpackov | 1 | -6/+31 | |
2018-07-21 | Tweak bash rule matching semantics | Boris Kolpackov | 1 | -2/+5 | |
2018-07-20 | Implement bash module | Boris Kolpackov | 24 | -128/+1138 | |
2018-07-20 | Add builtin.concat(dir_path,name) overload | Boris Kolpackov | 2 | -0/+30 | |
In particular, this allows: export $out_root/libfoo/$import.target | |||||
2018-07-20 | Match inner update rule before prerequisites in install::file_rule | Boris Kolpackov | 1 | -8/+13 | |
2018-07-17 | Add --after <ref-file> option for testscript touch builtin | Karen Arutyunov | 4 | -20/+82 | |
2018-07-17 | Reimplement version::in_rule in terms of in::rule | Boris Kolpackov | 7 | -441/+182 | |
Significantly, the version::in_rule rule now track changes to the substitution values. | |||||
2018-07-17 | Add temporary sleep to in test to verify debugging hypothesis | Boris Kolpackov | 1 | -0/+3 | |
2018-07-17 | Handle executables (permissions, extensions) in in::rule | Boris Kolpackov | 2 | -2/+37 | |
2018-07-17 | Add ability to customize in::rule's default symbol and mode | Boris Kolpackov | 2 | -3/+8 | |
2018-07-16 | Update bootstrap scripts with new module directory (in) | Boris Kolpackov | 4 | -1/+5 | |
2018-07-16 | Implement in module | Boris Kolpackov | 19 | -112/+861 | |
Given test.in containing something along these lines: foo = $foo$ Now we can do: using in file{test}: in{test.in} file{test}: foo = FOO The alternative variable substitution symbol can be specified with the in.symbol variable and lax (instead of the default strict) mode with in.substitution. For example: file{test}: in.symbol = '@' file{test}: in.substitution = lax | |||||
2018-07-16 | Resolve function overload via the argument reversal to untyped | Boris Kolpackov | 8 | -227/+99 | |
2018-07-14 | Add testscript mv builtin | Karen Arutyunov | 3 | -10/+530 | |
2018-07-12 | Adjust modules test to maybe-cleanup .ii files (no longer there for VC) | Boris Kolpackov | 1 | -1/+1 | |
2018-07-11 | Remove build2 tag from manifest | Karen Arutyunov | 1 | -1/+1 | |
2018-07-11 | Force reprocessing for module interface units if compiling with VC | Boris Kolpackov | 1 | -0/+10 | |
2018-07-10 | Fix bug in dist checksum implementation | Boris Kolpackov | 1 | -3/+6 | |
2018-07-10 | Add support for archive checksum generation during distribution | Boris Kolpackov | 2 | -23/+186 | |
Now we can do: $ b dist: ... \ config.dist.archives='tar.gz zip' \ config.dist.checksums='sha1 sha256' And end up with .tar.gz.sha1, .tar.gz.sha256, .zip.sha1, and .zip.sha256 checksum files in addition to archives. | |||||
2018-07-09 | Regenerate options parsing code | Boris Kolpackov | 3 | -3/+20 | |
2018-07-05 | Add repositories.manifest | Boris Kolpackov | 1 | -0/+10 | |
2018-07-05 | Add backlink to generated options parsing code | Boris Kolpackov | 1 | -0/+5 | |
2018-07-03 | Enter config.dist.uncommitted in dist module, make omitted | Boris Kolpackov | 2 | -9/+13 | |
One side-effect of doing this in the version module (where it is still used and enforced) was that dist module configuration (e.g., in an amalgamation) did not include this variable (and which was then duplicated in each subproject). | |||||
2018-06-29 | Use depdb to track changes to cli compiler, options, etc | Boris Kolpackov | 4 | -22/+123 | |
2018-06-28 | Workaround for VC14 bug | Boris Kolpackov | 1 | -0/+4 | |
2018-06-28 | Bump build2 version requirement to 0.8.0 | Boris Kolpackov | 1 | -2/+2 | |
2018-06-28 | Add prerequisite variable visibility specification/enforcement | Boris Kolpackov | 7 | -21/+106 | |
2018-06-28 | Implement support for excluded and ad hoc prerequisites | Boris Kolpackov | 31 | -283/+600 | |
The inclusion/exclusion is controlled via the 'include' prerequisite-specific variable. Valid values are: false - exclude true - include adhoc - include but treat as an ad hoc input For example: lib{foo}: cxx{win32-utility}: include = ($cxx.targe.class == 'windows') exe{bar}: libs{plugin}: include = adhoc | |||||
2018-06-25 | Minor note on Apple Clang to vanilla Clang version mapping | Boris Kolpackov | 1 | -6/+8 | |
2018-06-20 | Regularize .gitignore files | Karen Arutyunov | 3 | -0/+10 | |
2018-06-20 | Add $process.run() and $process.run_regex() functions | Boris Kolpackov | 10 | -12/+350 | |
$process.run(<prog>[ <args>...]) Return trimmed stdout. $process.run_regex(<prog>[ <args>...], <pat> [, <fmt>]) Return stdout lines matched and optionally processed with regex. Each line of stdout (including the customary trailing blank) is matched (as a whole) against <pat> and, if successful, returned, optionally processed with <fmt>, as an element of a list. | |||||
2018-06-20 | Fix race in phase switch during failure | Boris Kolpackov | 1 | -0/+3 | |
2018-06-19 | Adapt to renaming regex_replace_ex() to regex_replace_search() | Karen Arutyunov | 2 | -30/+31 | |