blob: d8e10020a87ebda045fa25c10d0c7bb4298d7c27 [file] [log] [blame]
#!/usr/bin/env python
# Copyright 2016 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.
"""Builds and optionally uploads the mojom generators to Google Cloud Storage.
This script works the same as build_mojom_tool.
"""
import os
import sys
import builder
def main():
all_generators = set(['deps', 'go', 'c'])
parser = builder.get_arg_parser('Build the mojom generators.')
parser.add_argument('--generators', dest='generators', type=str,
default=','.join(all_generators), action='store',
help='Comma-separated list of generators to be built by this build '
'script. These should be directories under mojom/generators. By default '
'every generator known to the build script will be built.')
args = parser.parse_args()
generators = args.generators.split(',')
for generator in generators:
if generator not in all_generators:
print "The only allowed generators are: %s" % all_generators.join(',')
return -1
final_result = 0
for generator in generators:
generator_builder = builder.get_builder(
args=args,
target_dir='generators',
binary_name=generator,
src_path=os.path.join('mojom', 'generators', generator))
if args.upload:
result = generator_builder.build_and_upload()
result = generator_builder.build()
if result != 0:
final_result = result
if not args.keep_going:
return result
return final_result
if __name__ == '__main__':
sys.exit(main())