| 74 | |
| 75 | |
| 76 | def MakeRelativePathsInFlagsAbsolute(flags, working_directory=None): |
| 77 | if not working_directory: |
| 78 | return list(flags) |
| 79 | new_flags = [] |
| 80 | make_next_absolute = False |
| 81 | path_flags = ["-isystem", "-I", "-iquote", "--sysroot="] |
| 82 | for flag in flags: |
| 83 | new_flag = flag |
| 84 | |
| 85 | if make_next_absolute: |
| 86 | make_next_absolute = False |
| 87 | if not flag.startswith("/"): |
| 88 | new_flag = os.path.join(working_directory, flag) |
| 89 | |
| 90 | for path_flag in path_flags: |
| 91 | if flag == path_flag: |
| 92 | make_next_absolute = True |
| 93 | break |
| 94 | |
| 95 | if flag.startswith(path_flag): |
| 96 | path = flag[len(path_flag):] |
| 97 | new_flag = path_flag + os.path.join(working_directory, path) |
| 98 | break |
| 99 | |
| 100 | if new_flag: |
| 101 | new_flags.append(new_flag) |
| 102 | return new_flags |
| 103 | |
| 104 | |
| 105 | def IsHeaderFile(filename): |