diff --git a/README.md b/README.md index c62d6caa5893069634f945160d63cf0137c1cc38..b54a8465cf08e803f5775f420f955a668c571e1c 100644 --- a/README.md +++ b/README.md @@ -16,6 +16,14 @@ A package manager for the Zig programming language. ## Download - https://github.com/nektro/zigmod/releases +0.11.0-dev.389+e35f297ae ArrayList.toOwnedSlice +0.11.0-dev.874+40ed6ae84 field_type -> type, layout field +0.11.0-dev.692+023b597ab ascii rename +0.11.0-dev.632+d69e97ae1 compileError is comptime +0.11.0-dev.67+1d6804591 .i386 -> .x86 +0.11.0-dev.1570+693b12f8e std.build.Pkg removed, updated to new system +0.11.0-dev.1567+60935decd std.zig.Ast.parse + ## Built With - Zig master (at least `0.11.0-dev.1570+693b12f8e`) - See [`zig.mod`](./zig.mod) and [`zigmod.lock`](./zigmod.lock) diff --git a/build.zig b/build.zig index 8ae0d6e074b78bd55cc234562a6b46ec89ac972f..ec53764245ebb95f69a5320a2845e752de735d8e 100644 --- a/build.zig +++ b/build.zig @@ -10,12 +10,7 @@ pub fn build(b: *std.build.Builder) void { const use_full_name = b.option(bool, "use-full-name", "") orelse false; const with_arch_os = b.fmt("-{s}-{s}", .{ @tagName(target.cpu_arch orelse builtin.cpu.arch), @tagName(target.os_tag orelse builtin.os.tag) }); const exe_name = b.fmt("{s}{s}", .{ "zigmod", if (use_full_name) with_arch_os else "" }); - const exe = b.addExecutable(.{ - .name = exe_name, - .root_source_file = .{ .path = "src/main.zig" }, - .target = target, - .optimize = optimize, - }); + const exe = b.addExecutable(.{ .name = exe_name, .root_source_file = .{ .path = "src/main.zig" }, .target = target, .optimize = optimize }); const exe_options = b.addOptions(); exe.addOptions("build_options", exe_options); diff --git a/src/cmd/fetch.zig b/src/cmd/fetch.zig index 9d064fdae1ce569a60f94efcd1e969a3ccf0b7d1..d1fd83ec6360057b2d4eb5fc2ba6ad9527485ecb 100644 --- a/src/cmd/fetch.zig +++ b/src/cmd/fetch.zig @@ -41,8 +41,8 @@ pub fn create_depszig(alloc: std.mem.Allocator, cachepath: string, dir: std.fs.D try w.writeAll("// zig fmt: off\n"); try w.writeAll("const std = @import(\"std\");\n"); try w.writeAll("const builtin = @import(\"builtin\");\n"); - try w.writeAll("const Pkg = std.build.Pkg;\n"); try w.writeAll("const string = []const u8;\n"); + try w.writeAll("const ModuleDependency = std.build.ModuleDependency;\n"); try w.writeAll("\n"); try w.print("pub const cache = \"{}\";\n", .{std.zig.fmtEscapes(cachepath)}); try w.writeAll("\n"); @@ -51,7 +51,8 @@ pub fn create_depszig(alloc: std.mem.Allocator, cachepath: string, dir: std.fs.D \\ checkMinZig(builtin.zig_version, exe); \\ @setEvalBranchQuota(1_000_000); \\ for (packages) |pkg| { - \\ exe.addPackage(pkg.pkg.?); + \\ const moddep = pkg.pkg.?.zp(exe.builder); + \\ exe.addModule(moddep.name, moddep.module); \\ } \\ var llc = false; \\ var vcpkg = false; @@ -91,6 +92,26 @@ pub fn create_depszig(alloc: std.mem.Allocator, cachepath: string, dir: std.fs.D \\ vcpkg: bool = false, \\}; \\ + \\pub const Pkg = struct { + \\ name: string, + \\ source: std.build.FileSource, + \\ dependencies: []const Pkg, + \\ + \\ pub fn zp(self: *const Pkg, b: *std.build.Builder) ModuleDependency { + \\ var temp: [100]ModuleDependency = undefined; + \\ for (self.dependencies) |item, i| { + \\ temp[i] = item.zp(b); + \\ } + \\ return .{ + \\ .name = self.name, + \\ .module = b.createModule(.{ + \\ .source_file = self.source, + \\ .dependencies = b.allocator.dupe(ModuleDependency, temp[0..self.dependencies.len]) catch @panic("oom"), + \\ }), + \\ }; + \\ } + \\}; + \\ \\ ); @@ -290,7 +311,7 @@ fn print_pkg_data_to(w: std.fs.File.Writer, notdone: *std.ArrayList(zigmod.Modul mod.main, }); if (mod.has_no_zig_deps()) { - try w.writeAll(" null },\n"); + try w.writeAll(" &.{} },\n"); } else { try w.writeAll(" &.{"); for (mod.deps) |moddep, j| { diff --git a/src/cmd/generate.zig b/src/cmd/generate.zig index d1042e89e13e42797440c08edc39f70d6378bbdf..4b411b673a0e6cafc908f8a93b0262258703ce53 100644 --- a/src/cmd/generate.zig +++ b/src/cmd/generate.zig @@ -39,7 +39,7 @@ pub fn create_depszig(alloc: std.mem.Allocator, cachepath: string, dir: std.fs.D try w.writeAll("// zig fmt: off\n"); try w.writeAll("const std = @import(\"std\");\n"); try w.writeAll("const builtin = @import(\"builtin\");\n"); - try w.writeAll("const Pkg = std.build.Pkg;\n"); + try w.writeAll("const ModuleDependency = std.build.ModuleDependency;\n"); try w.writeAll("const string = []const u8;\n"); try w.writeAll("\n"); try w.writeAll( @@ -122,7 +122,8 @@ pub fn create_depszig(alloc: std.mem.Allocator, cachepath: string, dir: std.fs.D \\ const b = exe.builder; \\ @setEvalBranchQuota(1_000_000); \\ for (packages) |pkg| { - \\ exe.addPackage(pkg.zp(b)); + \\ const moddep = pkg.zp(b); + \\ exe.addModule(moddep.name, moddep.module); \\ } \\ var llc = false; \\ var vcpkg = false; @@ -164,15 +165,17 @@ pub fn create_depszig(alloc: std.mem.Allocator, cachepath: string, dir: std.fs.D \\ frameworks: []const string = &.{}, \\ vcpkg: bool = false, \\ - \\ pub fn zp(self: *const Package, b: *std.build.Builder) Pkg { - \\ var temp: [100]Pkg = undefined; + \\ pub fn zp(self: *const Package, b: *std.build.Builder) ModuleDependency { + \\ var temp: [100]ModuleDependency = undefined; \\ for (self.deps) |item, i| { \\ temp[i] = item.zp(b); \\ } \\ return .{ \\ .name = self.name, - \\ .source = .{ .path = self.entry.? }, - \\ .dependencies = b.allocator.dupe(Pkg, temp[0..self.deps.len]) catch @panic("oom"), + \\ .module = b.createModule(.{ + \\ .source_file = .{ .path = self.entry.? }, + \\ .dependencies = b.allocator.dupe(ModuleDependency, temp[0..self.deps.len]) catch @panic("oom"), + \\ }), \\ }; \\ } \\};