blob: 3863e6bae3199a9f15ca0a52293d89de9d1e3462 [file] [log] [blame]
#!/usr/bin/env python3
#
# Copyright 2013 The Flutter Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
""" Parses manifest file and dumps it to json.
"""
import argparse
import json
import os
import sys
import hashlib
def main():
parser = argparse.ArgumentParser()
parser.add_argument(
'--input', dest='file_path', action='store', required=True)
parser.add_argument(
'--clang-cpu', dest='clang_cpu', action='store', required=True)
args = parser.parse_args()
with open(args.file_path) as f:
data = json.load(f)
output = {}
target = args.clang_cpu + '-fuchsia'
for d in data:
if target in d['target']:
for runtime in d['runtime']:
# key contains the soname and the cflags used to compile it.
# this allows us to distinguish between different sanitizers
# and experiments
key = runtime['soname'] + ''.join(d['cflags'])
md5 = hashlib.md5(key.encode()).hexdigest()
hash_key = 'md5_%s' % md5
# Uncomment this line to get the hash keys
# print runtime['dist'], d['cflags'], hash_key
output[hash_key] = os.path.dirname(runtime['dist'])
print(json.dumps(output))
return 0
if __name__ == '__main__':
sys.exit(main())