Age | Commit message (Collapse) | Author | Files | Lines |
|
|
|
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).
|
|
We now also check target type/pattern-specific variables. So the new
usage is:
cli{*}: extension = cli
|
|
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.
|
|
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.
|
|
|
|
|
|
|
|
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.
|
|
|
|
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.
|
|
|
|
Now operator[] is only used for lookup.
|
|
|
|
|
|
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.
|
|
|
|
To avoid confusion with project's root scopes.
|
|
This is the initial groundwork for the configuration support.
|
|
|
|
|
|
|
|
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
|