| ... | ... | @@ -95,6 +95,7 @@ pub const Parsed = struct { |
| 95 | 95 | cflags: []const []const u8, |
| 96 | 96 | libs: []const []const u8, |
| 97 | 97 | unknown_flags: []const []const u8, |
| 98 | pthread: bool, |
| 98 | 99 | }; |
| 99 | 100 | |
| 100 | 101 | pub const ParseError = Allocator.Error || error{InvalidPkgConfigOutput}; |
| ... | ... | @@ -105,6 +106,7 @@ pub fn parse(arena: Allocator, stdout: []const u8) ParseError!Parsed { |
| 105 | 106 | var zig_libs: std.ArrayList([]const u8) = .empty; |
| 106 | 107 | var unknown_flags: std.ArrayList([]const u8) = .empty; |
| 107 | 108 | var arg_it = mem.tokenizeAny(u8, stdout, " \r\n\t"); |
| 109 | var pthread = false; |
| 108 | 110 | |
| 109 | 111 | while (arg_it.next()) |arg| { |
| 110 | 112 | if (mem.eql(u8, arg, "-I")) { |
| ... | ... | @@ -129,6 +131,8 @@ pub fn parse(arena: Allocator, stdout: []const u8) ParseError!Parsed { |
| 129 | 131 | try zig_cflags.append(arena, arg); |
| 130 | 132 | } else if (mem.cutPrefix(u8, arg, "-Wl,-rpath,")) |rest| { |
| 131 | 133 | try zig_cflags.appendSlice(arena, &.{ "-rpath", rest }); |
| 134 | } else if (mem.eql(u8, arg, "-pthread")) { |
| 135 | pthread = true; |
| 132 | 136 | } else { |
| 133 | 137 | try unknown_flags.append(arena, arg); |
| 134 | 138 | } |
| ... | ... | @@ -142,5 +146,6 @@ pub fn parse(arena: Allocator, stdout: []const u8) ParseError!Parsed { |
| 142 | 146 | .cflags = zig_cflags.toOwnedSliceAssert(), |
| 143 | 147 | .libs = zig_libs.toOwnedSliceAssert(), |
| 144 | 148 | .unknown_flags = unknown_flags.toOwnedSliceAssert(), |
| 149 | .pthread = pthread, |
| 145 | 150 | }; |
| 146 | 151 | } |