Age | Commit message (Collapse) | Author | Files | Lines |
|
|
|
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'.
|
|
The logic is as follows: if we have an explicit current directory
target, then that's the default target. Otherwise, we take the
first target and use it as a prerequisite to create an implicit
current directory target, effectively making it the default
target via an alias. If there are no targets in this buildfile,
then we don't do anything.
|
|
|
|
|
|
|
|
|
|
|
|
Now the rule is fully responsible for searching, matching, and building
of prerequisites.
|
|
|
|
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'}.
|
|
|
|
|
|
For example:
cxx{driver ../{foo bar}}
cxx{driver} ../cxx{foo bar}
|
|
|
|
|
|
Also use to-relative path translation in diagnostics.
|
|
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
|
|
|
|
g++-4.9 -std=c++14 -g -I../../.. -o driver driver.cxx ../../../build/lexer.cxx ../../../build/parser.cxx && ./driver
|