1#!/usr/bin/env python3 2 3import json 4 5 6def generate(output, *input_paths): 7 """ 8 This file generates a ThirdPartyPaths.cpp file from the ThirdPartyPaths.txt 9 file in /tools/rewriting, which is used by the Clang Plugin to help identify 10 sources which should be ignored. 11 """ 12 tpp_list = [] 13 lines = set() 14 15 for path in input_paths: 16 with open(path) as f: 17 lines.update(f.readlines()) 18 19 for line in lines: 20 line = line.strip() 21 if line.endswith('/'): 22 line = line[:-1] 23 tpp_list.append(line) 24 tpp_strings = ',\n '.join([json.dumps(tpp) for tpp in sorted(tpp_list)]) 25 26 output.write("""\ 27/* THIS FILE IS GENERATED BY ThirdPartyPaths.py - DO NOT EDIT */ 28 29#include <stdint.h> 30 31const char* MOZ_THIRD_PARTY_PATHS[] = { 32 %s 33}; 34 35extern const uint32_t MOZ_THIRD_PARTY_PATHS_COUNT = %d; 36 37""" % (tpp_strings, len(tpp_list))) 38