Index: base/android/jni_generator/jni_generator.py |
diff --git a/base/android/jni_generator/jni_generator.py b/base/android/jni_generator/jni_generator.py |
index dd74c7a48d67ae6e7982f573ba62ae49b1ce57b4..53b2f7d6b79f6958ded366c5e6f2d0df5ce68f07 100755 |
--- a/base/android/jni_generator/jni_generator.py |
+++ b/base/android/jni_generator/jni_generator.py |
@@ -318,7 +318,7 @@ def ExtractNatives(contents, ptr_type): |
'(@NativeCall(\(\"(?P<java_class_name>.*?)\"\)))?\s*' |
'(?P<qualifiers>\w+\s\w+|\w+|\s+)\s*?native ' |
'(?P<return_type>\S*?) ' |
- '(?P<name>\w+?)\((?P<params>.*?)\);') |
+ '(?P<name>native\w+?)\((?P<params>.*?)\);') |
for match in re.finditer(re_native, contents): |
native = NativeMethod( |
static='static' in match.group('qualifiers'), |
@@ -533,7 +533,7 @@ class JNIFromJavaP(object): |
@staticmethod |
def CreateFromClass(class_file, options): |
class_name = os.path.splitext(os.path.basename(class_file))[0] |
- p = subprocess.Popen(args=['javap', '-s', class_name], |
+ p = subprocess.Popen(args=[options.javap, '-s', class_name], |
cwd=os.path.dirname(class_file), |
stdout=subprocess.PIPE, |
stderr=subprocess.PIPE) |
@@ -546,7 +546,7 @@ class JNIFromJavaSource(object): |
"""Uses the given java source file to generate the JNI header file.""" |
def __init__(self, contents, fully_qualified_class, options): |
- contents = self._RemoveComments(contents) |
+ contents = self._RemoveComments(contents, options) |
JniParams.SetFullyQualifiedClass(fully_qualified_class) |
JniParams.ExtractImportsAndInnerClasses(contents) |
jni_namespace = ExtractJNINamespace(contents) or options.namespace |
@@ -560,7 +560,7 @@ class JNIFromJavaSource(object): |
options) |
self.content = inl_header_file_generator.GetContent() |
- def _RemoveComments(self, contents): |
+ def _RemoveComments(self, contents, options): |
# We need to support both inline and block comments, and we need to handle |
# strings that contain '//' or '/*'. Rather than trying to do all that with |
# regexps, we just pipe the contents through the C preprocessor. We tell cpp |
@@ -571,7 +571,7 @@ class JNIFromJavaSource(object): |
# parser. Maybe we could ditch JNIFromJavaSource and just always use |
# JNIFromJavaP; or maybe we could rewrite this script in Java and use APT. |
# http://code.google.com/p/chromium/issues/detail?id=138941 |
- p = subprocess.Popen(args=['cpp', '-fpreprocessed'], |
+ p = subprocess.Popen(args=[options.cpp, '-fpreprocessed'], |
stdin=subprocess.PIPE, |
stdout=subprocess.PIPE, |
stderr=subprocess.PIPE) |
@@ -605,7 +605,7 @@ class InlHeaderFileGenerator(object): |
def ExtractInitNative(self, options): |
for native in self.natives: |
- if options.jni_init_native_name == native.name: |
+ if options.jni_init_native_name == 'native' + native.name: |
self.natives.remove(native) |
return native |
return None |
@@ -831,7 +831,7 @@ Java_${FULLY_QUALIFIED_CLASS}_${INIT_NATIVE_NAME}(JNIEnv* env, jclass clazz) { |
if self.namespace: |
namespace = self.namespace + '::' |
values = {'FULLY_QUALIFIED_CLASS': fully_qualified_class, |
- 'INIT_NATIVE_NAME': self.init_native.name, |
+ 'INIT_NATIVE_NAME': 'native' + self.init_native.name, |
'NAMESPACE': namespace, |
'REGISTER_NATIVES_IMPL': self.GetRegisterNativesImplString() |
} |
@@ -1270,6 +1270,10 @@ See SampleForTests.java for more details. |
action='store_true', dest='eager_called_by_natives', |
help='When true, the called-by-native methods will ' |
'be initialized in a non-atomic way.') |
+ option_parser.add_option('--cpp', default='cpp', |
+ help='The path to cpp command.') |
+ option_parser.add_option('--javap', default='javap', |
+ help='The path to javap command.') |
options, args = option_parser.parse_args(argv) |
if options.jar_file: |
input_file = ExtractJarInputFile(options.jar_file, options.input_file, |