aboutsummaryrefslogtreecommitdiff
path: root/build/algorithm.cxx
AgeCommit message (Collapse)AuthorFilesLines
2015-07-22Fix postponed re-examination logicBoris Kolpackov1-16/+14
Now postponed takes precedence over changed.
2015-07-21Improve nested operations supportBoris Kolpackov1-76/+89
The idea is this: we need to be able to override "conditional, inner for outer" recipes with the "unconditional inner" ones. Here is the concrete scenario: we have {update, test} action and the lib{} target that is both mentioned as a prerequisite of ./ and exe{}, which is a test. At first, we want to ignore lib{} when reached as a prerequisite of ./. But then we get to it via exe{} (which is a test and thus should be updated). At this point we should override the recipe for lib{} with the one that would update it rather than ignore.
2015-07-20Implement pre/post operation supportBoris Kolpackov1-8/+12
Also, extend execution mode/postponed logic to propagate the postponed target state. At the top, we now re-try postponed targets. This results in the expected behavior when, for example, cleaning two targets with one depending on the other.
2015-07-15Implement project-qualified names/prerequisites, two-stage importBoris Kolpackov1-0/+7
2015-07-07Rework module architectureBoris Kolpackov1-93/+110
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-07-01Group state supportBoris Kolpackov1-5/+23
2015-07-01Cleanup group "see through" designBoris Kolpackov1-19/+25
2015-06-30Group "see through" iteration, take 1Boris Kolpackov1-6/+6
2015-06-26Part two of dependency injection with auto-generation supportBoris Kolpackov1-2/+2
2015-06-25Part one of dependency injection with auto-generation supportBoris Kolpackov1-2/+2
2015-06-24First take on the cli module plus necessary infrastructureBoris Kolpackov1-14/+68
2015-06-22Remove prerequisite rewriting from inject_parent_fsdir()Boris Kolpackov1-19/+4
2015-06-18Move path and filesystem from build2 to libbutlBoris Kolpackov1-1/+0
2015-06-18Move some utilities from build2 to libbutlBoris Kolpackov1-0/+3
2015-05-22Get rid of gcc, clang warnings (-Wall)Boris Kolpackov1-1/+3
2015-05-11Correct copyrightBoris Kolpackov1-1/+1
2015-04-28Second iteration over import/export supportBoris Kolpackov1-1/+1
2015-04-26Rework resolved prerequisite targets storageBoris Kolpackov1-39/+158
2015-04-24Implement lib/liba/libso{} target group, shared/static library buildBoris Kolpackov1-112/+3
2015-04-17Add support for target groups, use to handle obj/obja/objso object targetsBoris Kolpackov1-28/+48
2015-04-13Add separate type to represent directory pathsBoris Kolpackov1-3/+3
2015-04-07Provide more convenient access to root scopeBoris Kolpackov1-3/+3
2015-04-02Handle "nothing to be done" case for disfigureBoris Kolpackov1-1/+1
2015-04-02Implement translation of meta/operations to natural languageBoris Kolpackov1-14/+16
2015-03-25Configure/disfigure src_root saving/removing support; fsdir{} injectionBoris Kolpackov1-32/+37
We can now build out-of-tree.
2015-03-13Add support for "first" and "last" execution modesBoris Kolpackov1-1/+20
2015-03-13Add postponed recipe execution supportBoris Kolpackov1-2/+4
2015-03-12Implement clean operationBoris Kolpackov1-13/+86
2015-03-10Further operation implementationBoris Kolpackov1-33/+48
2015-03-02Cleanup to support clang compilationBoris Kolpackov1-1/+1
2015-03-02Clean up clang warningsBoris Kolpackov1-1/+1
2015-02-26Support for scope parents, initial variable supportBoris Kolpackov1-1/+1
2015-02-24Make empty key to always be prefix in prefix_mapBoris Kolpackov1-5/+2
2015-02-23Rename "select" to "apply"Boris Kolpackov1-2/+2
2015-02-23Redo rule match/build logicBoris Kolpackov1-26/+115
Now the rule is fully responsible for searching, matching, and building of prerequisites.
2015-02-20Rename 'directory' to 'dir' in target, prerequisiteBoris Kolpackov1-3/+3
2015-01-20Diagnostic infrastructure revampBoris Kolpackov1-21/+20
2015-01-16Implement rule chaining for cxx::linkBoris Kolpackov1-73/+15
2015-01-15Implement rule ambiguity detectionBoris Kolpackov1-9/+96
Also establish the infrastructure for rule hinting
2015-01-14Track file extension in target, prerequisiteBoris Kolpackov1-3/+24
2015-01-08Implement tracing supportBoris Kolpackov1-3/+6
Also use to-relative path translation in diagnostics.
2014-12-18Initial support for loading dependency info from buildfilesBoris Kolpackov1-0/+93
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