blob: 6a5c97490bc6530fc60aecc4f46860915475dce1 [file] [log] [blame]
Hal Canary181ec2f2018-01-24 13:42:38 -05001#! /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 Altmuellerdd3eca12018-02-02 15:05:42 -05007import argparse
Hal Canary181ec2f2018-01-24 13:42:38 -05008import os
9import sys
10
Hal Canaryff2742e2018-01-30 11:35:47 -050011fmt = '''
Hal Canary2331c822018-02-01 14:06:13 -050012target_cpu = "{arch}"
13is_debug = false
14ndk = "{ndk}"
Stephan Altmuellerdd3eca12018-02-02 15:05:42 -050015ndk_api = {api_level}
Hal Canary2331c822018-02-01 14:06:13 -050016skia_enable_fontmgr_empty = true
17skia_enable_pdf = false
18skia_skqp_global_error_tolerance = 4
19skia_use_dng_sdk = false
20skia_use_expat = false
21skia_use_icu = false
22skia_use_libheif = false
23skia_use_lua = false
24skia_use_piex = false
25skia_use_skcms = false
Stephan Altmuellerdd3eca12018-02-02 15:05:42 -050026skia_skqp_enable_driver_correctness_workarounds = {enable_workarounds}
Hal Canary181ec2f2018-01-24 13:42:38 -050027'''
28
Stephan Altmuellerdd3eca12018-02-02 15:05:42 -050029def 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")
39
40 # parse the args and convert enable_workarounds to string.
41 args = parser.parse_args()
42 args.enable_workarounds = 'true' if args.enable_workarounds else 'false'
43 return args
44
45def make_args_gn(out_dir, ndk, arch, api_level, enable_workarounds):
Hal Canary181ec2f2018-01-24 13:42:38 -050046 if not os.path.exists(out_dir):
47 os.makedirs(out_dir)
48 with open(os.path.join(out_dir, 'args.gn'), 'w') as o:
Stephan Altmuellerdd3eca12018-02-02 15:05:42 -050049 o.write(fmt.format(ndk=os.path.abspath(ndk),
50 arch=arch,
51 api_level=api_level,
52 enable_workarounds=enable_workarounds))
Hal Canary181ec2f2018-01-24 13:42:38 -050053
54if __name__ == '__main__':
Stephan Altmuellerdd3eca12018-02-02 15:05:42 -050055 args = parse_args()
56 make_args_gn(args.target_build_dir,
57 args.android_ndk_dir,
58 args.arch,
59 args.api_level,
60 args.enable_workarounds)