aboutsummaryrefslogtreecommitdiff
path: root/build/parser.cxx
AgeCommit message (Collapse)AuthorFilesLines
2015-08-31Clean parser implementationBoris Kolpackov1-52/+13
2015-08-31Rework scoping logicBoris Kolpackov1-53/+107
Now the src directory is entered into the scope map and points to the same scope as out. This means that targets that are in src, not out (e.g., source files) will "see" rules, variables, etc. This becomes important when we try, for example, to install a source file (say, a header) from src: we need the rule as well as the install.* variables.
2015-08-27Dist module/meta-operation initial implementationBoris Kolpackov1-0/+31
2015-08-24Cosmetic changeBoris Kolpackov1-1/+1
2015-08-24Only treat name as directory if it is reversibleBoris Kolpackov1-22/+32
2015-08-24New variable architectureBoris Kolpackov1-50/+36
2015-07-31Essential install module functionalityBoris Kolpackov1-5/+5
2015-07-15Implement project-qualified names/prerequisites, two-stage importBoris Kolpackov1-20/+96
2015-07-13Add support for pair-enabled variablesBoris Kolpackov1-20/+16
2015-07-07Relax requirement on amalgamation src_root to track sub-projectBoris Kolpackov1-32/+32
2015-07-07Rework module architectureBoris Kolpackov1-10/+4
Now the target type and rule maps are in scopes (builtins -- in global scope). We also now have the map of loaded modules in the root scope of each project.
2015-05-22Get rid of gcc, clang warnings (-Wall)Boris Kolpackov1-1/+0
2015-05-11Correct copyrightBoris Kolpackov1-1/+1
2015-04-29Add support for setting target-specific variables from buildfilesBoris Kolpackov1-92/+140
2015-04-28Remove sourcing triggers support for nowBoris Kolpackov1-21/+0
2015-04-28Second iteration over import/export supportBoris Kolpackov1-24/+32
2015-04-20Merge config.cxx.* variables into cxx.* when loading cxx moduleBoris Kolpackov1-3/+12
2015-04-20Automatically decide when to print relative/absolute pathsBoris Kolpackov1-1/+1
2015-04-17Add support for target groups, use to handle obj/obja/objso object targetsBoris Kolpackov1-2/+2
2015-04-15New variables architectureBoris Kolpackov1-11/+11
Now operator[] is only used for lookup.
2015-04-13Add separate type to represent directory pathsBoris Kolpackov1-26/+26
2015-04-13Add initial import supportBoris Kolpackov1-83/+133
2015-04-08Inherit list_value directly from namesBoris Kolpackov1-11/+11
2015-04-08Get rid of need to store scope in variable valueBoris Kolpackov1-4/+4
2015-04-07Initial support for amalgamation/subprojectsBoris Kolpackov1-2/+75
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-03-31Rename root_scope to global_scopeBoris Kolpackov1-2/+2
To avoid confusion with project's root scopes.
2015-03-30Initial support for command line variablesBoris Kolpackov1-82/+74
2015-03-30Add support for configurable pair separator, use @ instead of = in buildspecBoris Kolpackov1-17/+19
2015-03-27Rework dependency state dump supportBoris Kolpackov1-3/+3
We now have a combined (scopes, variables, and targets) dump.
2015-03-25Configure/disfigure src_root saving/removing support; fsdir{} injectionBoris Kolpackov1-3/+6
We can now build out-of-tree.
2015-03-24Make meta-operations control build loop; add disfigure skeletonBoris Kolpackov1-5/+6
2015-03-20New consolidated load/match/build loopBoris Kolpackov1-1/+1
2015-03-18Implement complete root/base detection, basic module supportBoris Kolpackov1-2/+83
This is the initial groundwork for the configuration support.
2015-03-09Add meta/operation lists, lift operations in buildspecBoris Kolpackov1-8/+8
2015-03-09Add support for skipping already loaded/included buildfiles at top levelBoris Kolpackov1-6/+7
The idea is that a buildfile shall be included/loaded only once for any given out_root.
2015-03-09Build according to buildspecBoris Kolpackov1-103/+33
At this stage operations are still ignored.
2015-03-07Add support for buildspecBoris Kolpackov1-4/+188
2015-03-06Add support for lexing and parsing name pairsBoris Kolpackov1-16/+118
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 Kolpackov1-21/+44
2015-03-04Move roots and bases to appropriate scopesBoris Kolpackov1-36/+66
2015-03-03Use names() to handle include/source, support include of directoriesBoris Kolpackov1-20/+51
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 Kolpackov1-135/+139
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-02Implement variable expansionBoris Kolpackov1-17/+178
2015-03-02Indicate whether token is separated from previous one by whitespacesBoris Kolpackov1-1/+1
2015-03-02Clean up clang warningsBoris Kolpackov1-7/+8
2015-02-27Variable assignment, appending supportBoris Kolpackov1-17/+101
2015-02-24Use prefix_map for scopes, establish root scopeBoris Kolpackov1-5/+20
2015-02-23Redo rule match/build logicBoris Kolpackov1-6/+6
Now the rule is fully responsible for searching, matching, and building of prerequisites.
2015-02-20Get rid of parse_ prefix in parser function namesBoris Kolpackov1-21/+21
2015-02-20Rework extension handling logicBoris Kolpackov1-6/+6
We no longer support hxx{vector.}. Rather, the target type can decide, e.g., based on a config variable, whether to append an extension. Also, in the future we may support a syntax to specify that this is a complete name, e.g., hxx{'vector'}.