| Index: build/android/gradle/generate_gradle.py
|
| diff --git a/build/android/gradle/generate_gradle.py b/build/android/gradle/generate_gradle.py
|
| index fbe0966ac3b40b2e4ce3ea8a5fb3b613eb9f5c18..dc3889b5306100e18cbd4ced5bc924bfa359023a 100755
|
| --- a/build/android/gradle/generate_gradle.py
|
| +++ b/build/android/gradle/generate_gradle.py
|
| @@ -34,6 +34,7 @@ _JAVA_SUBDIR = 'symlinked-java'
|
| _SRCJARS_SUBDIR = 'extracted-srcjars'
|
| _JNI_LIBS_SUBDIR = 'symlinked-libs'
|
| _ARMEABI_SUBDIR = 'armeabi'
|
| +_RES_SUBDIR = 'extracted-res'
|
|
|
| _DEFAULT_TARGETS = [
|
| # TODO(agrieve): Requires alternate android.jar to compile.
|
| @@ -212,6 +213,17 @@ class _ProjectContextGenerator(object):
|
| os.path.join(self.EntryOutputDir(entry), _SRCJARS_SUBDIR))
|
| return java_dirs
|
|
|
| + def _GenResDirs(self, entry):
|
| + res_dirs = list(entry.DepsInfo().get('owned_resources_dirs', []))
|
| + zips = entry.DepsInfo().get('owned_resources_zips')
|
| + if zips:
|
| + # These are generated resources that should not be modified.
|
| + res_dir = os.path.join(self.EntryOutputDir(entry), _RES_SUBDIR)
|
| + for zip_path in _RebasePath(zips):
|
| + _ExtractFile(zip_path, res_dir)
|
| + res_dirs.append(res_dir)
|
| + return res_dirs
|
| +
|
| def _Relativize(self, entry, paths):
|
| return _RebasePath(paths, self.EntryOutputDir(entry))
|
|
|
| @@ -240,6 +252,7 @@ class _ProjectContextGenerator(object):
|
| entry, android_test_manifest)
|
| variables['java_dirs'] = self._Relativize(entry, self._GenJavaDirs(entry))
|
| variables['jni_libs'] = self._Relativize(entry, self._GenJniLibs(entry))
|
| + variables['res_dirs'] = self._Relativize(entry, self._GenResDirs(entry))
|
| deps = [_ProjectEntry.FromBuildConfigPath(p)
|
| for p in entry.Gradle()['dependent_android_projects']]
|
| variables['android_project_deps'] = [d.ProjectName() for d in deps]
|
| @@ -429,6 +442,12 @@ def _GenerateSettingsGradle(project_entries):
|
| return '\n'.join(lines)
|
|
|
|
|
| +def _ExtractFile(zip_path, extracted_path):
|
| + logging.info('Extracting %s to %s', zip_path, extracted_path)
|
| + with zipfile.ZipFile(zip_path) as z:
|
| + z.extractall(extracted_path)
|
| +
|
| +
|
| def _ExtractSrcjars(entry_output_dir, srcjar_tuples):
|
| """Extracts all srcjars to the directory given by the tuples."""
|
| extracted_paths = set(s[1] for s in srcjar_tuples)
|
| @@ -437,9 +456,7 @@ def _ExtractSrcjars(entry_output_dir, srcjar_tuples):
|
| shutil.rmtree(extracted_path, True)
|
|
|
| for srcjar_path, extracted_path in srcjar_tuples:
|
| - logging.info('Extracting %s to %s', srcjar_path, extracted_path)
|
| - with zipfile.ZipFile(srcjar_path) as z:
|
| - z.extractall(extracted_path)
|
| + _ExtractFile(srcjar_path, extracted_path)
|
|
|
|
|
| def _FindAllProjectEntries(main_entries):
|
|
|