Hal Canary | 181ec2f | 2018-01-24 13:42:38 -0500 | [diff] [blame] | 1 | #! /usr/bin/env python |
| 2 | |
| 3 | # Copyright 2018 Google Inc. |
| 4 | # Use of this source code is governed by a BSD-style license that can be |
| 5 | # found in the LICENSE file. |
| 6 | |
Stephan Altmueller | dd3eca1 | 2018-02-02 15:05:42 -0500 | [diff] [blame] | 7 | import argparse |
Hal Canary | 181ec2f | 2018-01-24 13:42:38 -0500 | [diff] [blame] | 8 | import os |
| 9 | import sys |
| 10 | |
Hal Canary | ff2742e | 2018-01-30 11:35:47 -0500 | [diff] [blame] | 11 | fmt = ''' |
Hal Canary | c126191 | 2018-02-12 15:54:40 -0500 | [diff] [blame] | 12 | target_cpu = "{arch}" |
| 13 | is_debug = {debug} |
| 14 | ndk = "{android_ndk_dir}" |
| 15 | ndk_api = {api_level} |
| 16 | skia_enable_fontmgr_empty = true |
| 17 | skia_enable_pdf = false |
Hal Canary | ac7f23c | 2018-11-26 14:07:41 -0500 | [diff] [blame] | 18 | skia_skqp_global_error_tolerance = 8 |
Hal Canary | c126191 | 2018-02-12 15:54:40 -0500 | [diff] [blame] | 19 | skia_use_dng_sdk = false |
| 20 | skia_use_expat = false |
| 21 | skia_use_icu = false |
| 22 | skia_use_libheif = false |
| 23 | skia_use_lua = false |
| 24 | skia_use_piex = false |
Hal Canary | fd9bcab | 2018-04-24 11:47:23 -0400 | [diff] [blame] | 25 | skia_tools_require_resources = true |
Michael Ludwig | 72ab346 | 2018-12-10 12:43:36 -0500 | [diff] [blame] | 26 | extra_cflags = [ "-DSK_ENABLE_DUMP_GPU", "-DSK_BUILD_FOR_SKQP" ] |
Hal Canary | 181ec2f | 2018-01-24 13:42:38 -0500 | [diff] [blame] | 27 | ''' |
| 28 | |
Stephan Altmueller | dd3eca1 | 2018-02-02 15:05:42 -0500 | [diff] [blame] | 29 | def parse_args(): |
| 30 | parser = argparse.ArgumentParser(description='Generate args.gn file.') |
| 31 | parser.add_argument('target_build_dir') |
| 32 | parser.add_argument('android_ndk_dir' ) |
| 33 | parser.add_argument('--arch', metavar='architecture', default='arm', |
| 34 | help='defaults to "arm", valid values: "arm" "arm64" "x86" "x64"') |
| 35 | parser.add_argument('--api_level', type=int, metavar='api_level', |
| 36 | default=26, help='android API level, defaults to 26') |
| 37 | parser.add_argument('--enable_workarounds', default=False, |
| 38 | action='store_true', help="enable GPU work-arounds, defaults to false") |
Hal Canary | c126191 | 2018-02-12 15:54:40 -0500 | [diff] [blame] | 39 | parser.add_argument('--debug', default=False, action='store_true', |
| 40 | help='compile native code in debug mode, defaults to false') |
Stephan Altmueller | dd3eca1 | 2018-02-02 15:05:42 -0500 | [diff] [blame] | 41 | |
Hal Canary | c126191 | 2018-02-12 15:54:40 -0500 | [diff] [blame] | 42 | # parse the args and convert bools to strings. |
Stephan Altmueller | dd3eca1 | 2018-02-02 15:05:42 -0500 | [diff] [blame] | 43 | args = parser.parse_args() |
Hal Canary | c126191 | 2018-02-12 15:54:40 -0500 | [diff] [blame] | 44 | gn_bool = lambda b : 'true' if b else 'false' |
| 45 | args.enable_workarounds = gn_bool(args.enable_workarounds) |
| 46 | args.debug = gn_bool(args.debug) |
| 47 | args.android_ndk_dir = os.path.abspath(args.android_ndk_dir) |
Stephan Altmueller | dd3eca1 | 2018-02-02 15:05:42 -0500 | [diff] [blame] | 48 | return args |
| 49 | |
Hal Canary | c126191 | 2018-02-12 15:54:40 -0500 | [diff] [blame] | 50 | def make_args_gn(out_dir, args): |
Hal Canary | 181ec2f | 2018-01-24 13:42:38 -0500 | [diff] [blame] | 51 | if not os.path.exists(out_dir): |
| 52 | os.makedirs(out_dir) |
| 53 | with open(os.path.join(out_dir, 'args.gn'), 'w') as o: |
Hal Canary | c126191 | 2018-02-12 15:54:40 -0500 | [diff] [blame] | 54 | o.write(fmt.format(**args)) |
Hal Canary | 181ec2f | 2018-01-24 13:42:38 -0500 | [diff] [blame] | 55 | |
| 56 | if __name__ == '__main__': |
Stephan Altmueller | dd3eca1 | 2018-02-02 15:05:42 -0500 | [diff] [blame] | 57 | args = parse_args() |
Hal Canary | c126191 | 2018-02-12 15:54:40 -0500 | [diff] [blame] | 58 | make_args_gn(args.target_build_dir, vars(args)) |