aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2015-04-17Tune buildspec heuristicsBoris Kolpackov1-4/+7
2015-04-17Search in target group during variable lookupBoris Kolpackov2-8/+15
2015-04-17Add support for target groups, use to handle obj/obja/objso object targetsBoris Kolpackov19-324/+598
2015-04-15New variables architectureBoris Kolpackov15-116/+202
Now operator[] is only used for lookup.
2015-04-15Initial library supportBoris Kolpackov11-76/+200
2015-04-13Add separate type to represent directory pathsBoris Kolpackov43-533/+606
2015-04-13Add initial import supportBoris Kolpackov11-178/+425
2015-04-08Inherit list_value directly from namesBoris Kolpackov7-33/+31
2015-04-08Add note to generated config.build about inherited configurationBoris Kolpackov1-3/+15
2015-04-08Distinguish between undefined and null variablesBoris Kolpackov3-27/+51
2015-04-08Support for disfiguring subprojectsBoris Kolpackov1-39/+80
2015-04-08Configure subprojects that were loadedBoris Kolpackov1-29/+54
2015-04-08Clarify commentBoris Kolpackov1-2/+2
2015-04-08Get rid of need to store scope in variable valueBoris Kolpackov4-39/+20
2015-04-07Initial support for amalgamation/subprojectsBoris Kolpackov8-60/+277
For now both need to be manually specified in src bootstrap. At this stage main() loads any outer root scopes while include loads any inner.
2015-04-07Provide more convenient access to root scopeBoris Kolpackov13-106/+148
2015-04-02Handle "nothing to be done" case for disfigureBoris Kolpackov6-22/+59
2015-04-02Implement translation of meta/operations to natural languageBoris Kolpackov7-24/+186
2015-04-02Keep previous version of b executable as b-prev until linker succeedsBoris Kolpackov2-5/+10
This is useful in case of a linker error in which case the b binary is deleted and we have nothing to use. Also, it is a good idea to manually keep b-save in case of runtime bugs introduced during development.
2015-04-02Add command line option to set verbosity levelBoris Kolpackov7-5/+1014
-v sets it to 1 (shows actual command lines) --verbose sets it to any value in the 0-5 range
2015-04-01Warn about configured/command line value mismatchBoris Kolpackov5-50/+117
Also store configured but unspecified values
2015-04-01Implement initial C++ configuration supportBoris Kolpackov9-41/+319
2015-03-31Rename root_scope to global_scopeBoris Kolpackov6-28/+28
To avoid confusion with project's root scopes.
2015-03-31Save config.buildBoris Kolpackov3-2/+68
2015-03-30Initial support for command line variablesBoris Kolpackov7-89/+167
2015-03-30Add support for configurable pair separator, use @ instead of = in buildspecBoris Kolpackov4-57/+42
2015-03-27Rework dependency state dump supportBoris Kolpackov13-64/+142
We now have a combined (scopes, variables, and targets) dump.
2015-03-25Recognize common cases (., .., and dir{}) when deriving out_baseBoris Kolpackov1-6/+17
2015-03-25Configure/disfigure src_root saving/removing support; fsdir{} injectionBoris Kolpackov24-217/+720
We can now build out-of-tree.
2015-03-24Make meta-operations control build loop; add disfigure skeletonBoris Kolpackov18-271/+522
2015-03-20New consolidated load/match/build loopBoris Kolpackov17-298/+418
2015-03-18Implement complete root/base detection, basic module supportBoris Kolpackov15-53/+482
This is the initial groundwork for the configuration support.
2015-03-13Factor string_table into separate fileBoris Kolpackov4-96/+124
2015-03-13Rename set_key to map_key; feels more correctBoris Kolpackov3-13/+13
2015-03-13Add support for "first" and "last" execution modesBoris Kolpackov16-44/+252
2015-03-13Add postponed recipe execution supportBoris Kolpackov5-18/+61
2015-03-12Implement clean operationBoris Kolpackov17-190/+584
2015-03-10Further operation implementationBoris Kolpackov17-164/+358
2015-03-09Add meta/operation lists, lift operations in buildspecBoris Kolpackov6-30/+149
2015-03-09Add support for skipping already loaded/included buildfiles at top levelBoris Kolpackov5-15/+32
The idea is that a buildfile shall be included/loaded only once for any given out_root.
2015-03-09Build according to buildspecBoris Kolpackov9-248/+406
At this stage operations are still ignored.
2015-03-07Add support for buildspecBoris Kolpackov7-18/+402
2015-03-06Add support for lexing and parsing name pairsBoris Kolpackov6-46/+218
We will need it for the buildspec and also if/when we support map variable types.
2015-03-04Treat names that end with directory separators as directoriesBoris Kolpackov2-28/+57
2015-03-04Move roots and bases to appropriate scopesBoris Kolpackov18-111/+424
2015-03-03Use names() to handle include/source, support include of directoriesBoris Kolpackov4-20/+57
This gives us variable expansion and directory prefixes. Also, in include, if the path is a directory (either ends with / or has dir{} type), then we append 'buildfile'.
2015-03-03Implement new default target logic, canonical directory name (empty value)Boris Kolpackov6-145/+158
The logic is as follows: if we have an explicit current directory target, then that's the default target. Otherwise, we take the first target and use it as a prerequisite to create an implicit current directory target, effectively making it the default target via an alias. If there are no targets in this buildfile, then we don't do anything.
2015-03-02Cleanup to support clang compilationBoris Kolpackov5-45/+39
2015-03-02Implement variable expansionBoris Kolpackov5-20/+230
2015-03-02Indicate whether token is separated from previous one by whitespacesBoris Kolpackov5-92/+117