diff options
Diffstat (limited to 'third_party/libwebrtc/build/config/fuchsia/build_cmx_from_fragment.py')
-rw-r--r-- | third_party/libwebrtc/build/config/fuchsia/build_cmx_from_fragment.py | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/third_party/libwebrtc/build/config/fuchsia/build_cmx_from_fragment.py b/third_party/libwebrtc/build/config/fuchsia/build_cmx_from_fragment.py new file mode 100644 index 0000000000..ac7e34988d --- /dev/null +++ b/third_party/libwebrtc/build/config/fuchsia/build_cmx_from_fragment.py @@ -0,0 +1,49 @@ +# Copyright 2020 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. +"""Creates a complete CMX (v1) component manifest, from a program name and + manifest fragment file.""" + +import argparse +import json +import sys + + +def BuildCmxFromFragment(output_file, fragment_file, program_binary): + """Reads a CMX fragment specifying e.g. features & sandbox, and a program + binary's filename, and writes out the full CMX. + + output_file: Build-relative filename at which to write the full CMX. + fragment_file: Build-relative filename of the CMX fragment to read from. + program_binary: Package-relative filename of the program binary. + """ + + with open(output_file, 'w') as component_manifest_file: + component_manifest = json.load(open(fragment_file, 'r')) + component_manifest.update({ + 'program': { + 'binary': program_binary + }, + }) + json.dump(component_manifest, component_manifest_file) + + +def main(): + parser = argparse.ArgumentParser() + parser.add_argument( + '--cmx-fragment', + required=True, + help='Path to the CMX fragment to read from') + parser.add_argument( + '--cmx', required=True, help='Path to write the complete CMX file to') + parser.add_argument( + '--program', + required=True, + help='Package-relative path to the program binary') + args = parser.parse_args() + + return BuildCmxFromFragment(args.cmx, args.cmx_fragment, args.program) + + +if __name__ == '__main__': + sys.exit(main()) |