authorgravatar for hello@nektro.netMeghan Denny <hello@nektro.net> 2021-04-07 19:55:38 -07:00
committergravatar for hello@nektro.netMeghan Denny <hello@nektro.net> 2021-04-07 19:55:38 -07:00
log04dc3a14a6ff7ae0701922b56b312740aa075c3a
treea84ae5985f3b2a1396849a0970c3a0d6b34809eb
parent736dc126e79c37d8b42429332e01bf6db1a550dc
signaturelock-open Commit is signed but in an unrecognized format.

util/modfile- add dep_list_by_name func


1 files changed, 18 insertions(+), 13 deletions(-)

src/util/modfile.zig+18-13
......@@ -38,8 +38,24 @@ pub const ModFile = struct {
3838 const name = mapping.get("name").?.string;
3939 const main = mapping.get_string("main");
4040
41 const dep_list = try dep_list_by_name(alloc, mapping, "dependencies");
42
43 return Self{
44 .alloc = alloc,
45 .id = if (id.len == 0) try u.random_string(48) else id,
46 .name = name,
47 .main = main,
48 .c_include_dirs = try mapping.get_string_array(alloc, "c_include_dirs"),
49 .c_source_flags = try mapping.get_string_array(alloc, "c_source_flags"),
50 .c_source_files = try mapping.get_string_array(alloc, "c_source_files"),
51 .deps = dep_list.items,
52 .yaml = mapping,
53 };
54 }
55
56 fn dep_list_by_name(alloc: *std.mem.Allocator, mapping: yaml.Mapping, prop: []const u8) !*std.ArrayList(u.Dep) {
4157 const dep_list = &std.ArrayList(u.Dep).init(alloc);
42 if (mapping.get("dependencies")) |dep_seq| {
58 if (mapping.get(prop)) |dep_seq| {
4359 if (dep_seq == .sequence) {
4460 for (dep_seq.sequence) |item| {
4561 var dtype: []const u8 = undefined;
......@@ -81,17 +97,6 @@ pub const ModFile = struct {
8197 }
8298 }
8399 }
84
85 return Self{
86 .alloc = alloc,
87 .id = if (id.len == 0) try u.random_string(48) else id,
88 .name = name,
89 .main = main,
90 .c_include_dirs = try mapping.get_string_array(alloc, "c_include_dirs"),
91 .c_source_flags = try mapping.get_string_array(alloc, "c_source_flags"),
92 .c_source_files = try mapping.get_string_array(alloc, "c_source_files"),
93 .deps = dep_list.items,
94 .yaml = mapping,
95 };
100 return dep_list;
96101 }
97102};