aboutsummaryrefslogtreecommitdiffhomepage
path: root/platform_tools/android/bin/android_build_app
diff options
context:
space:
mode:
Diffstat (limited to 'platform_tools/android/bin/android_build_app')
-rwxr-xr-xplatform_tools/android/bin/android_build_app66
1 files changed, 66 insertions, 0 deletions
diff --git a/platform_tools/android/bin/android_build_app b/platform_tools/android/bin/android_build_app
new file mode 100755
index 0000000000..cd044c1468
--- /dev/null
+++ b/platform_tools/android/bin/android_build_app
@@ -0,0 +1,66 @@
+#!/usr/bin/python
+#
+# Copyright 2017 Google Inc.
+#
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+import argparse
+import os
+import re
+import shutil
+import subprocess
+import sys
+
+parser = argparse.ArgumentParser(description='builds skia android apps')
+parser.add_argument('-C', '--output_dir', help='ninja out dir')
+parser.add_argument('app_name')
+
+args = parser.parse_args()
+
+target_cpu = "arm64"
+android_variant = ""
+android_buildtype = "debug"
+
+if args.output_dir == None:
+ sys.exit("unknown out directory")
+
+args_gn_path = os.path.join(args.output_dir, "args.gn")
+if os.path.exists(args_gn_path):
+ for line in open(args_gn_path):
+ m = re.match('target_cpu = "(.*)"', line.strip())
+ if m:
+ target_cpu = m.group(1)
+
+if target_cpu == "arm":
+ android_variant = "arm"
+elif target_cpu == "arm64":
+ android_variant = "arm64"
+elif target_cpu == "x86":
+ android_variant = "x86"
+elif target_cpu == "x64":
+ android_variant = "x86_64"
+elif target_cpu == "mipsel":
+ android_variant = "mips"
+elif target_cpu == "mips64el":
+ android_variant = "mips64"
+else:
+ sys.exit("unknown target_cpu")
+
+# build the apk using gradle
+try:
+ subprocess.check_call(['./apps/gradlew',
+ ':viewer:assemble' + android_variant + android_buildtype,
+ '-papps/' + args.app_name,
+ '-P' + target_cpu + 'out.dir=' + args.output_dir,
+ '--daemon'], cwd=os.path.join(os.path.dirname(__file__), ".."))
+except subprocess.CalledProcessError as error:
+ print error
+ sys.exit("gradle build failed")
+
+# copy apk back into the main out directory
+current_dir = os.path.dirname(__file__)
+apk_src = os.path.join(current_dir, "..", "apps", args.app_name, "build", "outputs", "apk",
+ args.app_name + "-" + android_variant + "-" + android_buildtype + ".apk")
+apk_dst = os.path.join(args.output_dir, args.app_name + ".apk")
+shutil.copyfile(apk_src, apk_dst)