diff options
| author | Fumitoshi Ukai <fumitoshi.ukai@gmail.com> | 2015-06-30 09:52:13 +0900 |
|---|---|---|
| committer | Fumitoshi Ukai <fumitoshi.ukai@gmail.com> | 2015-06-30 14:12:51 +0900 |
| commit | c916ea2b4d2fa35794c93beba5ed51542ee029d0 (patch) | |
| tree | 80caecc25d24b1f02aacb5bcce6fc2417ba95199 /ninja.go | |
| parent | 65489db8a8c51e7e143e19a040bdec28ee884d34 (diff) | |
order only is not attribute of dep node.
Diffstat (limited to 'ninja.go')
| -rw-r--r-- | ninja.go | 21 |
1 files changed, 14 insertions, 7 deletions
@@ -207,13 +207,12 @@ func (n *ninjaGenerator) emitBuild(output, rule, dep string) { func getDepString(node *DepNode) string { var deps []string - var orderOnlys []string for _, d := range node.Deps { - if d.IsOrderOnly { - orderOnlys = append(orderOnlys, d.Output) - } else { - deps = append(deps, d.Output) - } + deps = append(deps, d.Output) + } + var orderOnlys []string + for _, d := range node.OrderOnlys { + orderOnlys = append(orderOnlys, d.Output) } dep := "" if len(deps) > 0 { @@ -231,7 +230,7 @@ func (n *ninjaGenerator) emitNode(node *DepNode) error { } n.done[node.Output] = true - if len(node.Cmds) == 0 && len(node.Deps) == 0 && !node.IsPhony { + if len(node.Cmds) == 0 && len(node.Deps) == 0 && len(node.OrderOnlys) == 0 && !node.IsPhony { return nil } @@ -243,6 +242,7 @@ func (n *ninjaGenerator) emitNode(node *DepNode) error { useLocalPool := false if len(runners) > 0 { ruleName = n.genRuleName() + fmt.Fprintf(n.f, "\n# rule for %s\n", node.Output) fmt.Fprintf(n.f, "rule %s\n", ruleName) fmt.Fprintf(n.f, " description = build $out\n") @@ -272,6 +272,7 @@ func (n *ninjaGenerator) emitNode(node *DepNode) error { if useLocalPool { fmt.Fprintf(n.f, " pool = local_pool\n") } + fmt.Fprintf(n.f, "\n") for _, d := range node.Deps { err := n.emitNode(d) @@ -279,6 +280,12 @@ func (n *ninjaGenerator) emitNode(node *DepNode) error { return err } } + for _, d := range node.OrderOnlys { + err := n.emitNode(d) + if err != nil { + return err + } + } return nil } |
