summaryrefslogtreecommitdiffstats
path: root/third_party/libwebrtc/build/config/fuchsia/build_cmx_from_fragment.py
diff options
context:
space:
mode:
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.py49
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())