| Index: third_party/mojo/src/mojo/public/tools/bindings/generators/mojom_go_generator.py
|
| diff --git a/third_party/mojo/src/mojo/public/tools/bindings/generators/mojom_go_generator.py b/third_party/mojo/src/mojo/public/tools/bindings/generators/mojom_go_generator.py
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..3f7c938baea6f8b4fd6946449167d8d4a872adfe
|
| --- /dev/null
|
| +++ b/third_party/mojo/src/mojo/public/tools/bindings/generators/mojom_go_generator.py
|
| @@ -0,0 +1,51 @@
|
| +# Copyright 2015 The Chromium Authors. All rights reserved.
|
| +# Use of this source code is governed by a BSD-style license that can be
|
| +# found in the LICENSE file.
|
| +
|
| +'''Generates Go source files from a mojom.Module.'''
|
| +
|
| +import os
|
| +
|
| +from mojom.generate.template_expander import UseJinja
|
| +
|
| +import mojom.generate.generator as generator
|
| +import mojom.generate.module as mojom
|
| +
|
| +def GetPackage(module):
|
| + if module.namespace:
|
| + return module.namespace.split('.')[-1]
|
| + return 'mojom'
|
| +
|
| +def GetPackagePath(module):
|
| + path = 'mojom'
|
| + for i in module.namespace.split('.'):
|
| + path = os.path.join(path, i)
|
| + return path
|
| +
|
| +class Generator(generator.Generator):
|
| + go_filters = {}
|
| +
|
| + def GetParameters(self):
|
| + return {
|
| + 'package': GetPackage(self.module),
|
| + }
|
| +
|
| + @UseJinja('go_templates/source.tmpl', filters=go_filters)
|
| + def GenerateSource(self):
|
| + return self.GetParameters()
|
| +
|
| + def GenerateFiles(self, args):
|
| + self.Write(self.GenerateSource(), os.path.join("go", "src", "gen",
|
| + GetPackagePath(self.module), '%s.go' % self.module.name))
|
| +
|
| + def GetJinjaParameters(self):
|
| + return {
|
| + 'lstrip_blocks': True,
|
| + 'trim_blocks': True,
|
| + }
|
| +
|
| + def GetGlobals(self):
|
| + return {
|
| + 'namespace': self.module.namespace,
|
| + 'module': self.module,
|
| + }
|
|
|