summaryrefslogtreecommitdiffstats
path: root/mojo
diff options
context:
space:
mode:
authorqsr@chromium.org <qsr@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-05-14 12:02:33 +0000
committerqsr@chromium.org <qsr@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-05-14 12:02:33 +0000
commitc1445529aee82120638347afa603d0170f760188 (patch)
tree0d34fd673661b719066980e144ed74356bcfa0a0 /mojo
parentf442ee47afe382b600355f51ed72a9c63096c5ae (diff)
downloadchromium_src-c1445529aee82120638347afa603d0170f760188.zip
chromium_src-c1445529aee82120638347afa603d0170f760188.tar.gz
chromium_src-c1445529aee82120638347afa603d0170f760188.tar.bz2
Pass arguments from mojom_bindings_generator.py to each individual generator.
This will be needed for the java generator because the output directory will have to be computed globally and not on a file by file basis. R=viettrungluu@chromium.org Review URL: https://codereview.chromium.org/260853005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@270386 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'mojo')
-rw-r--r--mojo/public/tools/bindings/generators/mojom_cpp_generator.py2
-rw-r--r--mojo/public/tools/bindings/generators/mojom_js_generator.py2
-rwxr-xr-xmojo/public/tools/bindings/generators/run_cpp_generator.py2
-rwxr-xr-xmojo/public/tools/bindings/mojom_bindings_generator.py16
-rw-r--r--mojo/public/tools/bindings/pylib/mojom/generate/generator.py2
5 files changed, 14 insertions, 10 deletions
diff --git a/mojo/public/tools/bindings/generators/mojom_cpp_generator.py b/mojo/public/tools/bindings/generators/mojom_cpp_generator.py
index f981968..d27a13f 100644
--- a/mojo/public/tools/bindings/generators/mojom_cpp_generator.py
+++ b/mojo/public/tools/bindings/generators/mojom_cpp_generator.py
@@ -222,7 +222,7 @@ class Generator(generator.Generator):
def GenerateModuleSource(self):
return self.GetJinjaExports()
- def GenerateFiles(self):
+ def GenerateFiles(self, args):
self.Write(self.GenerateModuleHeader(), "%s.h" % self.module.name)
self.Write(self.GenerateModuleInternalHeader(),
"%s-internal.h" % self.module.name)
diff --git a/mojo/public/tools/bindings/generators/mojom_js_generator.py b/mojo/public/tools/bindings/generators/mojom_js_generator.py
index 136e577..7bb600e 100644
--- a/mojo/public/tools/bindings/generators/mojom_js_generator.py
+++ b/mojo/public/tools/bindings/generators/mojom_js_generator.py
@@ -172,7 +172,7 @@ class Generator(generator.Generator):
"interfaces": self.module.interfaces,
}
- def GenerateFiles(self):
+ def GenerateFiles(self, args):
self.Write(self.GenerateJsModule(), "%s.js" % self.module.name)
def GetImports(self):
diff --git a/mojo/public/tools/bindings/generators/run_cpp_generator.py b/mojo/public/tools/bindings/generators/run_cpp_generator.py
index 8a80a46..4c6f597 100755
--- a/mojo/public/tools/bindings/generators/run_cpp_generator.py
+++ b/mojo/public/tools/bindings/generators/run_cpp_generator.py
@@ -25,4 +25,4 @@ dir = None
if len(sys.argv) > 2:
dir = sys.argv[2]
cpp = mojom_cpp_generator.Generator(module, ".", dir)
-cpp.GenerateFiles()
+cpp.GenerateFiles([])
diff --git a/mojo/public/tools/bindings/mojom_bindings_generator.py b/mojo/public/tools/bindings/mojom_bindings_generator.py
index 8dbfde1..1300a80 100755
--- a/mojo/public/tools/bindings/mojom_bindings_generator.py
+++ b/mojo/public/tools/bindings/mojom_bindings_generator.py
@@ -76,8 +76,8 @@ def MakeImportStackMessage(imported_filename_stack):
# Disable Check for dangerous default arguments (they're "private" keyword
# arguments):
# pylint: disable=W0102
-def ProcessFile(args, generator_modules, filename, _processed_files={},
- _imported_filename_stack=[]):
+def ProcessFile(args, remaining_args, generator_modules, filename,
+ _processed_files={}, _imported_filename_stack=[]):
# Memoized results.
if filename in _processed_files:
return _processed_files[filename]
@@ -112,7 +112,7 @@ def ProcessFile(args, generator_modules, filename, _processed_files={},
for import_data in mojom['imports']:
import_filename = os.path.join(dirname, import_data['filename'])
import_data['module'] = ProcessFile(
- args, generator_modules, import_filename,
+ args, remaining_args, generator_modules, import_filename,
_processed_files=_processed_files,
_imported_filename_stack=_imported_filename_stack + [filename])
@@ -127,7 +127,11 @@ def ProcessFile(args, generator_modules, filename, _processed_files={},
for generator_module in generator_modules:
generator = generator_module.Generator(module, args.output_dir)
- generator.GenerateFiles()
+ filtered_args = []
+ if hasattr(generator_module, 'GENERATOR_PREFIX'):
+ prefix = '--' + generator_module.GENERATOR_PREFIX + '_'
+ filtered_args = [arg for arg in remaining_args if arg.startswith(prefix)]
+ generator.GenerateFiles(filtered_args)
# Save result.
_processed_files[filename] = module
@@ -151,7 +155,7 @@ def main():
help="print the intermediate representation")
parser.add_argument("--use_chromium_bundled_pylibs", action="store_true",
help="use Python modules bundled in the Chromium source")
- args = parser.parse_args()
+ (args, remaining_args) = parser.parse_known_args()
generator_modules = LoadGenerators(args.generators_string)
@@ -159,7 +163,7 @@ def main():
os.makedirs(args.output_dir)
for filename in args.filename:
- ProcessFile(args, generator_modules, filename)
+ ProcessFile(args, remaining_args, generator_modules, filename)
return 0
diff --git a/mojo/public/tools/bindings/pylib/mojom/generate/generator.py b/mojo/public/tools/bindings/pylib/mojom/generate/generator.py
index 76e5998..1a1be21 100644
--- a/mojo/public/tools/bindings/pylib/mojom/generate/generator.py
+++ b/mojo/public/tools/bindings/pylib/mojom/generate/generator.py
@@ -98,5 +98,5 @@ class Generator(object):
with open(os.path.join(self.output_dir, filename), "w+") as f:
f.write(contents)
- def GenerateFiles(self):
+ def GenerateFiles(self, args):
raise NotImplementedError("Subclasses must override/implement this method")