From e7f512ae36543b83dd65ec04a80bb9f56bf09060 Mon Sep 17 00:00:00 2001 From: Tobias Grosser Date: Sat, 9 May 2015 09:08:56 +0000 Subject: [PATCH] Add polly support to sort_includes.py Changes: - Add "isl/" as a system library prefix. Even though isl is regularly imported into polly, it is still used like an external library. - Add "json/" as a system library prefix. Polly uses json-cpp as external library. - Distinguish between llvm and subproject libraries. Always sort subprojects before LLVM. This was already the case with clang, as 'clang' comes before 'llvm', but we also want 'polly' to be sorted before 'llvm'. The sorting of headers that are not part of Polly or isl remains unchanged. llvm-svn: 236929 --- llvm/utils/sort_includes.py | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/llvm/utils/sort_includes.py b/llvm/utils/sort_includes.py index fef97550db8..70bfdedfc6d 100755 --- a/llvm/utils/sort_includes.py +++ b/llvm/utils/sort_includes.py @@ -29,7 +29,8 @@ def sort_includes(f): headers_end = 0 api_headers = [] local_headers = [] - project_headers = [] + subproject_headers = [] + llvm_headers = [] system_headers = [] for (i, l) in enumerate(lines): if l.strip() == '': @@ -44,12 +45,16 @@ def sort_includes(f): api_headers.append(header) look_for_api_header = False continue - if header.startswith('<') or header.startswith('"gtest/'): + if (header.startswith('<') or header.startswith('"gtest/') or + header.startswith('"isl/') or header.startswith('"json/')): system_headers.append(header) continue - if (header.startswith('"llvm/') or header.startswith('"llvm-c/') or - header.startswith('"clang/') or header.startswith('"clang-c/')): - project_headers.append(header) + if (header.startswith('"clang/') or header.startswith('"clang-c/') or + header.startswith('"polly/')): + subproject_headers.append(header) + continue + if (header.startswith('"llvm/') or header.startswith('"llvm-c/')): + llvm_headers.append(header) continue local_headers.append(header) continue @@ -65,9 +70,10 @@ def sort_includes(f): return local_headers = sorted(set(local_headers)) - project_headers = sorted(set(project_headers)) + subproject_headers = sorted(set(subproject_headers)) + llvm_headers = sorted(set(llvm_headers)) system_headers = sorted(set(system_headers)) - headers = api_headers + local_headers + project_headers + system_headers + headers = api_headers + local_headers + subproject_headers + llvm_headers + system_headers header_lines = ['#include ' + h for h in headers] lines = lines[:headers_begin] + header_lines + lines[headers_end + 1:]