mirror of
https://github.com/yuzu-emu/unicorn.git
synced 2024-10-20 21:48:18 +02:00
qapi: Factor parse_command_line() out of the generators
Backports commit 2114f5a98d0d80774306279e1694de074ca86aa0 from qemu
This commit is contained in:
parent
f6a4f3033d
commit
9415f6e863
@ -11,9 +11,7 @@
|
|||||||
|
|
||||||
from ordereddict import OrderedDict
|
from ordereddict import OrderedDict
|
||||||
from qapi import *
|
from qapi import *
|
||||||
import sys
|
|
||||||
import os
|
import os
|
||||||
import getopt
|
|
||||||
import errno
|
import errno
|
||||||
|
|
||||||
def _generate_event_api_name(event_name, params):
|
def _generate_event_api_name(event_name, params):
|
||||||
@ -219,38 +217,10 @@ const char *%(event_enum_name)s_lookup[] = {
|
|||||||
|
|
||||||
# Start the real job
|
# Start the real job
|
||||||
|
|
||||||
try:
|
|
||||||
opts, args = getopt.gnu_getopt(sys.argv[1:], "chp:i:o:",
|
|
||||||
["source", "header", "prefix=",
|
|
||||||
"input-file=", "output-dir="])
|
|
||||||
except getopt.GetoptError, err:
|
|
||||||
print str(err)
|
|
||||||
sys.exit(1)
|
|
||||||
|
|
||||||
input_file = ""
|
|
||||||
output_dir = ""
|
|
||||||
prefix = ""
|
|
||||||
c_file = 'qapi-event.c'
|
c_file = 'qapi-event.c'
|
||||||
h_file = 'qapi-event.h'
|
h_file = 'qapi-event.h'
|
||||||
|
|
||||||
do_c = False
|
(input_file, output_dir, do_c, do_h, prefix, dummy) = parse_command_line()
|
||||||
do_h = False
|
|
||||||
|
|
||||||
for o, a in opts:
|
|
||||||
if o in ("-p", "--prefix"):
|
|
||||||
prefix = a
|
|
||||||
elif o in ("-i", "--input-file"):
|
|
||||||
input_file = a
|
|
||||||
elif o in ("-o", "--output-dir"):
|
|
||||||
output_dir = a + "/"
|
|
||||||
elif o in ("-c", "--source"):
|
|
||||||
do_c = True
|
|
||||||
elif o in ("-h", "--header"):
|
|
||||||
do_h = True
|
|
||||||
|
|
||||||
if not do_c and not do_h:
|
|
||||||
do_c = True
|
|
||||||
do_h = True
|
|
||||||
|
|
||||||
c_file = output_dir + prefix + c_file
|
c_file = output_dir + prefix + c_file
|
||||||
h_file = output_dir + prefix + h_file
|
h_file = output_dir + prefix + h_file
|
||||||
|
@ -11,9 +11,7 @@
|
|||||||
|
|
||||||
from ordereddict import OrderedDict
|
from ordereddict import OrderedDict
|
||||||
from qapi import *
|
from qapi import *
|
||||||
import sys
|
|
||||||
import os
|
import os
|
||||||
import getopt
|
|
||||||
import errno
|
import errno
|
||||||
|
|
||||||
def generate_fwd_struct(name, members, builtin_type=False):
|
def generate_fwd_struct(name, members, builtin_type=False):
|
||||||
@ -265,42 +263,17 @@ void qapi_free_%(name)s(%(c_type)s obj)
|
|||||||
c_type=c_type(name), name=c_name(name))
|
c_type=c_type(name), name=c_name(name))
|
||||||
return ret
|
return ret
|
||||||
|
|
||||||
|
|
||||||
try:
|
|
||||||
opts, args = getopt.gnu_getopt(sys.argv[1:], "chbp:i:o:",
|
|
||||||
["source", "header", "builtins",
|
|
||||||
"prefix=", "input-file=", "output-dir="])
|
|
||||||
except getopt.GetoptError, err:
|
|
||||||
print str(err)
|
|
||||||
sys.exit(1)
|
|
||||||
|
|
||||||
output_dir = ""
|
|
||||||
input_file = ""
|
|
||||||
prefix = ""
|
|
||||||
c_file = 'qapi-types.c'
|
c_file = 'qapi-types.c'
|
||||||
h_file = 'qapi-types.h'
|
h_file = 'qapi-types.h'
|
||||||
|
|
||||||
do_c = False
|
|
||||||
do_h = False
|
|
||||||
do_builtins = False
|
do_builtins = False
|
||||||
|
|
||||||
for o, a in opts:
|
(input_file, output_dir, do_c, do_h, prefix, opts) = \
|
||||||
if o in ("-p", "--prefix"):
|
parse_command_line("b", ["builtins"])
|
||||||
prefix = a
|
|
||||||
elif o in ("-i", "--input-file"):
|
|
||||||
input_file = a
|
|
||||||
elif o in ("-o", "--output-dir"):
|
|
||||||
output_dir = a + "/"
|
|
||||||
elif o in ("-c", "--source"):
|
|
||||||
do_c = True
|
|
||||||
elif o in ("-h", "--header"):
|
|
||||||
do_h = True
|
|
||||||
elif o in ("-b", "--builtins"):
|
|
||||||
do_builtins = True
|
|
||||||
|
|
||||||
if not do_c and not do_h:
|
for o, a in opts:
|
||||||
do_c = True
|
if o in ("-b", "--builtins"):
|
||||||
do_h = True
|
do_builtins = True
|
||||||
|
|
||||||
c_file = output_dir + prefix + c_file
|
c_file = output_dir + prefix + c_file
|
||||||
h_file = output_dir + prefix + h_file
|
h_file = output_dir + prefix + h_file
|
||||||
|
@ -15,9 +15,7 @@
|
|||||||
from ordereddict import OrderedDict
|
from ordereddict import OrderedDict
|
||||||
from qapi import *
|
from qapi import *
|
||||||
import re
|
import re
|
||||||
import sys
|
|
||||||
import os
|
import os
|
||||||
import getopt
|
|
||||||
import errno
|
import errno
|
||||||
|
|
||||||
implicit_structs = []
|
implicit_structs = []
|
||||||
@ -378,41 +376,17 @@ void visit_type_%(name)s(Visitor *m, %(name)s *obj, const char *name, Error **er
|
|||||||
''',
|
''',
|
||||||
name=c_name(name))
|
name=c_name(name))
|
||||||
|
|
||||||
try:
|
|
||||||
opts, args = getopt.gnu_getopt(sys.argv[1:], "chbp:i:o:",
|
|
||||||
["source", "header", "builtins", "prefix=",
|
|
||||||
"input-file=", "output-dir="])
|
|
||||||
except getopt.GetoptError, err:
|
|
||||||
print str(err)
|
|
||||||
sys.exit(1)
|
|
||||||
|
|
||||||
input_file = ""
|
|
||||||
output_dir = ""
|
|
||||||
prefix = ""
|
|
||||||
c_file = 'qapi-visit.c'
|
c_file = 'qapi-visit.c'
|
||||||
h_file = 'qapi-visit.h'
|
h_file = 'qapi-visit.h'
|
||||||
|
|
||||||
do_c = False
|
|
||||||
do_h = False
|
|
||||||
do_builtins = False
|
do_builtins = False
|
||||||
|
|
||||||
for o, a in opts:
|
(input_file, output_dir, do_c, do_h, prefix, opts) = \
|
||||||
if o in ("-p", "--prefix"):
|
parse_command_line("b", ["builtins"])
|
||||||
prefix = a
|
|
||||||
elif o in ("-i", "--input-file"):
|
|
||||||
input_file = a
|
|
||||||
elif o in ("-o", "--output-dir"):
|
|
||||||
output_dir = a + "/"
|
|
||||||
elif o in ("-c", "--source"):
|
|
||||||
do_c = True
|
|
||||||
elif o in ("-h", "--header"):
|
|
||||||
do_h = True
|
|
||||||
elif o in ("-b", "--builtins"):
|
|
||||||
do_builtins = True
|
|
||||||
|
|
||||||
if not do_c and not do_h:
|
for o, a in opts:
|
||||||
do_c = True
|
if o in ("-b", "--builtins"):
|
||||||
do_h = True
|
do_builtins = True
|
||||||
|
|
||||||
c_file = output_dir + prefix + c_file
|
c_file = output_dir + prefix + c_file
|
||||||
h_file = output_dir + prefix + h_file
|
h_file = output_dir + prefix + h_file
|
||||||
|
@ -13,6 +13,7 @@
|
|||||||
|
|
||||||
import re
|
import re
|
||||||
from ordereddict import OrderedDict
|
from ordereddict import OrderedDict
|
||||||
|
import getopt
|
||||||
import os
|
import os
|
||||||
import sys
|
import sys
|
||||||
import string
|
import string
|
||||||
@ -977,3 +978,42 @@ def guardend(name):
|
|||||||
|
|
||||||
''',
|
''',
|
||||||
name=guardname(name))
|
name=guardname(name))
|
||||||
|
|
||||||
|
def parse_command_line(extra_options = "", extra_long_options = []):
|
||||||
|
|
||||||
|
try:
|
||||||
|
opts, args = getopt.gnu_getopt(sys.argv[1:],
|
||||||
|
"chp:i:o:" + extra_options,
|
||||||
|
["source", "header", "prefix=",
|
||||||
|
"input-file=", "output-dir="]
|
||||||
|
+ extra_long_options)
|
||||||
|
except getopt.GetoptError, err:
|
||||||
|
print str(err)
|
||||||
|
sys.exit(1)
|
||||||
|
|
||||||
|
output_dir = ""
|
||||||
|
prefix = ""
|
||||||
|
do_c = False
|
||||||
|
do_h = False
|
||||||
|
extra_opts = []
|
||||||
|
|
||||||
|
for oa in opts:
|
||||||
|
o, a = oa
|
||||||
|
if o in ("-p", "--prefix"):
|
||||||
|
prefix = a
|
||||||
|
elif o in ("-i", "--input-file"):
|
||||||
|
input_file = a
|
||||||
|
elif o in ("-o", "--output-dir"):
|
||||||
|
output_dir = a + "/"
|
||||||
|
elif o in ("-c", "--source"):
|
||||||
|
do_c = True
|
||||||
|
elif o in ("-h", "--header"):
|
||||||
|
do_h = True
|
||||||
|
else:
|
||||||
|
extra_opts.append(oa)
|
||||||
|
|
||||||
|
if not do_c and not do_h:
|
||||||
|
do_c = True
|
||||||
|
do_h = True
|
||||||
|
|
||||||
|
return (input_file, output_dir, do_c, do_h, prefix, extra_opts)
|
||||||
|
Loading…
Reference in New Issue
Block a user