DXR is a code search and navigation tool aimed at making sense of large projects. It supports full-text and regex searches as well as structural queries.

Mercurial (d5efb485c09c)

VCS Links

Line Code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
#!/usr/bin/env python3

import json


def generate(output, *input_paths):
    """
    This file generates a ThirdPartyPaths.cpp file from the ThirdPartyPaths.txt
    file in /tools/rewriting, which is used by the Clang Plugin to help identify
    sources which should be ignored.
    """
    tpp_list = []
    lines = set()

    for path in input_paths:
        with open(path) as f:
            lines.update(f.readlines())

    for line in lines:
        line = line.strip()
        if line.endswith('/'):
            line = line[:-1]
        tpp_list.append(line)
    tpp_strings = ',\n  '.join([json.dumps(tpp) for tpp in sorted(tpp_list)])

    output.write("""\
/* THIS FILE IS GENERATED BY ThirdPartyPaths.py - DO NOT EDIT */

#include <stdint.h>

const char* MOZ_THIRD_PARTY_PATHS[] = {
  %s
};

extern const uint32_t MOZ_THIRD_PARTY_PATHS_COUNT = %d;

""" % (tpp_strings, len(tpp_list)))