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

Unified Diff: tools_webrtc/android/build_aar.py

Issue 3008973002: Add --build_dir arg to build_aar.py (Closed)
Patch Set: Rebase on master, rename tmp_dir to build_dir in GenerateLicense functino Created 3 years, 3 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: tools_webrtc/android/build_aar.py
diff --git a/tools_webrtc/android/build_aar.py b/tools_webrtc/android/build_aar.py
index 50f1ff4e7cd24f28a8412e82a8b49a64d1f028a1..cc56abda14bf03ea7cf1b388b4350c17c308ab7f 100755
--- a/tools_webrtc/android/build_aar.py
+++ b/tools_webrtc/android/build_aar.py
@@ -50,6 +50,8 @@ from generate_licenses import LicenseBuilder
def _ParseArgs():
parser = argparse.ArgumentParser(description='libwebrtc.aar generator.')
+ parser.add_argument('--build-dir',
+ help='Build dir. By default will create and use temporary dir.')
parser.add_argument('--output', default='libwebrtc.aar',
help='Output file of the script.')
parser.add_argument('--arch', default=DEFAULT_ARCHS, nargs='*',
@@ -87,9 +89,9 @@ def _EncodeForGN(value):
return repr(value)
-def _GetOutputDirectory(tmp_dir, arch):
+def _GetOutputDirectory(build_dir, arch):
"""Returns the GN output directory for the target architecture."""
- return os.path.join(tmp_dir, arch)
+ return os.path.join(build_dir, arch)
def _GetTargetCpu(arch):
@@ -118,10 +120,10 @@ def _GetArmVersion(arch):
raise Exception('Unknown arch: ' + arch)
-def Build(tmp_dir, arch, use_goma, extra_gn_args):
+def Build(build_dir, arch, use_goma, extra_gn_args):
"""Generates target architecture using GN and builds it using ninja."""
logging.info('Building: %s', arch)
- output_directory = _GetOutputDirectory(tmp_dir, arch)
+ output_directory = _GetOutputDirectory(build_dir, arch)
gn_args = {
'target_os': 'android',
'is_debug': False,
@@ -144,18 +146,18 @@ def Build(tmp_dir, arch, use_goma, extra_gn_args):
_RunNinja(output_directory, ninja_args)
-def CollectCommon(aar_file, tmp_dir, arch):
+def CollectCommon(aar_file, build_dir, arch):
"""Collects architecture independent files into the .aar-archive."""
logging.info('Collecting common files.')
- output_directory = _GetOutputDirectory(tmp_dir, arch)
+ output_directory = _GetOutputDirectory(build_dir, arch)
aar_file.write(MANIFEST_FILE, 'AndroidManifest.xml')
aar_file.write(os.path.join(output_directory, JAR_FILE), 'classes.jar')
-def Collect(aar_file, tmp_dir, arch):
+def Collect(aar_file, build_dir, arch):
"""Collects architecture specific files into the .aar-archive."""
logging.info('Collecting: %s', arch)
- output_directory = _GetOutputDirectory(tmp_dir, arch)
+ output_directory = _GetOutputDirectory(build_dir, arch)
abi_dir = os.path.join('jni', arch)
for so_file in NEEDED_SO_FILES:
@@ -163,9 +165,9 @@ def Collect(aar_file, tmp_dir, arch):
os.path.join(abi_dir, so_file))
-def GenerateLicenses(output_dir, tmp_dir, archs):
+def GenerateLicenses(output_dir, build_dir, archs):
builder = LicenseBuilder(
- [_GetOutputDirectory(tmp_dir, arch) for arch in archs], TARGETS)
+ [_GetOutputDirectory(build_dir, arch) for arch in archs], TARGETS)
builder.GenerateLicenseText(output_dir)
@@ -173,21 +175,22 @@ def main():
args = _ParseArgs()
logging.basicConfig(level=logging.DEBUG if args.verbose else logging.INFO)
- tmp_dir = tempfile.mkdtemp()
+ build_dir = args.build_dir if args.build_dir else tempfile.mkdtemp()
for arch in args.arch:
- Build(tmp_dir, arch, args.use_goma, args.extra_gn_args)
+ Build(build_dir, arch, args.use_goma, args.extra_gn_args)
with zipfile.ZipFile(args.output, 'w') as aar_file:
# Architecture doesn't matter here, arbitrarily using the first one.
- CollectCommon(aar_file, tmp_dir, args.arch[0])
+ CollectCommon(aar_file, build_dir, args.arch[0])
for arch in args.arch:
- Collect(aar_file, tmp_dir, arch)
+ Collect(aar_file, build_dir, arch)
license_dir = os.path.dirname(os.path.realpath(args.output))
- GenerateLicenses(license_dir, tmp_dir, args.arch)
+ GenerateLicenses(license_dir, build_dir, args.arch)
- shutil.rmtree(tmp_dir, True)
+ if not args.build_dir:
+ shutil.rmtree(build_dir, True)
if __name__ == '__main__':
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698