summaryrefslogtreecommitdiffstats
path: root/build2/target.cxx
Commit message (Collapse)AuthorAgeFilesLines
* Update copyright yearKaren Arutyunov2019-01-161-1/+1
|
* Diagnose target names with multiple trailing slashes as invalidBoris Kolpackov2019-01-141-0/+2
|
* Fallback to loading outer buildfile if there isn't one in src_baseBoris Kolpackov2018-11-141-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 raceBoris Kolpackov2018-11-011-0/+27
|
* Add support for default extension specification, trailing dot escapingBoris Kolpackov2018-08-071-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 functionBoris Kolpackov2018-07-261-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 typeBoris Kolpackov2018-07-251-15/+18
|
* Make exe{} target default to no extension rather than failBoris Kolpackov2018-07-241-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 moduleBoris Kolpackov2018-07-161-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 yearKaren Arutyunov2018-05-191-1/+1
|
* Add manifest{} target type ('manifest' file name automatically mapped as such)Boris Kolpackov2018-05-191-0/+44
|
* Get rid of action rule override semanticsBoris Kolpackov2018-02-031-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 aliasesBoris Kolpackov2018-01-051-4/+8
|
* Split stream verbosity into components (path, extension)Boris Kolpackov2017-12-161-11/+15
| | | | | Use to make sure structured result output always contains absolute target path.
* Redo string/stream representation of dir{} name/targetBoris Kolpackov2017-12-161-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 extensionsBoris Kolpackov2017-12-071-71/+69
| | | | | This fixes wrong merging of, say, file{README} and file{README.MySQL} (in libmysqlclient).
* Fix GCC 7 -fimplicit-fallthrough warningsBoris Kolpackov2017-12-011-2/+1
|
* Fix dist bug where missing source file would be silently ignoredBoris Kolpackov2017-11-221-1/+1
|
* Initial support for prerequisite-specific variables, use for bin.wholeBoris Kolpackov2017-11-091-0/+2
|
* Fix bug in handling of empty target name prefixes (e.g., bin.lib.prefix)Boris Kolpackov2017-11-091-1/+1
|
* Adapt to modularization of libbutlKaren Arutyunov2017-10-031-1/+1
|
* Add support for try_match(), use to handle deleted headersBoris Kolpackov2017-09-011-8/+15
|
* Experimental (and probably broken) pkg-config generation supportBoris Kolpackov2017-07-311-20/+0
|
* Adjust extension semantics in file rule to match search_existing_file()Boris Kolpackov2017-05-311-4/+9
|
* Add hxx extension for headersKaren Arutyunov2017-05-011-8/+8
|
* Fix bug in default target logicBoris Kolpackov2017-04-291-22/+24
|
* Fix buildfile loading raceBoris Kolpackov2017-04-281-0/+12
|
* Add in{} target type for .in ("input") file (requires preprocessing)Boris Kolpackov2017-04-281-0/+43
|
* Pass target to prerequisite searchBoris Kolpackov2017-04-271-20/+20
|
* Fix recursive locking bugBoris Kolpackov2017-03-241-2/+7
|
* Preserve failed state even if recipe is overriddenBoris Kolpackov2017-03-141-2/+3
|
* Implement implied buildfile supportBoris Kolpackov2017-03-141-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 patternsBoris Kolpackov2017-03-101-7/+87
|
* Tweak target locking logicBoris Kolpackov2017-03-061-7/+4
|
* Implement parallel matchBoris Kolpackov2017-03-021-86/+146
|
* Modify library mate-information protocol not to use lib{} groupBoris Kolpackov2017-02-141-7/+0
|
* Track variable value modificationsBoris Kolpackov2017-02-131-1/+1
|
* Implement parallel error propagation, keep_going modeBoris Kolpackov2017-02-131-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 furtherBoris Kolpackov2017-02-131-1/+1
|
* Tighten code that operates during both search/match and executeBoris Kolpackov2017-02-131-0/+5
|
* Pass const target& to recipesBoris Kolpackov2017-02-131-1/+1
|
* Introduce target::task_countBoris Kolpackov2017-02-131-4/+18
|
* Implement target_set locking, including extension updateBoris Kolpackov2017-02-131-41/+131
|
* Redesign target_set interface in preparation for lockingBoris Kolpackov2017-02-131-19/+17
|
* Store extension in target map key rather than in targetBoris Kolpackov2017-02-131-40/+47
| | | | This is in preparation for locking its modification/access.
* Pass const scope& where modification should not happenBoris Kolpackov2017-02-131-9/+10
|
* Add notion of load phase generationBoris Kolpackov2017-02-131-1/+1
|
* Add notion of phase, enforceBoris Kolpackov2017-02-131-20/+25
|
* Add model mutex, make var_pool const by defaultBoris Kolpackov2017-02-131-3/+8
|
* Add bunch of missing const'sBoris Kolpackov2017-01-231-1/+1
|