diff options
Diffstat (limited to 'chromium/v8/tools/testrunner/utils/dump_build_config_gyp.py')
-rw-r--r-- | chromium/v8/tools/testrunner/utils/dump_build_config_gyp.py | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/chromium/v8/tools/testrunner/utils/dump_build_config_gyp.py b/chromium/v8/tools/testrunner/utils/dump_build_config_gyp.py new file mode 100644 index 00000000000..7f726271314 --- /dev/null +++ b/chromium/v8/tools/testrunner/utils/dump_build_config_gyp.py @@ -0,0 +1,54 @@ +# 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. + +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) |