Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(182)

Unified Diff: mojo/public/tools/bindings/pylib/mojom/parse/parser_runner.py

Issue 2250183003: Make the fuchsia mojo/public repo the source of truth. (Closed) Base URL: https://github.com/domokit/mojo.git@master
Patch Set: Created 4 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: mojo/public/tools/bindings/pylib/mojom/parse/parser_runner.py
diff --git a/mojo/public/tools/bindings/pylib/mojom/parse/parser_runner.py b/mojo/public/tools/bindings/pylib/mojom/parse/parser_runner.py
deleted file mode 100755
index 0259da57403dd3f7ca48fb9f3c85b0ca999ce196..0000000000000000000000000000000000000000
--- a/mojo/public/tools/bindings/pylib/mojom/parse/parser_runner.py
+++ /dev/null
@@ -1,127 +0,0 @@
-#!/usr/bin/env python
-# Copyright 2015 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.
-
-"""This script drives the execution of the Mojom parser."""
-
-import os
-import platform
-import subprocess
-import sys
-
-
-# We assume this script is located in the Mojo SDK in
-# tools/bindings/pylib/mojom/parse.
-THIS_DIR = os.path.abspath(os.path.dirname(__file__))
-SDK_ROOT = os.path.abspath(os.path.join(THIS_DIR, os.pardir, os.pardir,
- os.pardir, os.pardir, os.pardir))
-PYTHON_SDK_DIR = os.path.abspath(os.path.join(SDK_ROOT, "python"))
-sys.path.insert(0, PYTHON_SDK_DIR)
-# In order to use mojom_files_mojom we need to make sure the dummy mojo_system
-# can be found on the python path.
-sys.path.insert(0, os.path.join(PYTHON_SDK_DIR, "dummy_mojo_system"))
-
-from mojom.generate.generated import mojom_files_mojom
-from mojom.generate.generated import mojom_types_mojom
-from mojo_bindings import serialization
-
-def RunParser(sdk_root, file_names, import_directories=None,
- meta_data_only=False):
- """Runs the mojom parser. Only 64-bit Linux and Mac is supported.
-
- Args:
- sdk_root: {str} Absolute path to the root of the Mojo SDK. The parser
- binary is expected to be found in
- <sdk_root>/tools/bindings/mojom_tool/bin/<platform>
-
- file_names {list of str} Paths to mojom files to be parsed. May be either
- absolute or relative to the current working directory.
-
- import_directories: {list of str} Optional specification of import
- directories where mojom imports should be searched. The elements of the
- list should be absolute paths or paths relative to the current working
- directory.
-
- meta_data_only: {bool} If True then the flag -meta-data-only
- will be passed to the parser.
-
- Returns:
- {str} The serialized mojom_files.MojomFileGraph returned by mojom parser,
- or None if the mojom parser returned a non-zero error code.
- """
- system_dirs = {
- ("Linux", "64bit"): "linux64",
- ("Darwin", "64bit"): "mac64",
- }
- system = (platform.system(), platform.architecture()[0])
- if system not in system_dirs:
- raise Exception("The mojom parser only supports Linux or Mac 64 bits.")
-
- mojom_tool = os.path.join(sdk_root, "tools", "bindings", "mojom_tool",
- "bin", system_dirs[system], "mojom")
-
- if not os.path.exists(mojom_tool):
- raise Exception(
- "The mojom parser could not be found at %s. "
- "You may need to run gclient sync."
- % mojom_tool)
-
- cmd = [mojom_tool, "parse"]
- if import_directories:
- cmd.extend(["-I", ",".join(import_directories)])
- if meta_data_only:
- cmd.extend(["-meta-data-only"])
-
- cmd.extend(file_names)
-
- try:
- return subprocess.check_output(cmd)
- except subprocess.CalledProcessError:
- return None
-
-
-def DeserializeMojomFileGraph(serialized_bytes):
- """Deserializes a mojom_files.MojomFileGraph.
-
- Args:
- serialized_bytes: {str} The serialized mojom_files.MojomFileGraph returned
- by mojom parser
- Returns:
- {mojom_files.MojomFileGraph} The deserialized MojomFileGraph.
- """
- data = bytearray(serialized_bytes)
- context = serialization.RootDeserializationContext(data, [])
- return mojom_files_mojom.MojomFileGraph.Deserialize(context)
-
-def ParseToMojomFileGraph(sdk_root, file_names, import_directories=None,
- meta_data_only=False):
- """Runs the mojom parser and deserializes the result. Only 64-bit Linux and
- Mac is supported.
-
- Args:
- sdk_root: {str} Absolute path to the root of the Mojo SDK. The parser
- binary is expected to be found in
- <sdk_root>/tools/bindings/mojom_tool/bin/<platform>
-
- file_names {list of str} Paths to mojom files to be parsed. May be either
- absolute or relative to the current working directory.
-
- import_directories: {list of str} Optional specification of import
- directories where mojom imports should be searched. The elements of the
- list should be absolute paths or paths relative to the current working
- directory.
-
- meta_data_only: {bool} If True then the flag -meta-data-only
- will be passed to the parser.
-
- Returns:
- {mojom_files.MojomFileGraph} The deserialized MojomFileGraph obtained by
- deserializing the bytes returned by mojom parser, or None if the mojom
- parser returned a non-zero error code.
- """
- serialized_bytes = RunParser(sdk_root, file_names, import_directories,
- meta_data_only)
- if serialized_bytes is None:
- return None
- return DeserializeMojomFileGraph(serialized_bytes)
« no previous file with comments | « mojo/public/tools/bindings/pylib/mojom/parse/__init__.py ('k') | mojo/public/tools/bindings/pylib/mojom_tests/__init__.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698