aboutsummaryrefslogtreecommitdiff
path: root/build2
AgeCommit message (Collapse)AuthorFilesLines
2018-07-30Fortify cli detection against "other" cli's (like Mono JIT compiler)Boris Kolpackov1-12/+25
2018-07-30Make project variable to be of project_name typeKaren Arutyunov30-112/+267
2018-07-28Add build.version.stage boolean variableBoris Kolpackov1-0/+14
It can be used to detection (for example, in tests) whether this is a staged toolchain.
2018-07-26Pass extension supplied by rule to target type default extension functionBoris Kolpackov6-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-25Remove unnecessary initialization (which also helps GCC 4.9 and VC 14u3)Boris Kolpackov1-1/+1
2018-07-25Exclude cli and bash modules from bootstrap buildBoris Kolpackov1-3/+6
2018-07-25Prefer default extension supplied by rule over one supplied by target typeBoris Kolpackov3-20/+25
2018-07-25Add noteBoris Kolpackov1-3/+4
2018-07-25Fix broken dist checksum calculationKaren Arutyunov1-1/+1
2018-07-24Make exe{} target default to no extension rather than failBoris Kolpackov2-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-24Switch to new GCC module interface (-fmodule-mapper)Boris Kolpackov3-153/+112
2018-07-24Handle leading 'module;' marker (p0713)Boris Kolpackov3-4/+28
2018-07-24Document in and bash modulesBoris Kolpackov1-1/+2
2018-07-23Sanitize project name when forming config.import.<proj> variableBoris Kolpackov1-5/+23
Specifically, '-', '+', and '.' are replaced with '_' to form a "canonical" variable name.
2018-07-21Install bash module prerequisites for amalgamation rather than projectBoris Kolpackov4-5/+31
This is similar to what we do for shared libraries in cc::install_rule.
2018-07-21Fix installed import semantics for bash modulesBoris Kolpackov1-6/+31
2018-07-21Tweak bash rule matching semanticsBoris Kolpackov1-2/+5
2018-07-20Implement bash moduleBoris Kolpackov17-126/+900
2018-07-20Add builtin.concat(dir_path,name) overloadBoris Kolpackov2-0/+30
In particular, this allows: export $out_root/libfoo/$import.target
2018-07-20Match inner update rule before prerequisites in install::file_ruleBoris Kolpackov1-8/+13
2018-07-17Add --after <ref-file> option for testscript touch builtinKaren Arutyunov1-10/+44
2018-07-17Reimplement version::in_rule in terms of in::ruleBoris Kolpackov7-441/+182
Significantly, the version::in_rule rule now track changes to the substitution values.
2018-07-17Handle executables (permissions, extensions) in in::ruleBoris Kolpackov1-2/+20
2018-07-17Add ability to customize in::rule's default symbol and modeBoris Kolpackov2-3/+8
2018-07-16Implement in moduleBoris Kolpackov17-112/+760
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-16Resolve function overload via the argument reversal to untypedBoris Kolpackov4-212/+77
2018-07-14Add testscript mv builtinKaren Arutyunov1-1/+224
2018-07-11Force reprocessing for module interface units if compiling with VCBoris Kolpackov1-0/+10
2018-07-10Fix bug in dist checksum implementationBoris Kolpackov1-3/+6
2018-07-10Add support for archive checksum generation during distributionBoris Kolpackov2-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-09Regenerate options parsing codeBoris Kolpackov3-3/+20
2018-07-05Add backlink to generated options parsing codeBoris Kolpackov1-0/+5
2018-07-03Enter config.dist.uncommitted in dist module, make omittedBoris Kolpackov2-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-29Use depdb to track changes to cli compiler, options, etcBoris Kolpackov4-22/+123
2018-06-28Workaround for VC14 bugBoris Kolpackov1-0/+4
2018-06-28Add prerequisite variable visibility specification/enforcementBoris Kolpackov7-21/+106
2018-06-28Implement support for excluded and ad hoc prerequisitesBoris Kolpackov30-283/+597
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-25Minor note on Apple Clang to vanilla Clang version mappingBoris Kolpackov1-6/+8
2018-06-20Add $process.run() and $process.run_regex() functionsBoris Kolpackov8-12/+315
$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-20Fix race in phase switch during failureBoris Kolpackov1-0/+3
2018-06-19Adapt to renaming regex_replace_ex() to regex_replace_search()Karen Arutyunov2-30/+31
2018-06-15Minor formatting cleanupKaren Arutyunov1-3/+3
2018-06-15Add note on acl/noacl switch in baseutilsBoris Kolpackov1-0/+3
2018-06-15Use portable environment variable manipulation functionsKaren Arutyunov3-20/+17
2018-06-15Add sanity checkBoris Kolpackov3-1/+5
2018-06-14Fix typoBoris Kolpackov1-1/+1
2018-06-13Open depdb earlier to detect and diagnose missing output directoryBoris Kolpackov1-2/+5
2018-06-13Fix diagnostics bugBoris Kolpackov1-1/+1
2018-06-12If target type doesn't use extensions, factor it back into nameBoris Kolpackov1-0/+13
2018-06-12Add built-in support for Windows module definition files (.def)Boris Kolpackov4-5/+82