| #!/usr/bin/env python3 |
| # |
| # Copyright 2013 The Flutter Authors. All rights reserved. |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| |
| """ |
| Invokes //gradle for building the Android apps from GN/Ninja. |
| """ |
| |
| import os |
| import sys |
| import subprocess |
| import platform |
| |
| SCRIPT_PATH = os.path.dirname(os.path.realpath(__file__)) |
| |
| BAT = '.bat' if sys.platform.startswith(('cygwin', 'win')) else '' |
| GRADLE_BIN = os.path.normpath( |
| os.path.join( |
| SCRIPT_PATH, '..', '..', '..', 'third_party', 'gradle', 'bin', |
| 'gradle%s' % BAT |
| ) |
| ) |
| |
| ANDROID_HOME = os.path.normpath( |
| os.path.join( |
| SCRIPT_PATH, '..', '..', '..', 'third_party', 'android_tools', 'sdk' |
| ) |
| ) |
| |
| if platform.system() == 'Darwin': |
| JAVA_HOME = os.path.normpath( |
| os.path.join( |
| SCRIPT_PATH, '..', '..', '..', 'third_party', 'java', 'openjdk', |
| 'Contents', 'Home' |
| ) |
| ) |
| else: |
| JAVA_HOME = os.path.normpath( |
| os.path.join( |
| SCRIPT_PATH, '..', '..', '..', 'third_party', 'java', 'openjdk' |
| ) |
| ) |
| |
| |
| def main(): |
| if not os.path.isdir(ANDROID_HOME): |
| raise Exception('%s (ANDROID_HOME) is not a directory' % ANDROID_HOME) |
| |
| android_dir = sys.argv[1] |
| subprocess.check_output( |
| args=[GRADLE_BIN] + sys.argv[2:], |
| cwd=android_dir, |
| env=dict(os.environ, ANDROID_HOME=ANDROID_HOME, JAVA_HOME=JAVA_HOME), |
| ) |
| return 0 |
| |
| |
| if __name__ == '__main__': |
| sys.exit(main()) |