aboutsummaryrefslogtreecommitdiff
path: root/tests
AgeCommit message (Collapse)AuthorFilesLines
2015-09-09For newline escaping, ignore whole thing instead of making it newlineBoris Kolpackov5-0/+40
To capture literal newline, use quoting.
2015-09-09Add support for quoting directive namesBoris Kolpackov3-0/+12
Now only unquoted, literal names are recognized as directives, for example: 'print' = abc print $print
2015-09-09Add initial support for function calls: $func(a b c)Boris Kolpackov4-0/+26
Now it is just a stub that prints the function name and its argument. Currently only single argument can be passed (no value pack support yet).
2015-09-09Add support for evaluation contextBoris Kolpackov9-1/+72
For now it acts as just the value mode that can be enabled anywhere variable expansion is supported, for example: (foo=bar): And the primary use currently is to enable/test quoted and indirect variable expansion: "foo bar" = FOO BAR print $"foo bar" # Invalid. print $("foo bar") # Yeah, baby. foo = FOO FOO = foo print $($foo) Not that you should do something like this...
2015-09-09Reimplement double quote lexing to avoid "implied quote" trickBoris Kolpackov4-1/+9
2015-09-08Initial take on double quote supportBoris Kolpackov4-1/+55
Currently, $(foo)-style variable expansion is not supported.
2015-09-08Implement single quote supportBoris Kolpackov2-10/+48
2015-08-31Rework scoping logicBoris Kolpackov13-2/+125
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 Kolpackov9-1/+29
2015-08-24Test installing doc{} as prerequisite of exe{}Boris Kolpackov2-1/+2
2015-08-24Only treat name as directory if it is reversibleBoris Kolpackov2-0/+12
2015-08-24Add support for reversing project qualification to string valueBoris Kolpackov4-0/+38
2015-08-24New variable architectureBoris Kolpackov2-2/+2
2015-08-13Rework postponed logicBoris Kolpackov1-3/+3
Specifically, now postponed is only used by the execution mode logic and rules should not return it directly.
2015-08-03match_only and dependents count rework, part 1Boris Kolpackov1-1/+2
2015-07-31Essential install module functionalityBoris Kolpackov18-2/+69
2015-07-28Install module genesisBoris Kolpackov3-0/+12
2015-07-24Add support for generated test input/outputBoris Kolpackov7-1/+44
2015-07-24Further test module developmentBoris Kolpackov3-5/+7
2015-07-23Basic test supportBoris Kolpackov3-1/+15
2015-07-22Fix postponed re-examination logicBoris Kolpackov4-0/+14
Now postponed takes precedence over changed.
2015-07-21Test module genesisBoris Kolpackov4-0/+19
2015-07-20Implement support for importing installed librariesBoris Kolpackov3-0/+15
2015-07-13Implement subproject importBoris Kolpackov13-27/+29
2015-07-13Make subprojects list of name=subdir pairsBoris Kolpackov1-1/+1
2015-07-10Implement automatic subproject discoveryBoris Kolpackov8-3/+17
Currently we only capture their directories without the project names. We will need project names when we hook import search into this.
2015-07-08Implement automatic amalgamation discoveryBoris Kolpackov3-2/+2
2015-07-07Relax requirement on amalgamation src_root to track sub-projectBoris Kolpackov10-5/+29
2015-07-07Rework module architectureBoris Kolpackov2-1/+2
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-02Various improvements to cli moduleBoris Kolpackov1-4/+4
2015-07-02Make few existing file searching optimizationsBoris Kolpackov1-2/+5
2015-06-30Group "see through" iteration, take 1Boris Kolpackov2-5/+5
2015-06-26Part two of dependency injection with auto-generation supportBoris Kolpackov3-5/+18
2015-06-25Part one of dependency injection with auto-generation supportBoris Kolpackov21-12/+99
2015-06-24Implement proper target type detection in dependency injectionBoris Kolpackov2-2/+6
2015-06-24First take on the cli module plus necessary infrastructureBoris Kolpackov5-0/+20
2015-06-18Add headers to buildfiles, move tests/build/ to tests/Boris Kolpackov22-6/+18
2015-06-18Move path and filesystem from build2 to libbutlBoris Kolpackov4-231/+2
2015-06-18Move prefix-map from build2 to libbutlBoris Kolpackov3-155/+1
2015-05-11Correct copyrightBoris Kolpackov4-4/+4
2015-04-28Add support for iteration over path componentsBoris Kolpackov1-0/+34
2015-03-03Use names() to handle include/source, support include of directoriesBoris Kolpackov3-0/+6
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-02Cleanup to support clang compilationBoris Kolpackov1-6/+5
2015-02-26Support for scope parents, initial variable supportBoris Kolpackov1-21/+21
2015-02-24Make empty key to always be prefix in prefix_mapBoris Kolpackov1-7/+5
2015-02-23Clean up file namesBoris Kolpackov2-2/+2
2015-02-19Add support for sourcing/including buildfiles, print, dir{} aliasBoris Kolpackov14-0/+38
2015-01-20Diagnostic infrastructure revampBoris Kolpackov4-11/+12
2015-01-16Add support for directory prefixesBoris Kolpackov2-0/+8
For example: cxx{driver ../{foo bar}} cxx{driver} ../cxx{foo bar}
2015-01-16Implement rule chaining for cxx::linkBoris Kolpackov3-10/+3