| ... | ... | @@ -1998,17 +1998,19 @@ fn installSymLinksInner( |
| 1998 | 1998 | ) !void { |
| 1999 | 1999 | const io = maker.graph.io; |
| 2000 | 2000 | const step = stepByIndex(maker, asking_step_index); |
| 2001 | const out_basename = Io.Dir.path.basename(output_path.sub_path); |
| 2002 | |
| 2001 | 2003 | const out_dir = output_path.dirname().?; |
| 2002 | | // sym link for libfoo.so.1 to libfoo.so.1.2.3 |
| 2003 | 2004 | const major_only_path = try out_dir.join(arena, filename_major_only); |
| 2004 | | output_path.root_dir.handle.symLinkAtomic(io, output_path.sub_path, major_only_path.sub_path, .{}) catch |err| { |
| 2005 | | return step.fail(maker, "unable to symlink {f} -> {f}: {t}", .{ output_path, major_only_path, err }); |
| 2006 | | }; |
| 2007 | | // sym link for libfoo.so to libfoo.so.1 |
| 2008 | 2005 | const name_only_path = try out_dir.join(arena, filename_name_only); |
| 2009 | | major_only_path.root_dir.handle.symLinkAtomic(io, major_only_path.sub_path, name_only_path.sub_path, .{}) catch |err| { |
| 2010 | | return step.fail(maker, "unable to symlink {f} -> {s}: {t}", .{ name_only_path, filename_major_only, err }); |
| 2011 | | }; |
| 2006 | |
| 2007 | // libfoo.so.1 to libfoo.so.1.2.3 |
| 2008 | major_only_path.root_dir.handle.symLinkAtomic(io, out_basename, major_only_path.sub_path, .{}) catch |err| |
| 2009 | return step.fail(maker, "failed symlinking {f} to {s}: {t}", .{ output_path, out_basename, err }); |
| 2010 | |
| 2011 | // libfoo.so to libfoo.so.1 |
| 2012 | name_only_path.root_dir.handle.symLinkAtomic(io, filename_major_only, name_only_path.sub_path, .{}) catch |err| |
| 2013 | return step.fail(maker, "failed symlinking {f} to {s}: {t}", .{ name_only_path, filename_major_only, err }); |
| 2012 | 2014 | } |
| 2013 | 2015 | |
| 2014 | 2016 | fn cleanExit(io: Io, scanned_config: *const ScannedConfig) void { |