summaryrefslogtreecommitdiff
path: root/rules/CC/IDE/RULES
diff options
context:
space:
mode:
Diffstat (limited to 'rules/CC/IDE/RULES')
-rw-r--r--rules/CC/IDE/RULES96
1 files changed, 96 insertions, 0 deletions
diff --git a/rules/CC/IDE/RULES b/rules/CC/IDE/RULES
new file mode 100644
index 0000000..dc4b607
--- /dev/null
+++ b/rules/CC/IDE/RULES
@@ -0,0 +1,96 @@
+{ "headers":
+ { "doc": ["Transitive public headers of C++ target"]
+ , "target_fields": ["proto", "deps"]
+ , "string_fields": ["stage"]
+ , "field_doc":
+ { "proto": ["The proto source files for creating cc bindings."]
+ , "deps": ["The targets to obtain the headers 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": ["./", "../proto", "library"]
+ , "service library": ["./", "../proto", "service library"]
+ }
+ }
+ }
+ , "imports": {"runfiles_list": ["./", "../..", "field_runfiles_list"]}
+ , "expression":
+ { "type": "let*"
+ , "bindings":
+ [ [ "stage"
+ , { "type": "join"
+ , "separator": "/"
+ , "$1": {"type": "FIELD", "name": "stage"}
+ }
+ ]
+ , [ "artifacts"
+ , { "type": "to_subdir"
+ , "subdir": {"type": "var", "name": "stage"}
+ , "$1":
+ { "type": "map_union"
+ , "$1":
+ { "type": "++"
+ , "$1":
+ [ { "type": "let*"
+ , "bindings": [["fieldname", "proto-deps"]]
+ , "body":
+ {"type": "CALL_EXPRESSION", "name": "runfiles_list"}
+ }
+ , { "type": "foreach"
+ , "var": "x"
+ , "range": {"type": "FIELD", "name": "proto-deps"}
+ , "body":
+ { "type": "DEP_PROVIDES"
+ , "provider": "compile-deps"
+ , "dep": {"type": "var", "name": "x"}
+ , "default":
+ { "type": "fail"
+ , "msg":
+ [ "Expected a library target, but got:"
+ , {"type": "var", "name": "x"}
+ ]
+ }
+ }
+ }
+ , { "type": "let*"
+ , "bindings": [["fieldname", "deps"]]
+ , "body":
+ {"type": "CALL_EXPRESSION", "name": "runfiles_list"}
+ }
+ , { "type": "foreach"
+ , "var": "x"
+ , "range": {"type": "FIELD", "name": "deps"}
+ , "body":
+ { "type": "DEP_PROVIDES"
+ , "provider": "compile-deps"
+ , "dep": {"type": "var", "name": "x"}
+ , "default":
+ { "type": "fail"
+ , "msg":
+ [ "Expected a library target, but got:"
+ , {"type": "var", "name": "x"}
+ ]
+ }
+ }
+ }
+ ]
+ }
+ }
+ }
+ ]
+ ]
+ , "body":
+ { "type": "RESULT"
+ , "artifacts": {"type": "var", "name": "artifacts"}
+ , "runfiles": {"type": "var", "name": "artifacts"}
+ }
+ }
+ }
+}