aboutsummaryrefslogtreecommitdiff
path: root/src/Package.zig
diff options
context:
space:
mode:
authorAndrew Kelley <andrew@ziglang.org>2024-01-02 14:11:27 -0800
committerGitHub <noreply@github.com>2024-01-02 14:11:27 -0800
commit289ae45c1b58e952867c4fa1e246d0ef7bc2ff64 (patch)
tree5dd034143a2354b7b44496e684f1c764e2f9664c /src/Package.zig
parentc89bb3e141ee215add0b52930d48bffd8dae8342 (diff)
parentc546ddb3edc557fae4b932e5239b9dcb66117832 (diff)
downloadzig-289ae45c1b58e952867c4fa1e246d0ef7bc2ff64.tar.gz
zig-289ae45c1b58e952867c4fa1e246d0ef7bc2ff64.zip
Merge pull request #18160 from ziglang/std-build-module
Move many settings from being per-Compilation to being per-Module
Diffstat (limited to 'src/Package.zig')
-rw-r--r--src/Package.zig14
1 files changed, 12 insertions, 2 deletions
diff --git a/src/Package.zig b/src/Package.zig
index ab06ca9852..da2e214154 100644
--- a/src/Package.zig
+++ b/src/Package.zig
@@ -88,10 +88,10 @@ pub const Path = struct {
p: Path,
sub_path: []const u8,
options: fs.Dir.AtomicFileOptions,
+ buf: *[fs.MAX_PATH_BYTES]u8,
) !fs.AtomicFile {
- var buf: [fs.MAX_PATH_BYTES]u8 = undefined;
const joined_path = if (p.sub_path.len == 0) sub_path else p: {
- break :p std.fmt.bufPrint(&buf, "{s}" ++ fs.path.sep_str ++ "{s}", .{
+ break :p std.fmt.bufPrint(buf, "{s}" ++ fs.path.sep_str ++ "{s}", .{
p.sub_path, sub_path,
}) catch return error.NameTooLong;
};
@@ -108,6 +108,16 @@ pub const Path = struct {
return p.root_dir.handle.access(joined_path, flags);
}
+ pub fn makePath(p: Path, sub_path: []const u8) !void {
+ var buf: [fs.MAX_PATH_BYTES]u8 = undefined;
+ const joined_path = if (p.sub_path.len == 0) sub_path else p: {
+ break :p std.fmt.bufPrint(&buf, "{s}" ++ fs.path.sep_str ++ "{s}", .{
+ p.sub_path, sub_path,
+ }) catch return error.NameTooLong;
+ };
+ return p.root_dir.handle.makePath(joined_path);
+ }
+
pub fn format(
self: Path,
comptime fmt_string: []const u8,