authorgravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2022-01-27 13:39:28-07:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2022-01-27 13:39:28-07:00
log0e6d2184cacf2dd1fad7508b2f9ae99d78763148
tree96431e859e91a817e1f0e8cc990b658a8f8bf957
parentf589a66062fb99c737ab84dc5106add596cc03d4

stage2: .stub files are yet another c++ source file extension

however .cu files are a superset of c++.

2 files changed, 11 insertions(+), 14 deletions(-)

src/Compilation.zig+7-10
......@@ -3854,7 +3854,7 @@ pub fn addCCArgs(
38543854 try argv.appendSlice(&[_][]const u8{ "-target", llvm_triple });
38553855
38563856 switch (ext) {
3857 .c, .cpp, .m, .mm, .h, .cuda => {
3857 .c, .cpp, .m, .mm, .h, .cu => {
38583858 try argv.appendSlice(&[_][]const u8{
38593859 "-nostdinc",
38603860 "-fno-spell-checking",
......@@ -4153,7 +4153,7 @@ fn failCObjWithOwnedErrorMsg(
41534153pub const FileExt = enum {
41544154 c,
41554155 cpp,
4156 cuda,
4156 cu,
41574157 h,
41584158 m,
41594159 mm,
......@@ -4168,7 +4168,7 @@ pub const FileExt = enum {
41684168
41694169 pub fn clangSupportsDepFile(ext: FileExt) bool {
41704170 return switch (ext) {
4171 .c, .cpp, .h, .m, .mm, .cuda => true,
4171 .c, .cpp, .h, .m, .mm, .cu => true,
41724172
41734173 .ll,
41744174 .bc,
......@@ -4199,11 +4199,8 @@ pub fn hasCppExt(filename: []const u8) bool {
41994199 return mem.endsWith(u8, filename, ".C") or
42004200 mem.endsWith(u8, filename, ".cc") or
42014201 mem.endsWith(u8, filename, ".cpp") or
4202 mem.endsWith(u8, filename, ".cxx");
4203}
4204
4205pub fn hasCudaExt(filename: []const u8) bool {
4206 return mem.endsWith(u8, filename, ".cu") or mem.endsWith(u8, filename, ".stub");
4202 mem.endsWith(u8, filename, ".cxx") or
4203 mem.endsWith(u8, filename, ".stub");
42074204}
42084205
42094206pub fn hasObjCExt(filename: []const u8) bool {
......@@ -4270,8 +4267,8 @@ pub fn classifyFileExt(filename: []const u8) FileExt {
42704267 return .static_library;
42714268 } else if (hasObjectExt(filename)) {
42724269 return .object;
4273 } else if (hasCudaExt(filename)) {
4274 return .cuda;
4270 } else if (mem.endsWith(u8, filename, ".cu")) {
4271 return .cu;
42754272 } else {
42764273 return .unknown;
42774274 }
src/main.zig+4-4
......@@ -294,11 +294,11 @@ const usage_build_generic =
294294 \\ .s Target-specific assembly source code
295295 \\ .S Assembly with C preprocessor (requires LLVM extensions)
296296 \\ .c C source code (requires LLVM extensions)
297 \\ .cxx .cc .C .cpp C++ source code (requires LLVM extensions)
297 \\ .cxx .cc .C .cpp .stub C++ source code (requires LLVM extensions)
298298 \\ .m Objective-C source code (requires LLVM extensions)
299299 \\ .mm Objective-C++ source code (requires LLVM extensions)
300300 \\ .bc LLVM IR Module (requires LLVM extensions)
301 \\ .cu .stub Cuda source code (requires LLVM extensions)
301 \\ .cu Cuda source code (requires LLVM extensions)
302302 \\
303303 \\General Options:
304304 \\ -h, --help Print this help and exit
......@@ -1248,7 +1248,7 @@ fn buildOutputType(
12481248 .object, .static_library, .shared_library => {
12491249 try link_objects.append(.{ .path = arg });
12501250 },
1251 .assembly, .c, .cpp, .h, .ll, .bc, .m, .mm, .cuda => {
1251 .assembly, .c, .cpp, .h, .ll, .bc, .m, .mm, .cu => {
12521252 try c_source_files.append(.{
12531253 .src_path = arg,
12541254 .extra_flags = try arena.dupe([]const u8, extra_cflags.items),
......@@ -1316,7 +1316,7 @@ fn buildOutputType(
13161316 .positional => {
13171317 const file_ext = Compilation.classifyFileExt(mem.sliceTo(it.only_arg, 0));
13181318 switch (file_ext) {
1319 .assembly, .c, .cpp, .ll, .bc, .h, .m, .mm, .cuda => {
1319 .assembly, .c, .cpp, .ll, .bc, .h, .m, .mm, .cu => {
13201320 try c_source_files.append(.{ .src_path = it.only_arg });
13211321 },
13221322 .unknown, .shared_library, .object, .static_library => {