| Index: build/android/gyp/jar.py
|
| diff --git a/build/android/gyp/jar.py b/build/android/gyp/jar.py
|
| index cfa5e509e474b5c549b08e81d89feb67504213ca..2ebec67ea1f35a63114d32b63174d108387cd1b2 100755
|
| --- a/build/android/gyp/jar.py
|
| +++ b/build/android/gyp/jar.py
|
| @@ -6,6 +6,7 @@
|
|
|
| import optparse
|
| import os
|
| +import shutil
|
| import sys
|
|
|
| from util import build_utils
|
| @@ -19,7 +20,8 @@ _RESOURCE_CLASSES = [
|
| ]
|
|
|
|
|
| -def Jar(class_files, classes_dir, jar_path, manifest_file=None):
|
| +def Jar(class_files, classes_dir, jar_path, manifest_file=None,
|
| + provider_configurations=None):
|
| jar_path = os.path.abspath(jar_path)
|
|
|
| # The paths of the files in the jar will be the same as they are passed in to
|
| @@ -33,6 +35,15 @@ def Jar(class_files, classes_dir, jar_path, manifest_file=None):
|
| jar_cmd.append(os.path.abspath(manifest_file))
|
| jar_cmd.extend(class_files_rel)
|
|
|
| + if provider_configurations:
|
| + service_dir = os.path.join(jar_cwd, 'META-INF', 'services')
|
| + if not os.path.exists(service_dir):
|
| + os.makedirs(service_dir)
|
| + for config in provider_configurations:
|
| + config_jar_path = os.path.join(service_dir, os.path.basename(config))
|
| + shutil.copy(config, config_jar_path)
|
| + jar_cmd.append(os.path.relpath(config_jar_path, jar_cwd))
|
| +
|
| if not class_files_rel:
|
| empty_file = os.path.join(classes_dir, '.empty')
|
| build_utils.Touch(empty_file)
|
| @@ -41,12 +52,14 @@ def Jar(class_files, classes_dir, jar_path, manifest_file=None):
|
| build_utils.Touch(jar_path, fail_if_missing=True)
|
|
|
|
|
| -def JarDirectory(classes_dir, jar_path, manifest_file=None, predicate=None):
|
| +def JarDirectory(classes_dir, jar_path, manifest_file=None, predicate=None,
|
| + provider_configurations=None):
|
| class_files = build_utils.FindInDirectory(classes_dir, '*.class')
|
| if predicate:
|
| class_files = [f for f in class_files if predicate(f)]
|
|
|
| - Jar(class_files, classes_dir, jar_path, manifest_file=manifest_file)
|
| + Jar(class_files, classes_dir, jar_path, manifest_file=manifest_file,
|
| + provider_configurations=provider_configurations)
|
|
|
|
|
| def main():
|
|
|