Age | Commit message (Collapse) | Author | Files | Lines | |
---|---|---|---|---|---|
2018-11-21 | Add support for target and prerequisite specific variable blocks | Boris Kolpackov | 7 | -7/+154 | |
For example, now instead of: lib{foo}: cxx.loptions += -static lib{foo}: cxx.libs += -lpthread We can write: lib{foo}: { cxx.loptions += -static cxx.libs += -lpthread } The same works for prerequisites as well as target type/patterns. For example: exe{*.test}: { test = true install = false } | |||||
2018-11-19 | Fix expected diagnostics in test | Boris Kolpackov | 1 | -1/+1 | |
2018-11-17 | Print id of failed test | Karen Arutyunov | 9 | -11/+123 | |
2018-11-16 | Implement support for dependency chains | Boris Kolpackov | 3 | -4/+53 | |
Now instead of: ./: exe{foo} exe{foo}: cxx{*} We can write: ./: exe{foo}: cxx{*} Or even: ./: exe{foo}: libue{foo}: cxx{*} This can be combined with prerequisite-specific variables (which naturally only apply to the last set of prerequisites in the chain): ./: exe{foo}: libue{foo}: bin.whole = false | |||||
2018-11-14 | Tweak assert directive diagnostics | Boris Kolpackov | 1 | -1/+1 | |
2018-10-23 | Treat invalid names as values if they are quoted | Boris Kolpackov | 1 | -1/+11 | |
2018-09-05 | Create .buildignore file in testscript root working directory | Karen Arutyunov | 3 | -3/+24 | |
2018-09-04 | Rename .test/test{} to .testscript/testscript{} | Boris Kolpackov | 73 | -138/+139 | |
2018-08-09 | Fix tests some more | Boris Kolpackov | 1 | -3/+3 | |
2018-08-09 | Fix test failures on Windows | Boris Kolpackov | 2 | -8/+23 | |
2018-08-09 | Handle few corner cases in concatenated expansion | Boris Kolpackov | 1 | -0/+28 | |
2018-08-09 | Add support for name patterns without wildcard characters | Boris Kolpackov | 1 | -2/+5 | |
In particular, this allows the "if-exists" specification of prerequisites, for example: for t: $tests exe{$t}: cxx{$t} test{+$t} | |||||
2018-08-07 | Add support for default extension specification, trailing dot escaping | Boris Kolpackov | 1 | -0/+71 | |
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-30 | Make project variable to be of project_name type | Karen Arutyunov | 2 | -4/+4 | |
2018-07-24 | Handle leading 'module;' marker (p0713) | Boris Kolpackov | 1 | -0/+17 | |
2018-07-20 | Implement bash module | Boris Kolpackov | 3 | -1/+233 | |
2018-07-17 | Add --after <ref-file> option for testscript touch builtin | Karen Arutyunov | 2 | -9/+30 | |
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 | 1 | -0/+17 | |
2018-07-16 | Implement in module | Boris Kolpackov | 2 | -0/+101 | |
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 | 2 | -14/+2 | |
2018-07-14 | Add testscript mv builtin | Karen Arutyunov | 1 | -0/+252 | |
2018-07-12 | Adjust modules test to maybe-cleanup .ii files (no longer there for VC) | Boris Kolpackov | 1 | -1/+1 | |
2018-06-20 | Regularize .gitignore files | Karen Arutyunov | 1 | -0/+2 | |
2018-06-20 | Add $process.run() and $process.run_regex() functions | Boris Kolpackov | 2 | -0/+35 | |
$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-05-24 | Remove target/scope irregularity workarounds | Boris Kolpackov | 3 | -5/+4 | |
2018-05-19 | Update copyright year | Karen Arutyunov | 90 | -90/+90 | |
2018-05-19 | Fix testscripts using types for testscript and manifest targets | Karen Arutyunov | 4 | -9/+9 | |
2018-05-19 | Get rid of doc{version} and types for testscript and manifest in buildfiles | Karen Arutyunov | 17 | -17/+17 | |
2018-05-19 | Support for deriving target type from file name, handle testscript, buildfile | Boris Kolpackov | 1 | -1/+1 | |
In particular, instead of: exe{test}: test{testscript} We should now write: exe{test}: testscript | |||||
2018-05-16 | Redo testscript diagnostics not to rely on invalid paths | Karen Arutyunov | 1 | -3/+6 | |
2018-05-03 | Regularize directory target/scope-specific variable assignment syntax | Boris Kolpackov | 7 | -6/+131 | |
2018-04-27 | Redo run directive diagnostics not to rely on invalid paths | Boris Kolpackov | 1 | -2/+3 | |
2018-04-27 | Add support for build hooks | Boris Kolpackov | 2 | -0/+35 | |
The following buildfiles are loaded (if present) at appropriate times from the out_root subdirectories of a project: build/bootstrap/pre-*.build # before loading bootstrap.build build/bootstrap/post-*.build # after loading bootstrap.build build/root/pre-*.build # before loading root.build build/root/post-*.build # after loading root.build | |||||
2018-04-26 | Fix bug in directive/run test | Boris Kolpackov | 1 | -4/+4 | |
2018-04-26 | Implement run buildfile directive | Boris Kolpackov | 1 | -0/+36 | |
Now we can do: run echo 'foo = bar' print $foo | |||||
2018-03-19 | Add missed file to builtins tests buildfile | Karen Arutyunov | 1 | -1/+1 | |
2018-03-19 | Add support for cp builtin -p option | Karen Arutyunov | 2 | -3/+73 | |
2018-02-14 | Enable modules support only for VC 15u5 and up, drop hacks for earlier | Boris Kolpackov | 1 | -48/+10 | |
2018-02-09 | Fix broken test (and few other things) | Boris Kolpackov | 11 | -64/+48 | |
2018-02-05 | Add tests for auto-generated test inputs/outputs | Boris Kolpackov | 11 | -3/+153 | |
2018-02-03 | Get rid of action rule override semantics | Boris Kolpackov | 2 | -3/+2 | |
Instead we now have two more or less separate match states for outer and inner parts of an action. | |||||
2018-01-05 | Add cxx.module_name alias for cc.module_name | Boris Kolpackov | 1 | -2/+2 | |
2017-12-16 | Redo string/stream representation of dir{} name/target | Boris Kolpackov | 1 | -8/+8 | |
Now instead of: dir{foo/bar/} We get: foo/dir{bar/} Which feels more consistent with how we print other names/targets. That is, "directory bar/ in directory foo/" similar how foo/exe{bar} is "executable bar in directory foo/". | |||||
2017-11-30 | Adapt testscripts to build2 output changes | Karen Arutyunov | 1 | -4/+4 | |
2017-11-22 | Enable module re-export tests for Clang | Boris Kolpackov | 1 | -1/+0 | |
This support has been merged into trunk. | |||||
2017-11-20 | Add test for prerequisite-specific variables | Boris Kolpackov | 2 | -0/+76 | |
2017-11-10 | Add $directory(), $base(), $leaf() and $extension() functions | Karen Arutyunov | 1 | -0/+65 | |
2017-11-09 | Add support for for-loop | Boris Kolpackov | 2 | -0/+117 | |
The semantics is similar to the C++11 range-based for: list = 1 2 3 for i: $list print $i Note that there is no scoping of any kind for the loop variable ('i' in the above example). See tests/loop/for.test for some examples/ideas. In the future the plan is to also support more general while-loop as well as break and continue. | |||||
2017-10-03 | Adapt to modularization of libbutl | Karen Arutyunov | 1 | -4/+4 | |