chromium/third_party/protobuf/gen_extra_chromium_files.py

#!/usr/bin/env python3

# This script expects your out/Debug directory to be compiling for linux on
# a linux machine. If this is not your case just compile protoc and run the
# command on the last line of the script (from within
# //third_party/protobuf/src).

import argparse
import os

PROTO_DIR = os.path.dirname(__file__)
DIR_SOURCE_ROOT = os.path.join(PROTO_DIR, '..','..')


def main():
    parser = argparse.ArgumentParser()
    parser.add_argument('--output-directory',
                        '-C',
                        help='Path to build directory',
                        required=True)

    args = parser.parse_args()

    out_build_dir = args.output_directory

    def r(c):
        print('Running:', c)
        os.system(c)

    r('autoninja -C {} protoc'.format(out_build_dir))

    protoc = os.path.join(out_build_dir, 'protoc')
    print('Creating //third_party/protobuf/python/google/protobuf/'
          'descriptor_pb2.py')
    r('{0} --proto_path={1}/src --python_out={1}/python '
      '{1}/src/google/protobuf/descriptor.proto'.format(protoc, PROTO_DIR))

    print('Creating //third_party/protobuf/python/google/protobuf/compiler/'
          'plugin_pb2.py')
    r('{0} --proto_path={1}/src --python_out={1}/python '
      '{1}/src/google/protobuf/compiler/plugin.proto'.format(protoc, PROTO_DIR))

if __name__ == '__main__':
    main()