aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2018-09-03Write introduction (still WIP)Boris Kolpackov2-22/+3068
2018-09-03Update to match new pre-formatter fragment escape semantics in CLIBoris Kolpackov1-5/+5
2018-09-03Use (native) C and C++ compilers we were built with as defaultsBoris Kolpackov5-7/+49
2018-08-31Add ability to print cc compiler_id valueBoris Kolpackov2-0/+24
2018-08-31Adjust terminology in diagnostic and commentsBoris Kolpackov1-5/+5
2018-08-30Handle missing export directive in export stubBoris Kolpackov2-2/+14
If none were executed, then we assume the requested target is not exported.
2018-08-29Fix typo in diagnosticsBoris Kolpackov1-1/+1
2018-08-28Diagnose NULL test.target variable valueBoris Kolpackov1-9/+19
2018-08-27Don't insist on install rules for non-file targetsBoris Kolpackov7-26/+51
This helps with (not) installing libu*{} groups.
2018-08-27Fix diagnostics bugBoris Kolpackov1-2/+1
2018-08-27Use butl::path_match() for pattern-specific variable matchingBoris Kolpackov1-25/+10
2018-08-25Implement missing pieces in utility libraries supportBoris Kolpackov14-313/+624
In particular, we can now build static libraries out of utility libraries.
2018-08-22Define BUILD2_BOOTSTRAP when compiling libbutl sourcesBoris Kolpackov1-1/+1
2018-08-22Rework code to sidestep Clang 3.8 on FreeBSD 11.0 mis-compilationBoris Kolpackov1-2/+1
2018-08-22Remove unnecessary move()'sBoris Kolpackov1-2/+2
2018-08-21Unset CL and _CL_ environment variables when detecting MSVCBoris Kolpackov5-18/+37
2018-08-21Print 'ar' instead of 'ld' when building static librariesBoris Kolpackov1-1/+1
2018-08-14Use thin archives if available for utility librariesBoris Kolpackov5-44/+166
Thin archives are supported by GNU ar since binutils 2.19.1 and LLVM ar since LLVM 3.8.0.
2018-08-09Fix tests some moreBoris Kolpackov1-3/+3
2018-08-09Fix test failures on WindowsBoris Kolpackov2-8/+23
2018-08-09Add functions for decomposing name as parget/prerequisite nameBoris Kolpackov1-1/+82
2018-08-09Handle few corner cases in concatenated expansionBoris Kolpackov2-23/+70
2018-08-09Add support for name patterns without wildcard charactersBoris Kolpackov4-28/+35
In particular, this allows the "if-exists" specification of prerequisites, for example: for t: $tests exe{$t}: cxx{$t} test{+$t}
2018-08-09Add support for returning optional<T> from (buildfile) function implementationsBoris Kolpackov3-1/+32
2018-08-09Fix issue with concatenating empty typed LHSBoris Kolpackov1-3/+14
2018-08-07Add support for default extension specification, trailing dot escapingBoris Kolpackov14-188/+457
For example: cxx{*}: extension = cxx cxx{foo} # foo.cxx cxx{foo.test} # foo.test (probably what we want...) cxx{foo.test...} # foo.test.cxx (... is this) cxx{foo..} # foo. cxx{foo....} # foo.. cxx{foo.....} # error (must come in escape pair)
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 Arutyunov32-116/+271
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-25Add note to bash module documentationBoris Kolpackov1-1/+3
2018-07-25Exclude cli and bash modules from bootstrap buildBoris Kolpackov4-10/+7
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 C++ module testKaren Arutyunov1-1/+1
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 Kolpackov4-4/+45
2018-07-24Document in and bash modulesBoris Kolpackov2-11/+309
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 Kolpackov24-128/+1138
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 Arutyunov4-20/+82
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.