Constructs the dependency graph. properties: the build properties. targets: the targets to consider. If none is specified, uses all.
(self, properties = [], targets = [])
| 81 | self.command_line_free_features_ = v |
| 82 | |
| 83 | def construct (self, properties = [], targets = []): |
| 84 | """ Constructs the dependency graph. |
| 85 | properties: the build properties. |
| 86 | targets: the targets to consider. If none is specified, uses all. |
| 87 | """ |
| 88 | if not targets: |
| 89 | for name, project in self.projects ().projects (): |
| 90 | targets.append (project.target ()) |
| 91 | |
| 92 | property_groups = build_request.expand_no_defaults (properties) |
| 93 | |
| 94 | virtual_targets = [] |
| 95 | build_prop_sets = [] |
| 96 | for p in property_groups: |
| 97 | build_prop_sets.append (property_set.create (feature.split (p))) |
| 98 | |
| 99 | if not build_prop_sets: |
| 100 | build_prop_sets = [property_set.empty ()] |
| 101 | |
| 102 | for build_properties in build_prop_sets: |
| 103 | for target in targets: |
| 104 | result = target.generate (build_properties) |
| 105 | virtual_targets.extend (result.targets ()) |
| 106 | |
| 107 | actual_targets = [] |
| 108 | for virtual_target in virtual_targets: |
| 109 | actual_targets.extend (virtual_target.actualize ()) |
| 110 |