diff options
Diffstat (limited to 'tools/generate_includes_cpp.py')
-rw-r--r-- | tools/generate_includes_cpp.py | 84 |
1 files changed, 0 insertions, 84 deletions
diff --git a/tools/generate_includes_cpp.py b/tools/generate_includes_cpp.py deleted file mode 100644 index abea1377d8..0000000000 --- a/tools/generate_includes_cpp.py +++ /dev/null @@ -1,84 +0,0 @@ -#!/usr/bin/python - -''' -Copyright 2014 Google Inc. - -Use of this source code is governed by a BSD-style license that can be -found in the LICENSE file. -''' - -import os -import optparse -import posixpath -import re - - -def is_ignored(full_path, ignore_list): - for ignore_path in ignore_list: - if re.search(ignore_path, full_path, re.I): - return True - return False - - -def find_header_files(include_dirs, ignore_list): - """Return a list of all '.h' files in top_dir. - - Args: - include_dirs: Paths to the directories within which to recursively search - for files ending in '.h' - ignore_list: Paths to both files and directories that are to be excluded - from the search for headers - - Returns: - A list of all the files inside include_dirs that end in '.h', relative to - their respective include_dir that are not explicitly ignored. - """ - headers = [] - for top_dir in include_dirs: - for filename in os.listdir(top_dir): - full_path = posixpath.join(top_dir, filename) - if is_ignored(full_path, ignore_list): - continue - elif os.path.isdir(full_path): - nested_headers = find_header_files([full_path], ignore_list) - for nested_header in nested_headers: - headers.append(os.path.join(filename, nested_header)) - elif filename.endswith('.h'): - headers.append(filename) - return headers - - -def GenerateIncludeCPP(output_file, include_dirs, ignore_list): - headers = find_header_files(include_dirs, ignore_list) - - # Emit resulting source file. - with open(os.path.join(os.getcwd(), output_file), "w+") as output: - for header in headers: - output.write("#include <%s>\n" % header) - - -def main(): - parser = optparse.OptionParser() - parser.add_option("--ignore", action="store", type="string", dest="ignore", - help="file to write the processed sources array to.") - parser.set_usage("""generate_include_cpp out.cpp include_dir - out.cpp: C++ code to be generated. - include_dirs: directories to traverse for include files""") - (options, args) = parser.parse_args() - - # The MSVS gyp generator uses windows path separators so we intercept those - # strings and normalize them to our expected posix representation - include_dirs = [] - for include_dir in args[1:]: - include_dirs.append(include_dir.replace("\\", "/")) - ignore_list = options.ignore.replace("\\", "/") - - # We can strip off the relative portion of the path to ensure that when we - # compare for regex matches we don't fail based on relative path depth - ignore_list = ignore_list.replace("../", "") - - GenerateIncludeCPP(args[0], include_dirs, ignore_list.split()) - - -if __name__ == "__main__": - main() |