@@ -168,22 +168,33 @@ fn common(
168168 step : * std.Build.Step.Compile ,
169169 options : jsruntime.Options ,
170170) ! void {
171- try jsruntime_pkgs .add (step , options );
172- linkNetSurf (b , step );
173-
174- // link mimalloc
175- step .addObjectFile (b .path ("vendor/mimalloc/out/libmimalloc.a" ));
176- step .addIncludePath (b .path ("vendor/mimalloc/out/include" ));
171+ const jsruntimemod = try jsruntime_pkgs .module (
172+ b ,
173+ options ,
174+ step .root_module .optimize .? ,
175+ step .root_module .resolved_target .? ,
176+ );
177+ step .root_module .addImport ("jsruntime" , jsruntimemod );
178+
179+ const netsurf = moduleNetSurf (b );
180+ netsurf .addImport ("jsruntime" , jsruntimemod );
181+ step .root_module .addImport ("netsurf" , netsurf );
177182}
178183
179- fn linkNetSurf (b : * std.Build , step : * std.Build.Step.Compile ) void {
184+ fn moduleNetSurf (b : * std.Build ) * std.Build.Module {
185+ const mod = b .addModule ("netsurf" , .{
186+ .root_source_file = b .path ("src/netsurf/netsurf.zig" ),
187+ });
180188 // iconv
181- step .addObjectFile (b .path ("vendor/libiconv/lib/libiconv.a" ));
182- step .addIncludePath (b .path ("vendor/libiconv/include" ));
189+ mod .addObjectFile (b .path ("vendor/libiconv/lib/libiconv.a" ));
190+ mod .addIncludePath (b .path ("vendor/libiconv/include" ));
191+
192+ // mimalloc
193+ mod .addImport ("mimalloc" , moduleMimalloc (b ));
183194
184195 // netsurf libs
185196 const ns = "vendor/netsurf" ;
186- step .addIncludePath (b .path (ns ++ "/include" ));
197+ mod .addIncludePath (b .path (ns ++ "/include" ));
187198
188199 const libs : [4 ][]const u8 = .{
189200 "libdom" ,
@@ -192,7 +203,20 @@ fn linkNetSurf(b: *std.Build, step: *std.Build.Step.Compile) void {
192203 "libwapcaplet" ,
193204 };
194205 inline for (libs ) | lib | {
195- step .addObjectFile (b .path (ns ++ "/lib/" ++ lib ++ ".a" ));
196- step .addIncludePath (b .path (ns ++ "/" ++ lib ++ "/src" ));
206+ mod .addObjectFile (b .path (ns ++ "/lib/" ++ lib ++ ".a" ));
207+ mod .addIncludePath (b .path (ns ++ "/" ++ lib ++ "/src" ));
197208 }
209+
210+ return mod ;
211+ }
212+
213+ fn moduleMimalloc (b : * std.Build ) * std.Build.Module {
214+ const mod = b .addModule ("mimalloc" , .{
215+ .root_source_file = b .path ("src/mimalloc/mimalloc.zig" ),
216+ });
217+
218+ mod .addObjectFile (b .path ("vendor/mimalloc/out/libmimalloc.a" ));
219+ mod .addIncludePath (b .path ("vendor/mimalloc/out/include" ));
220+
221+ return mod ;
198222}
0 commit comments