aboutsummaryrefslogtreecommitdiff
path: root/build/scope
AgeCommit message (Collapse)AuthorFilesLines
2016-01-05Rename build directory/namespace to build2Boris Kolpackov1-312/+0
2015-12-12Implement installation of prerequisite shared librariesBoris Kolpackov1-2/+16
2015-12-03Fix reverse lookup of extension to target type in C++ dep extractionBoris Kolpackov1-0/+14
2015-12-02Implement optional module loadingBoris Kolpackov1-6/+15
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-2/+13
We now also check target type/pattern-specific variables. So the new usage is: cli{*}: extension = cli
2015-12-01Implement support for definition target type aliasesBoris Kolpackov1-2/+4
For example: define cli=file Currently, the semantics is that of a real alias with only name differences that are used for display. See tests/define/buildfile for more use cases.
2015-08-31Rework scoping logicBoris Kolpackov1-15/+48
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-24New variable architectureBoris Kolpackov1-18/+18
2015-08-14Rework meta/operation registrationBoris Kolpackov1-2/+2
We now have global tables for meta/operation. Plus each can then be enabled on the per-project basis.
2015-07-29Initial support for target type/pattern-specific variablesBoris Kolpackov1-0/+4
2015-07-14Add notion of strong/weak amalgamation, make strong new clean boundaryBoris Kolpackov1-1/+28
2015-07-08Implement automatic amalgamation discoveryBoris Kolpackov1-8/+2
2015-07-07Rework module architectureBoris Kolpackov1-4/+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-6/+5
2015-05-25Store pointer to map key rather than iteratorBoris Kolpackov1-5/+3
Clang's libc++ complains about a map iterator instantiation that has an incomplete value. At the same time, it appears that references (and thus pointers) to map elements are also stable.
2015-05-11Correct copyrightBoris Kolpackov1-1/+1
2015-04-28Remove sourcing triggers support for nowBoris Kolpackov1-17/+0
2015-04-26Rework resolved prerequisite targets storageBoris Kolpackov1-1/+1
2015-04-20Merge config.cxx.* variables into cxx.* when loading cxx moduleBoris Kolpackov1-7/+13
2015-04-15New variables architectureBoris Kolpackov1-11/+41
Now operator[] is only used for lookup.
2015-04-15Initial library supportBoris Kolpackov1-3/+6
2015-04-13Add separate type to represent directory pathsBoris Kolpackov1-11/+22
2015-04-13Add initial import supportBoris Kolpackov1-0/+16
2015-04-07Initial support for amalgamation/subprojectsBoris Kolpackov1-3/+7
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 Kolpackov1-16/+20
2015-03-31Rename root_scope to global_scopeBoris Kolpackov1-5/+5
To avoid confusion with project's root scopes.
2015-03-25Configure/disfigure src_root saving/removing support; fsdir{} injectionBoris Kolpackov1-7/+8
We can now build out-of-tree.
2015-03-24Make meta-operations control build loop; add disfigure skeletonBoris Kolpackov1-1/+6
2015-03-20New consolidated load/match/build loopBoris Kolpackov1-1/+7
2015-03-18Implement complete root/base detection, basic module supportBoris Kolpackov1-1/+18
This is the initial groundwork for the configuration support.
2015-03-09Add support for skipping already loaded/included buildfiles at top levelBoris Kolpackov1-0/+8
The idea is that a buildfile shall be included/loaded only once for any given out_root.
2015-03-04Move roots and bases to appropriate scopesBoris Kolpackov1-5/+5
2015-02-27Variable assignment, appending supportBoris Kolpackov1-3/+12
2015-02-26Support for scope parents, initial variable supportBoris Kolpackov1-9/+22
2015-02-24Use prefix_map for scopes, establish root scopeBoris Kolpackov1-4/+3
2014-12-18Initial support for loading dependency info from buildfilesBoris Kolpackov1-0/+59
Also a new iteration on the overall architecture. Now, for the first time, build can read the buildfile and build itself. g++-4.9 -std=c++14 -g -I.. -o bd bd.cxx algorithm.cxx scope.cxx parser.cxx lexer.cxx target.cxx prerequisite.cxx rule.cxx native.cxx cxx/target.cxx cxx/rule.cxx process.cxx timestamp.cxx path.cxx g++-4.9 -std=c++14 -g -I../../.. -o driver driver.cxx ../../../build/lexer.cxx g++-4.9 -std=c++14 -g -I../../.. -o driver driver.cxx ../../../build/lexer.cxx ../../../build/parser.cxx ../../../build/scope.cxx ../../../build/target.cxx ../../../build/native.cxx ../../../build/prerequisite.cxx ../../../build/path.cxx ../../../build/timestamp.cxx