<%! 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(src): out = [] for f in src: if os.path.splitext(f)[1] != '.proto': out.append(f) return out %> ${json.dumps([{"name": tgt.name, "language": tgt.language, "src": sorted( no_protos(tgt.src) + tgt.get('public_headers', []) + tgt.get('headers', [])), "headers": sorted( tgt.get('public_headers', []) + tgt.get('headers', []) + proto_headers(tgt.src)), "deps": sorted(tgt.get('deps', []))} for tgt in (targets + libs)], sort_keys=True, indent=2)}