@@ -3,12 +3,12 @@ const std = @import("std");
3
3
const ArrayList = std .ArrayList ;
4
4
const Compile = std .Build .Step .Compile ;
5
5
const ConfigHeader = std .Build .Step .ConfigHeader ;
6
- const Mode = std .builtin .Mode ;
7
- const CrossTarget = std .zig . CrossTarget ;
6
+ const Mode = std .builtin .OptimizeMode ;
7
+ const Target = std .Build . ResolvedTarget ;
8
8
9
9
const Maker = struct {
10
- builder : * std.build.Builder ,
11
- target : CrossTarget ,
10
+ builder : * std.Build ,
11
+ target : Target ,
12
12
optimize : Mode ,
13
13
enable_lto : bool ,
14
14
@@ -34,10 +34,10 @@ const Maker = struct {
34
34
try m .addCxxFlag (flag );
35
35
}
36
36
37
- fn init (builder : * std.build.Builder ) ! Maker {
37
+ fn init (builder : * std.Build ) ! Maker {
38
38
const target = builder .standardTargetOptions (.{});
39
39
const zig_version = @import ("builtin" ).zig_version_string ;
40
- const commit_hash = try std .ChildProcess .exec (
40
+ const commit_hash = try std .ChildProcess .run (
41
41
.{ .allocator = builder .allocator , .argv = &.{ "git" , "rev-parse" , "HEAD" } },
42
42
);
43
43
try std .fs .cwd ().writeFile ("common/build-info.cpp" , builder .fmt (
@@ -46,7 +46,7 @@ const Maker = struct {
46
46
\\char const *LLAMA_COMPILER = "Zig {s}";
47
47
\\char const *LLAMA_BUILD_TARGET = "{s}";
48
48
\\
49
- , .{ 0 , commit_hash .stdout [0 .. commit_hash .stdout .len - 1 ], zig_version , try target .allocDescription (builder .allocator ) }));
49
+ , .{ 0 , commit_hash .stdout [0 .. commit_hash .stdout .len - 1 ], zig_version , try target .query . zigTriple (builder .allocator ) }));
50
50
var m = Maker {
51
51
.builder = builder ,
52
52
.target = target ,
@@ -67,15 +67,15 @@ const Maker = struct {
67
67
68
68
fn obj (m : * const Maker , name : []const u8 , src : []const u8 ) * Compile {
69
69
const o = m .builder .addObject (.{ .name = name , .target = m .target , .optimize = m .optimize });
70
- if (o .target .getAbi () != .msvc )
70
+ if (m .target .result . abi != .msvc )
71
71
o .defineCMacro ("_GNU_SOURCE" , null );
72
72
73
73
if (std .mem .endsWith (u8 , src , ".c" )) {
74
- o .addCSourceFiles (&.{src }, m .cflags .items );
74
+ o .addCSourceFiles (.{ . files = &.{src }, . flags = m .cflags .items } );
75
75
o .linkLibC ();
76
76
} else {
77
- o .addCSourceFiles (&.{src }, m .cxxflags .items );
78
- if (o .target .getAbi () == .msvc ) {
77
+ o .addCSourceFiles (.{ . files = &.{src }, . flags = m .cxxflags .items } );
78
+ if (m .target .result . abi == .msvc ) {
79
79
o .linkLibC (); // need winsdk + crt
80
80
} else {
81
81
// linkLibCpp already add (libc++ + libunwind + libc)
@@ -89,13 +89,13 @@ const Maker = struct {
89
89
90
90
fn exe (m : * const Maker , name : []const u8 , src : []const u8 , deps : []const * Compile ) * Compile {
91
91
const e = m .builder .addExecutable (.{ .name = name , .target = m .target , .optimize = m .optimize });
92
- e .addCSourceFiles (&.{src }, m .cxxflags .items );
92
+ e .addCSourceFiles (.{ . files = &.{src }, . flags = m .cxxflags .items } );
93
93
for (deps ) | d | e .addObject (d );
94
94
for (m .objs .items ) | o | e .addObject (o );
95
95
for (m .include_dirs .items ) | i | e .addIncludePath (.{ .path = i });
96
96
97
97
// https://github.com/ziglang/zig/issues/15448
98
- if (e .target .getAbi () == .msvc ) {
98
+ if (m .target .result . abi == .msvc ) {
99
99
e .linkLibC (); // need winsdk + crt
100
100
} else {
101
101
// linkLibCpp already add (libc++ + libunwind + libc)
@@ -107,7 +107,7 @@ const Maker = struct {
107
107
}
108
108
};
109
109
110
- pub fn build (b : * std.build.Builder ) ! void {
110
+ pub fn build (b : * std.Build ) ! void {
111
111
var make = try Maker .init (b );
112
112
make .enable_lto = b .option (bool , "lto" , "Enable LTO optimization, (default: false)" ) orelse false ;
113
113
@@ -132,7 +132,7 @@ pub fn build(b: *std.build.Builder) !void {
132
132
_ = make .exe ("train-text-from-scratch" , "examples/train-text-from-scratch/train-text-from-scratch.cpp" , &.{ ggml , ggml_alloc , ggml_backend , ggml_quants , llama , common , buildinfo , train });
133
133
134
134
const server = make .exe ("server" , "examples/server/server.cpp" , &.{ ggml , ggml_alloc , ggml_backend , ggml_quants , llama , common , buildinfo , sampling , grammar_parser , clip });
135
- if (server .target .isWindows () ) {
135
+ if (make .target .result . os . tag == .windows ) {
136
136
server .linkSystemLibrary ("ws2_32" );
137
137
}
138
138
}
0 commit comments