aboutsummaryrefslogtreecommitdiff
path: root/build/target
AgeCommit message (Collapse)AuthorFilesLines
2015-12-16Rely on as few C++14 features as possibleBoris Kolpackov1-4/+5
2015-12-12Implement installation of prerequisite shared librariesBoris Kolpackov1-1/+7
2015-12-02Redo extension derivation for file{}, doc{}, and cli{}Boris Kolpackov1-2/+3
We now first check the 'extension' variable, then use the default.
2015-12-02Implement optional module loadingBoris Kolpackov1-2/+2
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).
2015-12-01Reimplement define as dynamic derivation rather than aliasBoris Kolpackov1-4/+3
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.
2015-12-01Implement support for definition target type aliasesBoris Kolpackov1-11/+24
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.
2015-11-30Don't try to install targets from other projectsBoris Kolpackov1-0/+11
2015-11-30Tighten unresolved group logicBoris Kolpackov1-14/+19
Now a wildcard/fallback rule should explicitly detect and handle unresolved situation.
2015-11-29Allow for target group members to remain unresolvedBoris Kolpackov1-6/+10
This, for example, can happen when we have a fallback rule for dist(update) or configure(update).
2015-08-27Dist module/meta-operation initial implementationBoris Kolpackov1-0/+10
2015-08-24New variable architectureBoris Kolpackov1-11/+11
2015-08-14Don't short-cut to group_state if recipe is group_recipeBoris Kolpackov1-11/+7
This way we mess up the dependents count.
2015-08-14Fix several issues in outer operation recipe override logicBoris Kolpackov1-23/+1
2015-08-13Rework postponed logicBoris Kolpackov1-19/+12
Specifically, now postponed is only used by the execution mode logic and rules should not return it directly.
2015-08-03match_only rework, part 2Boris Kolpackov1-4/+10
2015-07-31Essential install module functionalityBoris Kolpackov1-0/+68
2015-07-29Initial support for target type/pattern-specific variablesBoris Kolpackov1-2/+3
2015-07-24Add support for generated test input/outputBoris Kolpackov1-4/+18
2015-07-21Improve nested operations supportBoris Kolpackov1-5/+9
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.
2015-07-21Add alias{} target type, use as base for dir{}Boris Kolpackov1-4/+17
2015-07-20Implement pre/post operation supportBoris Kolpackov1-3/+3
Also, extend execution mode/postponed logic to propagate the postponed target state. At the top, we now re-try postponed targets. This results in the expected behavior when, for example, cleaning two targets with one depending on the other.
2015-07-20Implement support for importing installed librariesBoris Kolpackov1-0/+19
2015-07-15Implement project-qualified names/prerequisites, two-stage importBoris Kolpackov1-1/+1
2015-07-14Fix postfix operator++/-- implementationsBoris Kolpackov1-3/+3
2015-07-14Add notion of strong/weak amalgamation, make strong new clean boundaryBoris Kolpackov1-0/+7
2015-07-08Implement automatic amalgamation discoveryBoris Kolpackov1-8/+2
2015-07-07Rework module architectureBoris Kolpackov1-27/+3
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-0/+6
2015-07-01Clean up group state, mtime designBoris Kolpackov1-5/+31
2015-07-01Group state supportBoris Kolpackov1-10/+35
2015-07-01Cleanup group "see through" designBoris Kolpackov1-138/+175
2015-06-30Group "see through" iteration, take 1Boris Kolpackov1-6/+219
2015-06-26Part two of dependency injection with auto-generation supportBoris Kolpackov1-0/+3
2015-06-25Part one of dependency injection with auto-generation supportBoris Kolpackov1-0/+3
2015-06-24First take on the cli module plus necessary infrastructureBoris Kolpackov1-14/+66
2015-06-22Remove prerequisite rewriting for c/cxx chainingBoris Kolpackov1-2/+1
2015-06-18Move path_mtime to filesystem, rename file_mtime, follow symlinksBoris Kolpackov1-4/+4
2015-06-18Move path and filesystem from build2 to libbutlBoris Kolpackov1-3/+1
2015-06-18Move map-key from build2 to libbutl, rename multi-indexBoris Kolpackov1-3/+3
2015-06-18Move some utilities from build2 to libbutlBoris Kolpackov1-8/+8
2015-05-22Avoid relying on static initialization orderBoris Kolpackov1-7/+22
2015-05-11Correct copyrightBoris Kolpackov1-1/+1
2015-04-28Second iteration over import/export supportBoris Kolpackov1-3/+3
2015-04-26Rework resolved prerequisite targets storageBoris Kolpackov1-33/+31
2015-04-24Implement lib/liba/libso{} target group, shared/static library buildBoris Kolpackov1-23/+146
2015-04-17Search in target group during variable lookupBoris Kolpackov1-5/+8
2015-04-17Add support for target groups, use to handle obj/obja/objso object targetsBoris Kolpackov1-60/+84
2015-04-15New variables architectureBoris Kolpackov1-9/+33
Now operator[] is only used for lookup.
2015-04-15Initial library supportBoris Kolpackov1-3/+34
2015-04-13Add separate type to represent directory pathsBoris Kolpackov1-7/+7