Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Diagnose target names with multiple trailing slashes as invalid | Boris Kolpackov | 2019-01-14 | 1 | -0/+2 |
| | |||||
* | Fallback to loading outer buildfile if there isn't one in src_base | Boris Kolpackov | 2018-11-14 | 1 | -1/+68 |
| | | | | | | This covers the case where the target is defined in the outer buildfile which is common with non-intrusive project conversions where everything is built from a single root buildfile. | ||||
* | Add support for rule-specific variables, use to fix cc.type data race | Boris Kolpackov | 2018-11-01 | 1 | -0/+27 |
| | |||||
* | Add support for default extension specification, trailing dot escaping | Boris Kolpackov | 2018-08-07 | 1 | -23/+119 |
| | | | | | | | | | | | | | 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) | ||||
* | Pass extension supplied by rule to target type default extension function | Boris Kolpackov | 2018-07-26 | 1 | -16/+23 |
| | | | | | 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). | ||||
* | Prefer default extension supplied by rule over one supplied by target type | Boris Kolpackov | 2018-07-25 | 1 | -15/+18 |
| | |||||
* | Make exe{} target default to no extension rather than fail | Boris Kolpackov | 2018-07-24 | 1 | -9/+9 |
| | | | | | | 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). | ||||
* | Implement in module | Boris Kolpackov | 2018-07-16 | 1 | -44/+0 |
| | | | | | | | | | | | | | | | | | | | | 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 | ||||
* | Update copyright year | Karen Arutyunov | 2018-05-19 | 1 | -1/+1 |
| | |||||
* | Add manifest{} target type ('manifest' file name automatically mapped as such) | Boris Kolpackov | 2018-05-19 | 1 | -0/+44 |
| | |||||
* | Get rid of action rule override semantics | Boris Kolpackov | 2018-02-03 | 1 | -91/+7 |
| | | | | | Instead we now have two more or less separate match states for outer and inner parts of an action. | ||||
* | Add support for variable aliases | Boris Kolpackov | 2018-01-05 | 1 | -4/+8 |
| | |||||
* | Split stream verbosity into components (path, extension) | Boris Kolpackov | 2017-12-16 | 1 | -11/+15 |
| | | | | | Use to make sure structured result output always contains absolute target path. | ||||
* | Redo string/stream representation of dir{} name/target | Boris Kolpackov | 2017-12-16 | 1 | -10/+15 |
| | | | | | | | | | | | | | | 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/". | ||||
* | Distinguish between "fixed" and "default" target extensions | Boris Kolpackov | 2017-12-07 | 1 | -71/+69 |
| | | | | | This fixes wrong merging of, say, file{README} and file{README.MySQL} (in libmysqlclient). | ||||
* | Fix GCC 7 -fimplicit-fallthrough warnings | Boris Kolpackov | 2017-12-01 | 1 | -2/+1 |
| | |||||
* | Fix dist bug where missing source file would be silently ignored | Boris Kolpackov | 2017-11-22 | 1 | -1/+1 |
| | |||||
* | Initial support for prerequisite-specific variables, use for bin.whole | Boris Kolpackov | 2017-11-09 | 1 | -0/+2 |
| | |||||
* | Fix bug in handling of empty target name prefixes (e.g., bin.lib.prefix) | Boris Kolpackov | 2017-11-09 | 1 | -1/+1 |
| | |||||
* | Adapt to modularization of libbutl | Karen Arutyunov | 2017-10-03 | 1 | -1/+1 |
| | |||||
* | Add support for try_match(), use to handle deleted headers | Boris Kolpackov | 2017-09-01 | 1 | -8/+15 |
| | |||||
* | Experimental (and probably broken) pkg-config generation support | Boris Kolpackov | 2017-07-31 | 1 | -20/+0 |
| | |||||
* | Adjust extension semantics in file rule to match search_existing_file() | Boris Kolpackov | 2017-05-31 | 1 | -4/+9 |
| | |||||
* | Add hxx extension for headers | Karen Arutyunov | 2017-05-01 | 1 | -8/+8 |
| | |||||
* | Fix bug in default target logic | Boris Kolpackov | 2017-04-29 | 1 | -22/+24 |
| | |||||
* | Fix buildfile loading race | Boris Kolpackov | 2017-04-28 | 1 | -0/+12 |
| | |||||
* | Add in{} target type for .in ("input") file (requires preprocessing) | Boris Kolpackov | 2017-04-28 | 1 | -0/+43 |
| | |||||
* | Pass target to prerequisite search | Boris Kolpackov | 2017-04-27 | 1 | -20/+20 |
| | |||||
* | Fix recursive locking bug | Boris Kolpackov | 2017-03-24 | 1 | -2/+7 |
| | |||||
* | Preserve failed state even if recipe is overridden | Boris Kolpackov | 2017-03-14 | 1 | -2/+3 |
| | |||||
* | Implement implied buildfile support | Boris Kolpackov | 2017-03-14 | 1 | -6/+16 |
| | | | | | | | | In essence, if the buildfile is: ./: */ Then it can be omitted entirely (provided there is at least one subdirectory). | ||||
* | Implement support for wildcard patterns | Boris Kolpackov | 2017-03-10 | 1 | -7/+87 |
| | |||||
* | Tweak target locking logic | Boris Kolpackov | 2017-03-06 | 1 | -7/+4 |
| | |||||
* | Implement parallel match | Boris Kolpackov | 2017-03-02 | 1 | -86/+146 |
| | |||||
* | Modify library mate-information protocol not to use lib{} group | Boris Kolpackov | 2017-02-14 | 1 | -7/+0 |
| | |||||
* | Track variable value modifications | Boris Kolpackov | 2017-02-13 | 1 | -1/+1 |
| | |||||
* | Implement parallel error propagation, keep_going mode | Boris Kolpackov | 2017-02-13 | 1 | -1/+1 |
| | | | | | | | Keep going is the default but there is now the -s|--serial-stop that makes the driver run serially and stop at first error. Also fix some lockups, other minor improvements/features. | ||||
* | Tighten target constness further | Boris Kolpackov | 2017-02-13 | 1 | -1/+1 |
| | |||||
* | Tighten code that operates during both search/match and execute | Boris Kolpackov | 2017-02-13 | 1 | -0/+5 |
| | |||||
* | Pass const target& to recipes | Boris Kolpackov | 2017-02-13 | 1 | -1/+1 |
| | |||||
* | Introduce target::task_count | Boris Kolpackov | 2017-02-13 | 1 | -4/+18 |
| | |||||
* | Implement target_set locking, including extension update | Boris Kolpackov | 2017-02-13 | 1 | -41/+131 |
| | |||||
* | Redesign target_set interface in preparation for locking | Boris Kolpackov | 2017-02-13 | 1 | -19/+17 |
| | |||||
* | Store extension in target map key rather than in target | Boris Kolpackov | 2017-02-13 | 1 | -40/+47 |
| | | | | This is in preparation for locking its modification/access. | ||||
* | Pass const scope& where modification should not happen | Boris Kolpackov | 2017-02-13 | 1 | -9/+10 |
| | |||||
* | Add notion of load phase generation | Boris Kolpackov | 2017-02-13 | 1 | -1/+1 |
| | |||||
* | Add notion of phase, enforce | Boris Kolpackov | 2017-02-13 | 1 | -20/+25 |
| | |||||
* | Add model mutex, make var_pool const by default | Boris Kolpackov | 2017-02-13 | 1 | -3/+8 |
| | |||||
* | Add bunch of missing const's | Boris Kolpackov | 2017-01-23 | 1 | -1/+1 |
| | |||||
* | Implement automatic loading of directory buildfiles | Boris Kolpackov | 2017-01-23 | 1 | -15/+104 |
| | | | | | | | | | | | | Now instead of explicitly writing: d = foo/ bar/ ./: $d include $d We can (usually) just write: ./: foo/ bar/ |