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) |