Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(561)

Side by Side Diff: mojo/public/tools/bindings/generators/mojom_cpp_generator.py

Issue 1641163005: [Draft] try out the idea of adding export macros for C++ bindings. Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 # Copyright 2013 The Chromium Authors. All rights reserved. 1 # Copyright 2013 The Chromium Authors. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can be 2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file. 3 # found in the LICENSE file.
4 4
5 """Generates C++ source files from a mojom.Module.""" 5 """Generates C++ source files from a mojom.Module."""
6 6
7 import mojom.generate.generator as generator 7 import mojom.generate.generator as generator
8 import mojom.generate.module as mojom 8 import mojom.generate.module as mojom
9 import mojom.generate.pack as pack 9 import mojom.generate.pack as pack
10 from mojom.generate.template_expander import UseJinja 10 from mojom.generate.template_expander import UseJinja
(...skipping 457 matching lines...) Expand 10 before | Expand all | Expand 10 after
468 "passes_associated_kinds": mojom.PassesAssociatedKinds, 468 "passes_associated_kinds": mojom.PassesAssociatedKinds,
469 "struct_size": lambda ps: ps.GetTotalSize() + _HEADER_SIZE, 469 "struct_size": lambda ps: ps.GetTotalSize() + _HEADER_SIZE,
470 "stylize_method": generator.StudlyCapsToCamel, 470 "stylize_method": generator.StudlyCapsToCamel,
471 "under_to_camel": generator.UnderToCamel, 471 "under_to_camel": generator.UnderToCamel,
472 } 472 }
473 473
474 def GetExtraHeaders(self): 474 def GetExtraHeaders(self):
475 extra_headers = set() 475 extra_headers = set()
476 for name, entry in self.typemap.iteritems(): 476 for name, entry in self.typemap.iteritems():
477 extra_headers.update(entry["headers"]) 477 extra_headers.update(entry["headers"])
478 if self.dll_export_include:
479 extra_headers.add(self.dll_export_include)
478 return list(extra_headers) 480 return list(extra_headers)
479 481
480 def GetJinjaExports(self): 482 def GetJinjaExports(self):
481 return { 483 return {
482 "module": self.module, 484 "module": self.module,
483 "namespace": self.module.namespace, 485 "namespace": self.module.namespace,
484 "namespaces_as_array": NamespaceToArray(self.module.namespace), 486 "namespaces_as_array": NamespaceToArray(self.module.namespace),
485 "imports": self.module.imports, 487 "imports": self.module.imports,
486 "kinds": self.module.kinds, 488 "kinds": self.module.kinds,
487 "enums": self.module.enums, 489 "enums": self.module.enums,
488 "structs": self.GetStructs(), 490 "structs": self.GetStructs(),
489 "unions": self.GetUnions(), 491 "unions": self.GetUnions(),
490 "interfaces": self.GetInterfaces(), 492 "interfaces": self.GetInterfaces(),
491 "variant": self.variant, 493 "variant": self.variant,
492 "extra_headers": self.GetExtraHeaders(), 494 "extra_headers": self.GetExtraHeaders(),
495 "dll_export": self.dll_export_declaration,
493 } 496 }
494 497
495 @staticmethod 498 @staticmethod
496 def GetTemplatePrefix(): 499 def GetTemplatePrefix():
497 return "cpp_templates" 500 return "cpp_templates"
498 501
499 @classmethod 502 @classmethod
500 def GetFilters(cls): 503 def GetFilters(cls):
501 return cls.cpp_filters 504 return cls.cpp_filters
502 505
(...skipping 12 matching lines...) Expand all
515 def GenerateFiles(self, args): 518 def GenerateFiles(self, args):
516 global _current_typemap 519 global _current_typemap
517 _current_typemap = self.typemap 520 _current_typemap = self.typemap
518 suffix = "-%s" % self.variant if self.variant else "" 521 suffix = "-%s" % self.variant if self.variant else ""
519 self.Write(self.GenerateModuleHeader(), 522 self.Write(self.GenerateModuleHeader(),
520 self.MatchMojomFilePath("%s%s.h" % (self.module.name, suffix))) 523 self.MatchMojomFilePath("%s%s.h" % (self.module.name, suffix)))
521 self.Write(self.GenerateModuleInternalHeader(), 524 self.Write(self.GenerateModuleInternalHeader(),
522 self.MatchMojomFilePath("%s%s-internal.h" % (self.module.name, suffix))) 525 self.MatchMojomFilePath("%s%s-internal.h" % (self.module.name, suffix)))
523 self.Write(self.GenerateModuleSource(), 526 self.Write(self.GenerateModuleSource(),
524 self.MatchMojomFilePath("%s%s.cc" % (self.module.name, suffix))) 527 self.MatchMojomFilePath("%s%s.cc" % (self.module.name, suffix)))
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698