summaryrefslogtreecommitdiff
path: root/CC/proto/IDE/RULES
blob: 558e494b10d8d242f6e5246f68ade0cfa52433f3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
{ "headers":
  { "doc": ["Headers of C++ proto binding"]
  , "target_fields": ["proto"]
  , "string_fields": ["stage"]
  , "field_doc":
    { "proto": ["The proto source files to create the binding from."]
    , "stage":
      [ "The logical location of the header files. Individual directory"
      , "components are joined with \"/\"."
      ]
    }
  , "anonymous":
    { "proto-deps":
      { "target": "proto"
      , "provider": "proto"
      , "rule_map":
        { "library": ["./", "..", "library"]
        , "service library": ["./", "..", "service library"]
        }
      }
    }
  , "imports": {"runfiles": ["./", "../../..", "field_runfiles"]}
  , "expression":
    { "type": "let*"
    , "bindings":
      [ [ "stage"
        , { "type": "join"
          , "separator": "/"
          , "$1": {"type": "FIELD", "name": "stage"}
          }
        ]
      ]
    , "body":
      { "type": "RESULT"
      , "artifacts":
        { "type": "to_subdir"
        , "subdir": {"type": "var", "name": "stage"}
        , "$1":
          { "type": "map_union"
          , "$1":
            [ { "type": "let*"
              , "bindings": [["fieldname", "proto-deps"]]
              , "body": {"type": "CALL_EXPRESSION", "name": "runfiles"}
              }
            , { "type": "map_union"
              , "$1":
                { "type": "foreach"
                , "var": "x"
                , "range": {"type": "FIELD", "name": "proto-deps"}
                , "body":
                  { "type": "DEP_PROVIDES"
                  , "provider": "compile-deps"
                  , "dep": {"type": "var", "name": "x"}
                  }
                }
              }
            ]
          }
        }
      }
    }
  }
}