| # Copyright 2017 the V8 project authors. All rights reserved. |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| |
| """The same as dump_build_config.py but for gyp legacy. |
| |
| Expected to be called like: |
| dump_build_config.py path/to/file.json [key1=value1 ...] |
| |
| Raw gyp values are supported - they will be tranformed into valid json. |
| """ |
| # TODO(machenbach): Remove this when gyp is deprecated. |
| |
| # for py2/py3 compatibility |
| from __future__ import print_function |
| |
| import json |
| import os |
| import sys |
| |
| assert len(sys.argv) > 2 |
| |
| |
| GYP_GN_CONVERSION = { |
| 'is_component_build': { |
| 'shared_library': 'true', |
| 'static_library': 'false', |
| }, |
| 'is_debug': { |
| 'Debug': 'true', |
| 'Release': 'false', |
| }, |
| } |
| |
| DEFAULT_CONVERSION ={ |
| '0': 'false', |
| '1': 'true', |
| 'ia32': 'x86', |
| } |
| |
| def gyp_to_gn(key, value): |
| value = GYP_GN_CONVERSION.get(key, DEFAULT_CONVERSION).get(value, value) |
| value = value if value in ['true', 'false'] else '"{0}"'.format(value) |
| return value |
| |
| def as_json(kv): |
| assert '=' in kv |
| k, v = kv.split('=', 1) |
| v2 = gyp_to_gn(k, v) |
| try: |
| return k, json.loads(v2) |
| except ValueError as e: |
| print((k, v, v2)) |
| raise e |
| |
| with open(sys.argv[1], 'w') as f: |
| json.dump(dict(map(as_json, sys.argv[2:])), f) |