Index: build/android/gyp/java_cpp_enum.py |
diff --git a/build/android/gyp/java_cpp_enum.py b/build/android/gyp/java_cpp_enum.py |
index 6a1d5c1e4c39fa54a1c1b2550356a162c2dcb173..002aed500ad420b73cd184751585c819491ebbf4 100755 |
--- a/build/android/gyp/java_cpp_enum.py |
+++ b/build/android/gyp/java_cpp_enum.py |
@@ -61,16 +61,24 @@ class EnumDefinition(object): |
prefix_to_strip = '' |
else: |
prefix_to_strip = self.prefix_to_strip |
- entries = ((k.replace(prefix_to_strip, '', 1), v) for (k, v) in |
- self.entries.iteritems()) |
- self.entries = collections.OrderedDict(entries) |
+ |
+ entries = collections.OrderedDict() |
+ for (k, v) in self.entries.iteritems(): |
+ stripped_key = k.replace(prefix_to_strip, '', 1) |
+ if isinstance(v, basestring): |
+ stripped_value = v.replace(prefix_to_strip, '', 1) |
+ else: |
+ stripped_value = v |
+ entries[stripped_key] = stripped_value |
+ |
+ self.entries = entries |
class HeaderParser(object): |
single_line_comment_re = re.compile(r'\s*//') |
multi_line_comment_start_re = re.compile(r'\s*/\*') |
enum_start_re = re.compile(r'^\s*enum\s+(\w+)\s+{\s*$') |
enum_line_re = re.compile(r'^\s*(\w+)(\s*\=\s*([^,\n]+))?,?') |
- enum_end_re = re.compile(r'^\s*}\s*;\s*$') |
+ enum_end_re = re.compile(r'^\s*}\s*;\.*$') |
generator_directive_re = re.compile( |
r'^\s*//\s+GENERATED_JAVA_(\w+)\s*:\s*([\.\w]+)$') |
@@ -109,6 +117,9 @@ class HeaderParser(object): |
enum_value = enum_entry.groups()[2] |
self._current_definition.AppendEntry(enum_key, enum_value) |
+ def _GetCurrentEnumClassNameOverride(self): |
+ return self._generator_directives.get('CLASS_NAME_OVERRIDE') |
+ |
def _GetCurrentEnumPackageName(self): |
return self._generator_directives.get('ENUM_PACKAGE') |
@@ -128,7 +139,8 @@ class HeaderParser(object): |
if not self._GetCurrentEnumPackageName(): |
return |
self._current_definition = EnumDefinition() |
- self._current_definition.class_name = enum_start.groups()[0] |
+ self._current_definition.class_name = ( |
+ self._GetCurrentEnumClassNameOverride() or enum_start.groups()[0]) |
self._in_enum = True |
elif generator_directive: |
directive_name = generator_directive.groups()[0] |