authorgravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2020-08-20 23:53:34-07:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2020-08-20 23:53:34-07:00
loge0a38f7f3e2b3dc272cd9ab4f826315590664779
treedcb2fba7ae65ac63b3e8e7d421f25b67da600822
parent6bbb168f6667520dc106bc93c6e3761d5611fccb

stage2: make the cache dir if it doesn't already exist


1 files changed, 8 insertions(+), 5 deletions(-)

src-self-hosted/introspect.zig+8-5
......@@ -87,6 +87,13 @@ pub fn resolveGlobalCacheDir(allocator: *mem.Allocator) ![]u8 {
8787 return fs.getAppDataDir(allocator, appname);
8888}
8989
90pub fn openGlobalCacheDir() !fs.Dir {
91 var buf: [fs.MAX_PATH_BYTES]u8 = undefined;
92 var fba = std.heap.FixedBufferAllocator.init(&buf);
93 const path_name = try resolveGlobalCacheDir(&fba.allocator);
94 return fs.cwd().makeOpenPath(path_name, .{});
95}
96
9097var compiler_id_mutex = std.Mutex{};
9198var compiler_id: [16]u8 = undefined;
9299var compiler_id_computed = false;
......@@ -99,11 +106,7 @@ pub fn resolveCompilerId(gpa: *mem.Allocator) ![16]u8 {
99106 return compiler_id;
100107 compiler_id_computed = true;
101108
102 const global_cache_dir = try resolveGlobalCacheDir(gpa);
103 defer gpa.free(global_cache_dir);
104
105 // TODO Introduce openGlobalCacheDir which returns a dir handle rather than a string.
106 var cache_dir = try fs.cwd().openDir(global_cache_dir, .{});
109 var cache_dir = try openGlobalCacheDir();
107110 defer cache_dir.close();
108111
109112 var ch = try CacheHash.init(gpa, cache_dir, "exe");