aboutsummaryrefslogtreecommitdiff
path: root/build/context.cxx
AgeCommit message (Collapse)AuthorFilesLines
2015-12-03Clean up rule namesBoris Kolpackov1-27/+31
2015-12-02Implement optional module loadingBoris Kolpackov1-11/+11
The syntax is: using? cli Now each module use results in two bool variables: <module>.loaded and <module>.configured. Also implement variable visibility (the above two variables are limited to project).
2015-12-01Use 'extension' variable to resolve extension for file{}Boris Kolpackov1-0/+2
We now also check target type/pattern-specific variables. So the new usage is: cli{*}: extension = cli
2015-09-08Move context-dependent functions from diagnostics to contextBoris Kolpackov1-0/+153
2015-09-08Rework diagnostics verbosity, add quiet mode/optionBoris Kolpackov1-5/+16
2015-08-31Rework scoping logicBoris Kolpackov1-3/+4
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-9/+31
2015-08-24Only treat name as directory if it is reversibleBoris Kolpackov1-7/+3
2015-08-24New variable architectureBoris Kolpackov1-1/+14
2015-08-14Rework meta/operation registrationBoris Kolpackov1-0/+15
We now have global tables for meta/operation. Plus each can then be enabled on the per-project basis.
2015-08-13Rework postponed logicBoris Kolpackov1-0/+1
Specifically, now postponed is only used by the execution mode logic and rules should not return it directly.
2015-07-31Essential install module functionalityBoris Kolpackov1-0/+3
2015-07-24Add support for generated test input/outputBoris Kolpackov1-1/+2
2015-07-21Test module genesisBoris Kolpackov1-15/+9
2015-07-21Add alias{} target type, use as base for dir{}Boris Kolpackov1-4/+5
2015-07-15Implement project-qualified names/prerequisites, two-stage importBoris Kolpackov1-1/+6
2015-07-13Make subprojects list of name=subdir pairsBoris Kolpackov1-0/+4
2015-07-10Implement automatic subproject discoveryBoris Kolpackov1-0/+24
Currently we only capture their directories without the project names. We will need project names when we hook import search into this.
2015-07-07Rework module architectureBoris Kolpackov1-1/+37
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-06-18Move path and filesystem from build2 to libbutlBoris Kolpackov1-0/+1
2015-05-11Correct copyrightBoris Kolpackov1-1/+1
2015-04-20Automatically decide when to print relative/absolute pathsBoris Kolpackov1-13/+3
2015-04-15New variables architectureBoris Kolpackov1-2/+2
Now operator[] is only used for lookup.
2015-04-13Add separate type to represent directory pathsBoris Kolpackov1-49/+16
2015-04-07Provide more convenient access to root scopeBoris Kolpackov1-6/+6
2015-04-02Handle "nothing to be done" case for disfigureBoris Kolpackov1-1/+1
2015-03-31Rename root_scope to global_scopeBoris Kolpackov1-7/+7
To avoid confusion with project's root scopes.
2015-03-27Rework dependency state dump supportBoris Kolpackov1-6/+13
We now have a combined (scopes, variables, and targets) dump.
2015-03-25Configure/disfigure src_root saving/removing support; fsdir{} injectionBoris Kolpackov1-0/+57
We can now build out-of-tree.
2015-03-13Add support for "first" and "last" execution modesBoris Kolpackov1-0/+3
2015-03-10Further operation implementationBoris Kolpackov1-3/+0
2015-03-09Add meta/operation lists, lift operations in buildspecBoris Kolpackov1-0/+3
2015-03-04Move roots and bases to appropriate scopesBoris Kolpackov1-8/+34
2015-03-02Clean up clang warningsBoris Kolpackov1-2/+2
2015-02-26Support for scope parents, initial variable supportBoris Kolpackov1-2/+0
2015-02-24Use prefix_map for scopes, establish root scopeBoris Kolpackov1-0/+2
2015-02-23Redo rule match/build logicBoris Kolpackov1-19/+1
Now the rule is fully responsible for searching, matching, and building of prerequisites.
2015-02-19Add support for sourcing/including buildfiles, print, dir{} aliasBoris Kolpackov1-0/+15
2015-01-14Track file extension in target, prerequisiteBoris Kolpackov1-2/+2
2015-01-08Implement tracing supportBoris Kolpackov1-0/+36
Also use to-relative path translation in diagnostics.
2015-01-05Determine work, home, and {src,out}_{root,base} directoriesBoris Kolpackov1-0/+19