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).
|
|
New syntax:
define cli: file
The rationale is we need to be able to assign the file extension (using
type/pattern-specific variables). And if it is an alias, we will assign
it to the original target type.
Note that we could still support aliases if we need to. Will need to
bring back the id member in target_type that would normally point to
itself but for an alias would point to the origin.
|
|
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 a wildcard/fallback rule should explicitly detect and handle unresolved
situation.
|
|
This happens when we use the group only for setting cli.options.
Not very clean.
|
|
This, for example, can happen when we have a fallback rule for dist(update)
or configure(update).
|
|
|
|
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 we search and match (but do not execute) a rule for every
operation supported by the project.
|
|
|
|
|
|
|
|
|
|
|
|
Now postponed takes precedence over changed.
|
|
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.
|
|
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.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|