%YAML 1.2 --- | <%! import json import os def proto_headers(src): out = [] for f in src: name, ext = os.path.splitext(f) if ext == '.proto': out.extend(fmt % name for fmt in ['%s.grpc.pb.h', '%s.pb.h']) return out def no_protos_filter(src): return os.path.splitext(src)[1] != '.proto' def no_third_party_filter(src): return not src.startswith('third_party/') def filter_srcs(srcs, filters): out = [] for s in srcs: filter_passes = (f(s) for f in filters) if all(filter_passes): out.append(s) return out %> ${json.dumps([{"name": tgt.name, "language": tgt.language, "src": sorted( filter_srcs(tgt.src, (no_protos_filter, no_third_party_filter)) + filter_srcs(tgt.get('public_headers', []), (no_protos_filter, no_third_party_filter)) + filter_srcs(tgt.get('headers', []), (no_third_party_filter,))), "headers": sorted( tgt.get('public_headers', []) + tgt.get('headers', []) + proto_headers(tgt.src)), "deps": sorted(tgt.get('deps', []))} for tgt in (targets + libs) if not tgt.boringssl and not tgt.zlib], sort_keys=True, indent=2)}