X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=src%2Fvpp-api%2Fvapi%2Fvapi_cpp_gen.py;h=adf85c753d86ac34a8fea5bff6c85b0416da2dfe;hb=4c64b6edc86f7732f4a160b948b3386e4021a265;hp=3010f3e1919daa264d4adc77486602df7d4c415c;hpb=958b750ceaf6c20466bc4e5605da39b4490847d9;p=vpp.git diff --git a/src/vpp-api/vapi/vapi_cpp_gen.py b/src/vpp-api/vapi/vapi_cpp_gen.py index 3010f3e1919..adf85c753d8 100755 --- a/src/vpp-api/vapi/vapi_cpp_gen.py +++ b/src/vpp-api/vapi/vapi_cpp_gen.py @@ -10,38 +10,22 @@ from vapi_json_parser import JsonParser class CppField(CField): - def __init__( - self, - field_name, - field_type, - array_len=None, - nelem_field=None): - super(CppField, self).__init__( - field_name, field_type, array_len, nelem_field) + pass class CppStruct(CStruct): - def __init__(self, name, fields): - super(CppStruct, self).__init__(name, fields) + pass class CppSimpleType (CSimpleType): - def __init__(self, name): - super(CppSimpleType, self).__init__(name) + pass class CppStructType (CStructType, CppStruct): - def __init__(self, definition, typedict, field_class): - super(CppStructType, self).__init__(definition, typedict, field_class) + pass class CppMessage (CMessage): - def __init__(self, logger, definition, typedict, - struct_type_class, simple_type_class, field_class): - super(CppMessage, self).__init__( - logger, definition, typedict, struct_type_class, - simple_type_class, field_class) - def get_swap_to_be_template_instantiation(self): return "\n".join([ "template <> inline void vapi_swap_to_be<%s>(%s *msg)" % @@ -145,8 +129,9 @@ def gen_json_header(parser, logger, j, io, gen_h_prefix, add_debug_comments): logger.info("Generating header `%s'" % io.name) orig_stdout = sys.stdout sys.stdout = io + d, f = os.path.split(j) include_guard = "__included_hpp_%s" % ( - j.replace(".", "_").replace("/", "_").replace("-", "_")) + f.replace(".", "_").replace("/", "_").replace("-", "_")) print("#ifndef %s" % include_guard) print("#define %s" % include_guard) print("") @@ -208,7 +193,7 @@ def json_to_cpp_header_name(json_name): raise Exception("Unexpected json name `%s'!" % json_name) -def gen_cpp_headers(parser, logger, prefix, gen_h_prefix, +def gen_cpp_headers(parser, logger, prefix, gen_h_prefix, remove_path, add_debug_comments=False): if prefix == "" or prefix is None: prefix = "" @@ -219,7 +204,11 @@ def gen_cpp_headers(parser, logger, prefix, gen_h_prefix, else: gen_h_prefix = "%s/" % gen_h_prefix for j in parser.json_files: - with open('%s%s' % (prefix, json_to_cpp_header_name(j)), "w") as io: + if remove_path: + d, f = os.path.split(j) + else: + f = j + with open('%s%s' % (prefix, json_to_cpp_header_name(f)), "w") as io: gen_json_header(parser, logger, j, io, gen_h_prefix, add_debug_comments) @@ -249,6 +238,8 @@ if __name__ == '__main__': help='path prefix') argparser.add_argument('--gen-h-prefix', action='store', default=None, help='generated C header prefix') + argparser.add_argument('--remove-path', action='store_true', + help='remove path from filename') args = argparser.parse_args() jsonparser = JsonParser(logger, args.files, @@ -257,7 +248,8 @@ if __name__ == '__main__': field_class=CppField, message_class=CppMessage) - gen_cpp_headers(jsonparser, logger, args.prefix, args.gen_h_prefix) + gen_cpp_headers(jsonparser, logger, args.prefix, args.gen_h_prefix, + args.remove_path) for e in jsonparser.exceptions: - logger.error(e) + logger.warning(e)