| ... | ... | @@ -1388,66 +1388,50 @@ pub const LibExeObjStep = struct { |
| 1388 | 1388 | } |
| 1389 | 1389 | |
| 1390 | 1390 | fn computeOutFileNames(self: *LibExeObjStep) void { |
| 1391 | | // TODO make this call std.zig.binNameAlloc |
| 1392 | | switch (self.kind) { |
| 1393 | | .Obj => { |
| 1394 | | self.out_filename = self.builder.fmt("{}{}", .{ self.name, self.target.oFileExt() }); |
| 1395 | | }, |
| 1396 | | .Exe => { |
| 1397 | | self.out_filename = self.builder.fmt("{}{}", .{ self.name, self.target.exeFileExt() }); |
| 1398 | | }, |
| 1399 | | .Test => { |
| 1400 | | self.out_filename = self.builder.fmt("test{}", .{self.target.exeFileExt()}); |
| 1391 | const target_info = std.zig.system.NativeTargetInfo.detect( |
| 1392 | self.builder.allocator, |
| 1393 | self.target, |
| 1394 | ) catch unreachable; |
| 1395 | const target = target_info.target; |
| 1396 | self.out_filename = std.zig.binNameAlloc(self.builder.allocator, .{ |
| 1397 | .root_name = self.name, |
| 1398 | .target = target, |
| 1399 | .output_mode = switch (self.kind) { |
| 1400 | .Lib => .Lib, |
| 1401 | .Obj => .Obj, |
| 1402 | .Exe, .Test => .Exe, |
| 1401 | 1403 | }, |
| 1402 | | .Lib => { |
| 1403 | | if (!self.is_dynamic) { |
| 1404 | | self.out_filename = self.builder.fmt("{}{}{}", .{ |
| 1405 | | self.target.libPrefix(), |
| 1404 | .link_mode = if (self.is_dynamic) .Dynamic else .Static, |
| 1405 | .version = self.version, |
| 1406 | }) catch unreachable; |
| 1407 | |
| 1408 | if (self.kind == .Lib) { |
| 1409 | if (!self.is_dynamic) { |
| 1410 | self.out_lib_filename = self.out_filename; |
| 1411 | } else if (self.version) |version| { |
| 1412 | if (target.isDarwin()) { |
| 1413 | self.major_only_filename = self.builder.fmt("lib{}.{d}.dylib", .{ |
| 1406 | 1414 | self.name, |
| 1407 | | self.target.staticLibSuffix(), |
| 1415 | version.major, |
| 1408 | 1416 | }); |
| 1417 | self.name_only_filename = self.builder.fmt("lib{}.dylib", .{self.name}); |
| 1409 | 1418 | self.out_lib_filename = self.out_filename; |
| 1410 | | } else if (self.version) |version| { |
| 1411 | | if (self.target.isDarwin()) { |
| 1412 | | self.out_filename = self.builder.fmt("lib{}.{d}.{d}.{d}.dylib", .{ |
| 1413 | | self.name, |
| 1414 | | version.major, |
| 1415 | | version.minor, |
| 1416 | | version.patch, |
| 1417 | | }); |
| 1418 | | self.major_only_filename = self.builder.fmt("lib{}.{d}.dylib", .{ |
| 1419 | | self.name, |
| 1420 | | version.major, |
| 1421 | | }); |
| 1422 | | self.name_only_filename = self.builder.fmt("lib{}.dylib", .{self.name}); |
| 1423 | | self.out_lib_filename = self.out_filename; |
| 1424 | | } else if (self.target.isWindows()) { |
| 1425 | | self.out_filename = self.builder.fmt("{}.dll", .{self.name}); |
| 1426 | | self.out_lib_filename = self.builder.fmt("{}.lib", .{self.name}); |
| 1427 | | } else { |
| 1428 | | self.out_filename = self.builder.fmt("lib{}.so.{d}.{d}.{d}", .{ |
| 1429 | | self.name, |
| 1430 | | version.major, |
| 1431 | | version.minor, |
| 1432 | | version.patch, |
| 1433 | | }); |
| 1434 | | self.major_only_filename = self.builder.fmt("lib{}.so.{d}", .{ self.name, version.major }); |
| 1435 | | self.name_only_filename = self.builder.fmt("lib{}.so", .{self.name}); |
| 1436 | | self.out_lib_filename = self.out_filename; |
| 1437 | | } |
| 1419 | } else if (target.os.tag == .windows) { |
| 1420 | self.out_lib_filename = self.builder.fmt("{}.lib", .{self.name}); |
| 1438 | 1421 | } else { |
| 1439 | | if (self.target.isDarwin()) { |
| 1440 | | self.out_filename = self.builder.fmt("lib{}.dylib", .{self.name}); |
| 1441 | | self.out_lib_filename = self.out_filename; |
| 1442 | | } else if (self.target.isWindows()) { |
| 1443 | | self.out_filename = self.builder.fmt("{}.dll", .{self.name}); |
| 1444 | | self.out_lib_filename = self.builder.fmt("{}.lib", .{self.name}); |
| 1445 | | } else { |
| 1446 | | self.out_filename = self.builder.fmt("lib{}.so", .{self.name}); |
| 1447 | | self.out_lib_filename = self.out_filename; |
| 1448 | | } |
| 1422 | self.major_only_filename = self.builder.fmt("lib{}.so.{d}", .{ self.name, version.major }); |
| 1423 | self.name_only_filename = self.builder.fmt("lib{}.so", .{self.name}); |
| 1424 | self.out_lib_filename = self.out_filename; |
| 1449 | 1425 | } |
| 1450 | | }, |
| 1426 | } else { |
| 1427 | if (target.isDarwin()) { |
| 1428 | self.out_lib_filename = self.out_filename; |
| 1429 | } else if (target.os.tag == .windows) { |
| 1430 | self.out_lib_filename = self.builder.fmt("{}.lib", .{self.name}); |
| 1431 | } else { |
| 1432 | self.out_lib_filename = self.out_filename; |
| 1433 | } |
| 1434 | } |
| 1451 | 1435 | } |
| 1452 | 1436 | } |
| 1453 | 1437 | |
| ... | ... | @@ -2046,7 +2030,7 @@ pub const LibExeObjStep = struct { |
| 2046 | 2030 | |
| 2047 | 2031 | if (self.image_base) |image_base| { |
| 2048 | 2032 | try zig_args.append("--image-base"); |
| 2049 | | try zig_args.append(image_base); |
| 2033 | try zig_args.append(builder.fmt("0x{x}", .{image_base})); |
| 2050 | 2034 | } |
| 2051 | 2035 | |
| 2052 | 2036 | if (self.filter) |filter| { |