Move java,lua api and remaining plugins to src/
[vpp.git] / src / vpp-api / java / jvpp / gen / jvpp_gen.py
similarity index 93%
rename from vpp-api/java/jvpp/gen/jvpp_gen.py
rename to src/vpp-api/java/jvpp/gen/jvpp_gen.py
index 5f8df2a..f51b11d 100755 (executable)
@@ -45,9 +45,11 @@ blacklist = [ "memclnt.api", "flowperpkt.api" ]
 parser = argparse.ArgumentParser(description='VPP Java API generator')
 parser.add_argument('-i', action="store", dest="inputfiles", nargs='+')
 parser.add_argument('--plugin_name', action="store", dest="plugin_name")
+parser.add_argument('--root_dir', action="store", dest="root_dir")
 args = parser.parse_args()
 
 sys.path.append(".")
+cwd = os.getcwd()
 
 print "Generating Java API for %s" % args.inputfiles
 print "inputfiles %s" % args.inputfiles
@@ -56,11 +58,25 @@ print "plugin_name %s" % plugin_name
 
 cfg = {}
 
+base_package = 'io.fd.vpp.jvpp'
+plugin_package = base_package + '.' + plugin_name
+root_dir = os.path.abspath(args.root_dir)
+print "root_dir %s" % root_dir
+work_dir = root_dir + "/target/" + plugin_package.replace(".","/")
+
+try:
+    os.makedirs(work_dir)
+except OSError:
+    if not os.path.isdir(work_dir):
+        raise
+
+os.chdir(work_dir)
+
 for inputfile in args.inputfiles:
     if any(substring in inputfile for substring in blacklist):
         print "WARNING: Imput file %s blacklisted" % inputfile
         continue
-    _cfg = json.load(open(inputfile, 'r'))
+    _cfg = json.load(open(cwd + "/" + inputfile, 'r'))
     if 'types' in cfg:
         cfg['types'].extend(_cfg['types'])
     else:
@@ -144,8 +160,6 @@ def get_definitions(defs):
     return func_list, func_name
 
 
-base_package = 'io.fd.vpp.jvpp'
-plugin_package = base_package + '.' + plugin_name
 types_package = 'types'
 dto_package = 'dto'
 callback_package = 'callback'
@@ -164,7 +178,7 @@ dto_gen.generate_dtos(func_list, base_package, plugin_package, plugin_name.title
 jvpp_impl_gen.generate_jvpp(func_list, base_package, plugin_package, plugin_name, dto_package, args.inputfiles)
 callback_gen.generate_callbacks(func_list, base_package, plugin_package, plugin_name.title(), callback_package, dto_package, args.inputfiles)
 notification_gen.generate_notification_registry(func_list, base_package, plugin_package, plugin_name.title(), notification_package, callback_package, dto_package, args.inputfiles)
-jvpp_c_gen.generate_jvpp(func_list, plugin_name, args.inputfiles)
+jvpp_c_gen.generate_jvpp(func_list, plugin_name, args.inputfiles, root_dir)
 jvpp_future_facade_gen.generate_jvpp(func_list, base_package, plugin_package, plugin_name.title(), dto_package, callback_package, notification_package, future_package, args.inputfiles)
 jvpp_callback_facade_gen.generate_jvpp(func_list, base_package, plugin_package, plugin_name.title(), dto_package, callback_package, notification_package, callback_facade_package, args.inputfiles)