OLD | NEW |
1 # Copyright 2016 The Chromium Authors. All rights reserved. | 1 # Copyright 2016 The Chromium Authors. All rights reserved. |
2 # Use of this source code is governed by a BSD-style license that can be | 2 # Use of this source code is governed by a BSD-style license that can be |
3 # found in the LICENSE file. | 3 # found in the LICENSE file. |
4 | 4 |
5 import argparse | 5 import argparse |
6 import os | 6 import os |
7 import subprocess | 7 import subprocess |
8 import sys | 8 import sys |
9 | 9 |
10 | 10 |
11 def CompileXCAssets(output, platform, min_deployment_target, inputs): | 11 def CompileXCAssets( |
| 12 output, platform, product_type, min_deployment_target, inputs): |
| 13 """Compile the .xcassets bundles to an asset catalog using actool. |
| 14 |
| 15 Args: |
| 16 output: absolute path to the containing bundle |
| 17 platform: the targetted platform |
| 18 product_type: the bundle type |
| 19 min_deployment_target: minimum deployment target |
| 20 inputs: list of absolute paths to .xcassets bundles |
| 21 """ |
12 command = [ | 22 command = [ |
13 'xcrun', 'actool', '--output-format=human-readable-text', | 23 'xcrun', 'actool', '--output-format=human-readable-text', |
14 '--compress-pngs', '--notices', '--warnings', '--errors', | 24 '--compress-pngs', '--notices', '--warnings', '--errors', |
15 '--platform', platform, '--minimum-deployment-target', | 25 '--platform', platform, '--minimum-deployment-target', |
16 min_deployment_target, | 26 min_deployment_target, |
17 ] | 27 ] |
18 | 28 |
| 29 if product_type != '': |
| 30 command.extend(['--product-type', product_type]) |
| 31 |
19 if platform == 'macosx': | 32 if platform == 'macosx': |
20 command.extend(['--target-device', 'mac']) | 33 command.extend(['--target-device', 'mac']) |
21 else: | 34 else: |
22 command.extend(['--target-device', 'iphone', '--target-device', 'ipad']) | 35 command.extend(['--target-device', 'iphone', '--target-device', 'ipad']) |
23 | 36 |
24 # actool crashes if paths are relative, so convert input and output paths | 37 # actool crashes if paths are relative, so convert input and output paths |
25 # to absolute paths. | 38 # to absolute paths. |
26 command.extend(['--compile', os.path.dirname(os.path.abspath(output))]) | 39 command.extend(['--compile', os.path.dirname(os.path.abspath(output))]) |
27 command.extend(map(os.path.abspath, inputs)) | 40 command.extend(map(os.path.abspath, inputs)) |
28 | 41 |
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
60 '--platform', '-p', required=True, | 73 '--platform', '-p', required=True, |
61 choices=('macosx', 'iphoneos', 'iphonesimulator'), | 74 choices=('macosx', 'iphoneos', 'iphonesimulator'), |
62 help='target platform for the compiled assets catalog') | 75 help='target platform for the compiled assets catalog') |
63 parser.add_argument( | 76 parser.add_argument( |
64 '--minimum-deployment-target', '-t', required=True, | 77 '--minimum-deployment-target', '-t', required=True, |
65 help='minimum deployment target for the compiled assets catalog') | 78 help='minimum deployment target for the compiled assets catalog') |
66 parser.add_argument( | 79 parser.add_argument( |
67 '--output', '-o', required=True, | 80 '--output', '-o', required=True, |
68 help='path to the compiled assets catalog') | 81 help='path to the compiled assets catalog') |
69 parser.add_argument( | 82 parser.add_argument( |
| 83 '--product-type', '-T', |
| 84 help='type of the containing bundle') |
| 85 parser.add_argument( |
70 'inputs', nargs='+', | 86 'inputs', nargs='+', |
71 help='path to input assets catalog sources') | 87 help='path to input assets catalog sources') |
72 args = parser.parse_args() | 88 args = parser.parse_args() |
73 | 89 |
74 if os.path.basename(args.output) != 'Assets.car': | 90 if os.path.basename(args.output) != 'Assets.car': |
75 sys.stderr.write( | 91 sys.stderr.write( |
76 'output should be path to compiled asset catalog, not ' | 92 'output should be path to compiled asset catalog, not ' |
77 'to the containing bundle: %s\n' % (args.output,)) | 93 'to the containing bundle: %s\n' % (args.output,)) |
78 sys.exit(1) | 94 sys.exit(1) |
79 | 95 |
80 CompileXCAssets( | 96 CompileXCAssets( |
81 args.output, | 97 args.output, |
82 args.platform, | 98 args.platform, |
| 99 args.product_type, |
83 args.minimum_deployment_target, | 100 args.minimum_deployment_target, |
84 args.inputs) | 101 args.inputs) |
85 | 102 |
86 | 103 |
87 if __name__ == '__main__': | 104 if __name__ == '__main__': |
88 sys.exit(Main()) | 105 sys.exit(Main()) |
OLD | NEW |