| ... | @@ -89,8 +89,9 @@ fn get_moddir(basedir: []const u8, d: u.Dep, parent_name: []const u8, options: * | ... | @@ -89,8 +89,9 @@ fn get_moddir(basedir: []const u8, d: u.Dep, parent_name: []const u8, options: * |
| 89 | const p = try std.fs.path.join(gpa, &.{ basedir, try d.clean_path() }); | 89 | const p = try std.fs.path.join(gpa, &.{ basedir, try d.clean_path() }); |
| 90 | const pv = try std.fs.path.join(gpa, &.{ basedir, try d.clean_path_v() }); | 90 | const pv = try std.fs.path.join(gpa, &.{ basedir, try d.clean_path_v() }); |
| 91 | | 91 | |
| 92 | if (u.list_contains(options.already_fetched.items, p)) return p; | 92 | const nocache = d.type == .local or d.type == .system_lib; |
| 93 | if (u.list_contains(options.already_fetched.items, pv)) return pv; | 93 | if (!nocache and u.list_contains(options.already_fetched.items, p)) return p; |
| | 94 | if (!nocache and u.list_contains(options.already_fetched.items, pv)) return pv; |
| 94 | | 95 | |
| 95 | const tempdir = try std.fs.path.join(gpa, &.{ basedir, "temp" }); | 96 | const tempdir = try std.fs.path.join(gpa, &.{ basedir, "temp" }); |
| 96 | if (options.log and d.type != .local) { | 97 | if (options.log and d.type != .local) { |
| ... | @@ -199,7 +200,10 @@ pub fn get_module_from_dep(d: *u.Dep, dir: []const u8, parent_name: []const u8, | ... | @@ -199,7 +200,10 @@ pub fn get_module_from_dep(d: *u.Dep, dir: []const u8, parent_name: []const u8, |
| 199 | } | 200 | } |
| 200 | } | 201 | } |
| 201 | const moddir = try get_moddir(dir, d.*, parent_name, options); | 202 | const moddir = try get_moddir(dir, d.*, parent_name, options); |
| 202 | try options.already_fetched.append(moddir); | 203 | |
| | 204 | const nocache = d.type == .local or d.type == .system_lib; |
| | 205 | if (!nocache) try options.already_fetched.append(moddir); |
| | 206 | |
| 203 | switch (d.type) { | 207 | switch (d.type) { |
| 204 | .system_lib => { | 208 | .system_lib => { |
| 205 | return u.Module{ | 209 | return u.Module{ |