| ... | ... | @@ -5925,21 +5925,42 @@ pub fn hasCExt(filename: []const u8) bool { |
| 5925 | 5925 | return mem.endsWith(u8, filename, ".c"); |
| 5926 | 5926 | } |
| 5927 | 5927 | |
| 5928 | pub fn hasCHExt(filename: []const u8) bool { |
| 5929 | return mem.endsWith(u8, filename, ".h"); |
| 5930 | } |
| 5931 | |
| 5928 | 5932 | pub fn hasCppExt(filename: []const u8) bool { |
| 5929 | 5933 | return mem.endsWith(u8, filename, ".C") or |
| 5930 | 5934 | mem.endsWith(u8, filename, ".cc") or |
| 5935 | mem.endsWith(u8, filename, ".cp") or |
| 5936 | mem.endsWith(u8, filename, ".CPP") or |
| 5931 | 5937 | mem.endsWith(u8, filename, ".cpp") or |
| 5932 | 5938 | mem.endsWith(u8, filename, ".cxx") or |
| 5933 | 5939 | mem.endsWith(u8, filename, ".c++") or |
| 5934 | 5940 | mem.endsWith(u8, filename, ".stub"); |
| 5935 | 5941 | } |
| 5936 | 5942 | |
| 5943 | pub fn hasCppHExt(filename: []const u8) bool { |
| 5944 | return mem.endsWith(u8, filename, ".hh") or |
| 5945 | mem.endsWith(u8, filename, ".hpp") or |
| 5946 | mem.endsWith(u8, filename, ".hxx"); |
| 5947 | } |
| 5948 | |
| 5937 | 5949 | pub fn hasObjCExt(filename: []const u8) bool { |
| 5938 | 5950 | return mem.endsWith(u8, filename, ".m"); |
| 5939 | 5951 | } |
| 5940 | 5952 | |
| 5953 | pub fn hasObjCHExt(filename: []const u8) bool { |
| 5954 | return mem.endsWith(u8, filename, ".hm"); |
| 5955 | } |
| 5956 | |
| 5941 | 5957 | pub fn hasObjCppExt(filename: []const u8) bool { |
| 5942 | | return mem.endsWith(u8, filename, ".mm"); |
| 5958 | return mem.endsWith(u8, filename, ".M") or |
| 5959 | mem.endsWith(u8, filename, ".mm"); |
| 5960 | } |
| 5961 | |
| 5962 | pub fn hasObjCppHExt(filename: []const u8) bool { |
| 5963 | return mem.endsWith(u8, filename, ".hmm"); |
| 5943 | 5964 | } |
| 5944 | 5965 | |
| 5945 | 5966 | pub fn hasSharedLibraryExt(filename: []const u8) bool { |
| ... | ... | @@ -5972,12 +5993,20 @@ pub fn hasSharedLibraryExt(filename: []const u8) bool { |
| 5972 | 5993 | pub fn classifyFileExt(filename: []const u8) FileExt { |
| 5973 | 5994 | if (hasCExt(filename)) { |
| 5974 | 5995 | return .c; |
| 5996 | } else if (hasCHExt(filename)) { |
| 5997 | return .h; |
| 5975 | 5998 | } else if (hasCppExt(filename)) { |
| 5976 | 5999 | return .cpp; |
| 6000 | } else if (hasCppHExt(filename)) { |
| 6001 | return .hpp; |
| 5977 | 6002 | } else if (hasObjCExt(filename)) { |
| 5978 | 6003 | return .m; |
| 6004 | } else if (hasObjCHExt(filename)) { |
| 6005 | return .hm; |
| 5979 | 6006 | } else if (hasObjCppExt(filename)) { |
| 5980 | 6007 | return .mm; |
| 6008 | } else if (hasObjCppHExt(filename)) { |
| 6009 | return .hmm; |
| 5981 | 6010 | } else if (mem.endsWith(u8, filename, ".ll")) { |
| 5982 | 6011 | return .ll; |
| 5983 | 6012 | } else if (mem.endsWith(u8, filename, ".bc")) { |
| ... | ... | @@ -5986,8 +6015,6 @@ pub fn classifyFileExt(filename: []const u8) FileExt { |
| 5986 | 6015 | return .assembly; |
| 5987 | 6016 | } else if (mem.endsWith(u8, filename, ".S")) { |
| 5988 | 6017 | return .assembly_with_cpp; |
| 5989 | | } else if (mem.endsWith(u8, filename, ".h")) { |
| 5990 | | return .h; |
| 5991 | 6018 | } else if (mem.endsWith(u8, filename, ".zig")) { |
| 5992 | 6019 | return .zig; |
| 5993 | 6020 | } else if (hasSharedLibraryExt(filename)) { |