summaryrefslogtreecommitdiffstats
path: root/build2/target.hxx
Commit message (Collapse)AuthorAgeFilesLines
* Update copyright yearKaren Arutyunov2019-01-161-1/+1
|
* Add support for target and prerequisite specific variable blocksBoris Kolpackov2018-11-211-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | 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 }
* Fallback to loading outer buildfile if there isn't one in src_baseBoris Kolpackov2018-11-141-0/+11
| | | | | | 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.
* Fix atomic count initializationBoris Kolpackov2018-11-011-2/+2
|
* Add support for rule-specific variables, use to fix cc.type data raceBoris Kolpackov2018-11-011-12/+90
|
* Fix race in rule synthesis logicBoris Kolpackov2018-10-251-4/+14
|
* Fix bug in binless library linking logicBoris Kolpackov2018-10-181-8/+8
|
* Add support for default extension specification, trailing dot escapingBoris Kolpackov2018-08-071-2/+21
| | | | | | | | | | | | | 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)
* Make project variable to be of project_name typeKaren Arutyunov2018-07-301-4/+2
|
* Pass extension supplied by rule to target type default extension functionBoris Kolpackov2018-07-261-3/+3
| | | | | 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).
* Implement in moduleBoris Kolpackov2018-07-161-27/+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
* Implement support for excluded and ad hoc prerequisitesBoris Kolpackov2018-06-281-3/+13
| | | | | | | | | | | | | | 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
* Add sanity checkBoris Kolpackov2018-06-151-1/+1
|
* Update copyright yearKaren Arutyunov2018-05-191-1/+1
|
* Add manifest{} target type ('manifest' file name automatically mapped as such)Boris Kolpackov2018-05-191-2/+15
|
* Implement forwarded configurations and backlinkingBoris Kolpackov2018-04-261-6/+8
|
* Perform ad hoc group resolution instead of resolve_group() in module searchBoris Kolpackov2018-02-161-0/+7
|
* Fix group link-up raceBoris Kolpackov2018-02-161-2/+5
|
* Update/cleanup comment documentation for inner/outer operation semanticsBoris Kolpackov2018-02-081-1/+1
|
* Rename prerequisite_member::target to prerequisite_member::memberBoris Kolpackov2018-02-051-18/+18
|
* Fix test and install rules to handle see-through groups correctlyBoris Kolpackov2018-02-051-2/+18
|
* Get rid of action rule override semanticsBoris Kolpackov2018-02-031-88/+78
| | | | | Instead we now have two more or less separate match states for outer and inner parts of an action.
* Use BUILD2_ATOMIC_NON_LOCK_FREE macro to suppress non-lock-free errorsBoris Kolpackov2017-12-231-1/+7
|
* Distinguish between "fixed" and "default" target extensionsBoris Kolpackov2017-12-071-30/+6
| | | | | This fixes wrong merging of, say, file{README} and file{README.MySQL} (in libmysqlclient).
* Remove stray staticBoris Kolpackov2017-12-061-1/+1
|
* Implement support for scope operation callbacksBoris Kolpackov2017-11-301-33/+2
| | | | | | An entity (module, core) can register a function that will be called when an action is executed on the dir{} target that corresponds to the scope. The pre callback is called just before the recipe and the post -- immediately after.
* Fix dist bug where missing source file would be silently ignoredBoris Kolpackov2017-11-221-6/+6
|
* Initial support for prerequisite-specific variables, use for bin.wholeBoris Kolpackov2017-11-091-3/+2
|
* Adapt to modularization of libbutlKaren Arutyunov2017-10-031-1/+1
|
* Add support for try_match(), use to handle deleted headersBoris Kolpackov2017-09-011-9/+19
|
* Increase target pad sizeBoris Kolpackov2017-08-071-1/+1
|
* Save module map to pkg-config filesBoris Kolpackov2017-08-021-3/+6
|
* Experimental (and probably broken) pkg-config generation supportBoris Kolpackov2017-07-311-3/+24
|
* Fix bug in execution algorithmsBoris Kolpackov2017-07-291-2/+2
|
* Add support for custom data storage in target::preprequisite_targetsBoris Kolpackov2017-07-281-2/+21
|
* Increase target data pad sizeBoris Kolpackov2017-07-221-1/+1
|
* Add support for explicitly specifying module name on mxx{} targetBoris Kolpackov2017-06-161-2/+12
|
* Implement module search in prerequisite librariesBoris Kolpackov2017-06-151-0/+6
|
* Implement rule chaining for modulesBoris Kolpackov2017-06-081-0/+3
|
* Remove implicit see-through iteration over ad hoc group membersBoris Kolpackov2017-06-051-16/+10
| | | | This can only be done MT-safely after a synchronous match.
* Implement module interface unit compilation for Clang and VCBoris Kolpackov2017-06-011-0/+2
|
* Adjust extension semantics in file rule to match search_existing_file()Boris Kolpackov2017-05-311-12/+24
|
* Add hxx extension for headersKaren Arutyunov2017-05-011-0/+1719