aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
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
2015-03-02Implement value lexing modeBoris Kolpackov2-20/+67
So that we can do foo=g++ without having to resort to quoting
2015-03-02Clean up clang warningsBoris Kolpackov7-18/+19
2015-02-27Variable assignment, appending supportBoris Kolpackov20-54/+493
2015-02-26Support for scope parents, initial variable supportBoris Kolpackov9-40/+134
2015-02-24Sort out diagnostics for mkdirBoris Kolpackov4-12/+54
2015-02-24Use prefix_map for scopes, establish root scopeBoris Kolpackov11-14/+120
2015-02-24Make empty key to always be prefix in prefix_mapBoris Kolpackov3-14/+15
2015-02-24Add fsdir{} for creating directoriesBoris Kolpackov5-1/+103
2015-02-23Clean up file namesBoris Kolpackov6-7/+7
2015-02-23Rename "select" to "apply"Boris Kolpackov5-12/+12
2015-02-23Don't create new target for alias/action/dir prerequisiteBoris Kolpackov2-3/+18
2015-02-23Redo rule match/build logicBoris Kolpackov22-416/+891
Now the rule is fully responsible for searching, matching, and building of prerequisites.
2015-02-20Get rid of parse_ prefix in parser function namesBoris Kolpackov2-32/+32
2015-02-20Rename 'directory' to 'dir' in target, prerequisiteBoris Kolpackov7-25/+23
2015-02-20Rework extension handling logicBoris Kolpackov7-64/+55
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'}.
2015-02-19Add support for sourcing/including buildfiles, print, dir{} aliasBoris Kolpackov25-121/+542
2015-01-20Diagnostic infrastructure revampBoris Kolpackov24-437/+662
2015-01-16Add support for directory prefixesBoris Kolpackov5-19/+73
For example: cxx{driver ../{foo bar}} cxx{driver} ../cxx{foo bar}
2015-01-16Implement rule chaining for cxx::linkBoris Kolpackov19-229/+387
2015-01-15Implement rule ambiguity detectionBoris Kolpackov6-21/+111
Also establish the infrastructure for rule hinting
2015-01-15Allow specifying prefix_map delimiter as template argumentBoris Kolpackov2-10/+31
2015-01-14Implement prefix_mapBoris Kolpackov4-0/+319
2015-01-14Track file extension in target, prerequisiteBoris Kolpackov14-34/+244
2015-01-08Implement tracing supportBoris Kolpackov18-28/+544
Also use to-relative path translation in diagnostics.
2015-01-05Rename 'bd' to 'b'Boris Kolpackov3-4/+7
What the heck, let's be bold, right?
2015-01-05Determine work, home, and {src,out}_{root,base} directoriesBoris Kolpackov6-4/+160
2014-12-18Initial support for loading dependency info from buildfilesBoris Kolpackov22-185/+783
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
2014-12-15Parse directory scopesBoris Kolpackov7-72/+174
2014-12-12Initial buildfile parser implementationBoris Kolpackov8-38/+327
g++-4.9 -std=c++14 -g -I../../.. -o driver driver.cxx ../../../build/lexer.cxx ../../../build/parser.cxx && ./driver
2014-12-12Add test for lexerBoris Kolpackov3-2/+131
g++-4.9 -std=c++14 -g -I../../.. -o driver driver.cxx ../../../build/lexer.cxx && ./driver
2014-12-11Initial lexer implementation for buildfilesBoris Kolpackov6-1/+438
2014-12-11Improve diagnostics and error handlingBoris Kolpackov4-56/+143
g++-4.9 -std=c++14 -g -I.. -o bd bd.cxx target.cxx native.cxx rule.cxx cxx/rule.cxx cxx/target.cxx process.cxx timestamp.cxx path.cxx
2014-12-11Initial implementation of dependency injection (g++ -M output)Boris Kolpackov3-8/+155
2014-12-10Add rulesBoris Kolpackov13-93/+792
g++-4.9 -std=c++11 -g -I.. -o bd bd.cxx target.cxx native.cxx rule.cxx cxx/rule.cxx cxx/target.cxx process.cxx timestamp.cxx path.cxx
2014-12-08Add filesystem path classBoris Kolpackov4-0/+716
g++-4.9 -std=c++11 -I.. -o bd bd.cxx process.cxx timestamp.cxx path.cxx
2014-12-05Add support for starting processes, getting file timestampsBoris Kolpackov6-13/+690
g++-4.9 -std=c++11 -I.. -o bd bd.cxx process.cxx timestamp.cxx
2014-12-03Add .gitignore filesBoris Kolpackov2-0/+8
2014-12-03Initial build tool sketch (simulation)Boris Kolpackov2-0/+132
To build: g++-4.9 -std=c++11 -g -I.. -o bd bd.cxx
2014-12-03Add licenseBoris Kolpackov1-0/+20
2014-12-03Start build2Boris Kolpackov1-0/+1