aboutsummaryrefslogtreecommitdiff
path: root/build2/target.hxx
AgeCommit message (Collapse)AuthorFilesLines
2019-05-10Minor cleanups and clarificationsBoris Kolpackov1-1/+1
2019-05-06Update and clarify target grouping terminology and semanticsBoris Kolpackov1-27/+32
2019-04-11Default to strict mode (/permissive-) from VC15.5Boris Kolpackov1-1/+1
2019-03-14Add support for multiple variable overridesBoris Kolpackov1-2/+2
Now we can do: $ b config.cxx.coptions=-O3 config.cxx.coptions=-O0 Or even: $ b config.cxx.coptions=-O3 config.cxx.coptions+=-g
2019-03-07Add support for alternative build file/directory naming schemeBoris Kolpackov1-14/+5
Now the build/*.build, buildfile, and .buildignore filesystem entries in a project can alternatively (but consistently) be called build2/*.build2, build2file, and .build2ignore. See a note at the beginning of the Project Structure section in the manual for details (motivation, restrictions, etc).
2019-01-16Update copyright yearKaren Arutyunov1-1/+1
2018-11-21Add support for target and prerequisite specific variable blocksBoris Kolpackov1-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 }
2018-11-14Fallback to loading outer buildfile if there isn't one in src_baseBoris Kolpackov1-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.
2018-11-01Fix atomic count initializationBoris Kolpackov1-2/+2
2018-11-01Add support for rule-specific variables, use to fix cc.type data raceBoris Kolpackov1-12/+90
2018-10-25Fix race in rule synthesis logicBoris Kolpackov1-4/+14
2018-10-18Fix bug in binless library linking logicBoris Kolpackov1-8/+8
2018-08-07Add support for default extension specification, trailing dot escapingBoris Kolpackov1-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)
2018-07-30Make project variable to be of project_name typeKaren Arutyunov1-4/+2
2018-07-26Pass extension supplied by rule to target type default extension functionBoris Kolpackov1-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).
2018-07-16Implement in moduleBoris Kolpackov1-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
2018-06-28Implement support for excluded and ad hoc prerequisitesBoris Kolpackov1-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
2018-06-15Add sanity checkBoris Kolpackov1-1/+1
2018-05-19Update copyright yearKaren Arutyunov1-1/+1
2018-05-19Add manifest{} target type ('manifest' file name automatically mapped as such)Boris Kolpackov1-2/+15
2018-04-26Implement forwarded configurations and backlinkingBoris Kolpackov1-6/+8
2018-02-16Perform ad hoc group resolution instead of resolve_group() in module searchBoris Kolpackov1-0/+7
2018-02-16Fix group link-up raceBoris Kolpackov1-2/+5
2018-02-08Update/cleanup comment documentation for inner/outer operation semanticsBoris Kolpackov1-1/+1
2018-02-05Rename prerequisite_member::target to prerequisite_member::memberBoris Kolpackov1-18/+18
2018-02-05Fix test and install rules to handle see-through groups correctlyBoris Kolpackov1-2/+18
2018-02-03Get rid of action rule override semanticsBoris Kolpackov1-88/+78
Instead we now have two more or less separate match states for outer and inner parts of an action.
2017-12-23Use BUILD2_ATOMIC_NON_LOCK_FREE macro to suppress non-lock-free errorsBoris Kolpackov1-1/+7
2017-12-07Distinguish between "fixed" and "default" target extensionsBoris Kolpackov1-30/+6
This fixes wrong merging of, say, file{README} and file{README.MySQL} (in libmysqlclient).
2017-12-06Remove stray staticBoris Kolpackov1-1/+1
2017-11-30Implement support for scope operation callbacksBoris Kolpackov1-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.
2017-11-22Fix dist bug where missing source file would be silently ignoredBoris Kolpackov1-6/+6
2017-11-09Initial support for prerequisite-specific variables, use for bin.wholeBoris Kolpackov1-3/+2
2017-10-03Adapt to modularization of libbutlKaren Arutyunov1-1/+1
2017-09-01Add support for try_match(), use to handle deleted headersBoris Kolpackov1-9/+19
2017-08-07Increase target pad sizeBoris Kolpackov1-1/+1
2017-08-02Save module map to pkg-config filesBoris Kolpackov1-3/+6
2017-07-31Experimental (and probably broken) pkg-config generation supportBoris Kolpackov1-3/+24
2017-07-29Fix bug in execution algorithmsBoris Kolpackov1-2/+2
2017-07-28Add support for custom data storage in target::preprequisite_targetsBoris Kolpackov1-2/+21
2017-07-22Increase target data pad sizeBoris Kolpackov1-1/+1
2017-06-16Add support for explicitly specifying module name on mxx{} targetBoris Kolpackov1-2/+12
2017-06-15Implement module search in prerequisite librariesBoris Kolpackov1-0/+6
2017-06-08Implement rule chaining for modulesBoris Kolpackov1-0/+3
2017-06-05Remove implicit see-through iteration over ad hoc group membersBoris Kolpackov1-16/+10
This can only be done MT-safely after a synchronous match.
2017-06-01Implement module interface unit compilation for Clang and VCBoris Kolpackov1-0/+2
2017-05-31Adjust extension semantics in file rule to match search_existing_file()Boris Kolpackov1-12/+24
2017-05-01Add hxx extension for headersKaren Arutyunov1-0/+1719