summaryrefslogtreecommitdiffstats
path: root/build2/scope.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-1/+9
|
* Fix bug in command line variable override depth calculationBoris Kolpackov2018-11-091-7/+11
|
* Fix bug in override logic for command line variable with project visibilityBoris Kolpackov2018-11-081-5/+11
|
* Add support for rule-specific variables, use to fix cc.type data raceBoris Kolpackov2018-11-011-8/+14
|
* Add support for default extension specification, trailing dot escapingBoris Kolpackov2018-08-071-33/+28
| | | | | | | | | | | | | 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)
* Add prerequisite variable visibility specification/enforcementBoris Kolpackov2018-06-281-0/+6
|
* If target type doesn't use extensions, factor it back into nameBoris Kolpackov2018-06-121-0/+13
|
* Update copyright yearKaren Arutyunov2018-05-191-1/+1
|
* Support for deriving target type from file name, handle testscript, buildfileBoris Kolpackov2018-05-191-39/+55
| | | | | | | | | | In particular, instead of: exe{test}: test{testscript} We should now write: exe{test}: testscript
* Fix uncaught invalid_path exceptionKaren Arutyunov2018-05-161-2/+10
|
* Remove unused codeBoris Kolpackov2018-01-191-24/+1
|
* Use prefix_map::find_sup/sub()Boris Kolpackov2018-01-181-6/+8
|
* Add support for variable aliasesBoris Kolpackov2018-01-051-7/+11
|
* Distinguish between "fixed" and "default" target extensionsBoris Kolpackov2017-12-071-24/+40
| | | | | This fixes wrong merging of, say, file{README} and file{README.MySQL} (in libmysqlclient).
* Minor changesBoris Kolpackov2017-08-051-18/+24
|
* Add hxx extension for headersKaren Arutyunov2017-05-011-3/+3
|
* Fix typification bug in variable_cacheBoris Kolpackov2017-04-191-2/+4
|
* Use variable_cache for target type/pattern-specific prepend/appendBoris Kolpackov2017-02-131-38/+46
|
* Add MT-safe variable_cache, use for variable overridesBoris Kolpackov2017-02-131-47/+48
|
* Some ground work for proper variable cache implementationBoris Kolpackov2017-02-131-3/+10
|
* Track variable value modificationsBoris Kolpackov2017-02-131-1/+1
|
* Store extension in target map key rather than in targetBoris Kolpackov2017-02-131-3/+3
| | | | This is in preparation for locking its modification/access.
* Pass const scope& where modification should not happenBoris Kolpackov2017-02-131-2/+7
|
* Add global flag to variable_mapBoris Kolpackov2017-02-131-1/+1
|
* Get rid of extension_poolBoris Kolpackov2017-01-191-5/+5
|
* Update copyright yearBoris Kolpackov2017-01-051-1/+1
|
* Add support for VC15Karen Arutyunov2016-11-261-1/+1
|
* Minor dependency cleanupBoris Kolpackov2016-11-041-1/+2
|
* Treat trailing dot as specified but empty extensionBoris Kolpackov2016-09-021-3/+6
| | | | | Of course now there is no way to specify a name that really has a trailing dot.
* Add support for target visibility, use for dist, test, installBoris Kolpackov2016-08-301-1/+9
| | | | | | | | | | This means we can no longer write: install = false Now it should be: *: install = false
* Add support for prepend/append in target type/pattern-specific varsBoris Kolpackov2016-07-161-14/+106
| | | | | | | | | | | | | | | | | Semantically, these are similar to variable overrides and are essentially treated as "templates" that are applied on lookup to the "stem" value that is specific to the target type/name. For example: x = [string] a file{f*}: x =+ b sub/: { file{*}: x += c print $(file{foo}:x) # abc print $(file{bar}:x) # ac }
* Port to MSVCKaren Arutyunov2016-07-011-1/+3
|
* Add notion of ad hoc group, use to handle DLL/import libraryBoris Kolpackov2016-06-261-0/+68
|
* Suppress Clang warningBoris Kolpackov2016-04-251-1/+1
|
* Redesign src/out scopingBoris Kolpackov2016-04-191-107/+54
| | | | | | | | | | We no longer enter paths from the src tree into scope map. Instead, targets from the src tree now include their out tree directory (in essence their "configuration"). This is then used to find a target's scope. See the comment in class target for details. The result of this change is that we can now again build multiple configurations (out trees) for same project at once.
* Add support for using value attributes in eval contextBoris Kolpackov2016-04-181-3/+3
| | | | | | | | | | For example: if ($x == [null]) Or: if ([uint64] 01 == [uint64] 1)
* Cleanup find_override() implementationBoris Kolpackov2016-04-111-69/+91
|
* Redo config inheritance logicBoris Kolpackov2016-04-111-1/+1
|
* New configuration logic, iteration 1Boris Kolpackov2016-04-111-4/+12
|
* Tweak override logic WRT location of overridden valueBoris Kolpackov2016-04-091-22/+44
|
* Test and fix override logicBoris Kolpackov2016-04-061-44/+85
|
* Fix bug in variable override codeBoris Kolpackov2016-04-051-1/+1
|
* Implement value typing, null support via value attributesBoris Kolpackov2016-04-041-6/+9
| | | | | | | | For example: v = [null] v = [string] abc v += ABC # abcABC
* Improve override cache typing to handle value-typed stemsBoris Kolpackov2016-04-021-4/+11
|
* Add notion of lookup depth, fix bug with NULL overridesBoris Kolpackov2016-04-021-31/+66
|
* Get part of variable override implementationBoris Kolpackov2016-04-011-3/+211
|
* Clean up variable lookup interfacesBoris Kolpackov2016-03-311-9/+18
|
* Update copyright yearBoris Kolpackov2016-01-091-1/+1
|
* Rename build directory/namespace to build2Boris Kolpackov2016-01-051-0/+317