@@ -11,8 +11,6 @@ const Maker = struct {
11
11
target : Target ,
12
12
optimize : Mode ,
13
13
enable_lto : bool ,
14
- build_all : bool ,
15
- install_libs : bool ,
16
14
17
15
include_dirs : ArrayList ([]const u8 ),
18
16
cflags : ArrayList ([]const u8 ),
@@ -54,8 +52,6 @@ const Maker = struct {
54
52
.target = target ,
55
53
.optimize = builder .standardOptimizeOption (.{}),
56
54
.enable_lto = false ,
57
- .build_all = false ,
58
- .install_libs = false ,
59
55
.include_dirs = ArrayList ([]const u8 ).init (builder .allocator ),
60
56
.cflags = ArrayList ([]const u8 ).init (builder .allocator ),
61
57
.cxxflags = ArrayList ([]const u8 ).init (builder .allocator ),
@@ -94,50 +90,42 @@ const Maker = struct {
94
90
} else {
95
91
o .addCSourceFiles (.{ .files = &.{src }, .flags = m .cxxflags .items });
96
92
if (m .target .result .abi == .msvc ) {
97
- o .addCSourceFiles (.{ .files = &.{src }, .flags = m .cxxflags .items });
98
- if (m .target .result .abi == .msvc ) {
99
- o .linkLibC (); // need winsdk + crt
100
- } else {
101
- // linkLibCpp already add (libc++ + libunwind + libc)
102
- o .linkLibCpp ();
103
- }
93
+ o .linkLibC (); // need winsdk + crt
94
+ } else {
95
+ // linkLibCpp already add (libc++ + libunwind + libc)
96
+ o .linkLibCpp ();
104
97
}
105
98
}
106
99
for (m .include_dirs .items ) | i | o .addIncludePath (.{ .path = i });
107
100
o .want_lto = m .enable_lto ;
108
- if (m .install_libs ) m .builder .installArtifact (o );
109
101
return o ;
110
102
}
111
103
112
- fn exe (m : * const Maker , name : []const u8 , src : []const u8 , deps : []const * Compile ) ? * Compile {
113
- const opt = m .builder .option (bool , name , std .fmt .allocPrint (m .builder .allocator , "Build and install the {s} executable" , .{name }) catch @panic ("OOM" )) orelse false ;
114
- if (! opt and ! m .build_all ) return null ;
115
-
104
+ fn exe (m : * const Maker , name : []const u8 , src : []const u8 , deps : []const * Compile ) * Compile {
116
105
const e = m .builder .addExecutable (.{ .name = name , .target = m .target , .optimize = m .optimize });
117
106
e .addCSourceFiles (.{ .files = &.{src }, .flags = m .cxxflags .items });
118
107
for (deps ) | d | e .addObject (d );
119
108
for (m .include_dirs .items ) | i | e .addIncludePath (.{ .path = i });
120
109
121
110
// https://github.com/ziglang/zig/issues/15448
122
111
if (m .target .result .abi == .msvc ) {
123
- if (m .target .result .abi == .msvc ) {
124
- e .linkLibC (); // need winsdk + crt
125
- } else {
126
- // linkLibCpp already add (libc++ + libunwind + libc)
127
- e .linkLibCpp ();
128
- }
129
- m .builder .installArtifact (e );
130
- e .want_lto = m .enable_lto ;
131
-
132
- const run = m .builder .addRunArtifact (e );
133
- if (m .builder .args ) | args | {
134
- run .addArgs (args );
135
- }
136
- const step = m .builder .step (name , std .fmt .allocPrint (m .builder .allocator , "Run the {s} example" , .{name }) catch @panic ("OOM" ));
137
- step .dependOn (& run .step );
112
+ e .linkLibC (); // need winsdk + crt
113
+ } else {
114
+ // linkLibCpp already add (libc++ + libunwind + libc)
115
+ e .linkLibCpp ();
116
+ }
117
+ m .builder .installArtifact (e );
118
+ e .want_lto = m .enable_lto ;
138
119
139
- return e ;
120
+ const run = m .builder .addRunArtifact (e );
121
+ run .step .dependOn (m .builder .getInstallStep ());
122
+ if (m .builder .args ) | args | {
123
+ run .addArgs (args );
140
124
}
125
+ const step = m .builder .step (name , m .builder .fmt ("Run the {s} example" , .{name }));
126
+ step .dependOn (& run .step );
127
+
128
+ return e ;
141
129
}
142
130
};
143
131
@@ -195,6 +183,7 @@ pub fn build(b: *std.Build) !void {
195
183
196
184
const exes = [_ ]* Compile {
197
185
make .exe ("main" , "examples/main/main.cpp" , &.{ ggml , ggml_alloc , ggml_backend , ggml_quants , llama , common , buildinfo , sampling , console , grammar_parser , clip }),
186
+ make .exe ("simple" , "examples/simple/simple.cpp" , &.{ ggml , ggml_alloc , ggml_backend , ggml_quants , llama , common , buildinfo , sampling , console , grammar_parser , clip }),
198
187
make .exe ("quantize" , "examples/quantize/quantize.cpp" , &.{ ggml , ggml_alloc , ggml_backend , ggml_quants , llama , common , buildinfo }),
199
188
make .exe ("perplexity" , "examples/perplexity/perplexity.cpp" , &.{ ggml , ggml_alloc , ggml_backend , ggml_quants , llama , common , buildinfo }),
200
189
make .exe ("embedding" , "examples/embedding/embedding.cpp" , &.{ ggml , ggml_alloc , ggml_backend , ggml_quants , llama , common , buildinfo }),
0 commit comments