| # Copyright 2019 The Chromium Authors. All rights reserved. |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| |
| """ |
| Compiles a .storyboard file. |
| """ |
| |
| import argparse |
| import os |
| import subprocess |
| import sys |
| |
| |
| def CompileStoryboard(storyboard, out, ios_deployment_target): |
| """Compiles |storyboard| storyboard to |out| for |ios_deployment_target|.""" |
| subprocess.check_call([ |
| 'ibtool', '--target-device', 'iphone', '--target-device', 'ipad', |
| '--auto-activate-custom-fonts', '--minimum-deployment-target', |
| ios_deployment_target, '--compilation-directory', out, |
| storyboard, |
| ]) |
| |
| |
| def ParseArgs(argv): |
| """Parses command line arguments.""" |
| parser = argparse.ArgumentParser( |
| description=__doc__, |
| formatter_class=argparse.ArgumentDefaultsHelpFormatter) |
| |
| parser.add_argument( |
| 'input', |
| help='path to the .storyboard file to compile') |
| parser.add_argument( |
| '-o', '--output', required=True, |
| help='path to the result') |
| parser.add_argument( |
| '-t', '--minimum-deployment-target', required=True, |
| help='iOS deployment target') |
| |
| return parser.parse_args(argv) |
| |
| |
| def main(argv): |
| args = ParseArgs(argv) |
| |
| CompileStoryboard( |
| os.path.abspath(args.input), |
| os.path.dirname(os.path.abspath(args.output)), |
| args.minimum_deployment_target) |
| |
| if __name__ == '__main__': |
| sys.exit(main(sys.argv[1:])) |