-
1
-
2
-
3
-
4
-
5
-
6
-
7
-
8
-
9
-
10
-
11
-
12
-
13
-
14
-
15
-
16
-
17
-
18
-
19
-
20
-
21
-
22
-
23
-
24
-
25
-
26
-
27
-
28
-
29
-
30
-
31
-
32
-
33
// Copyright 2026 Shota FUJI
//
// This Source Code Form is subject to the terms of the Mozilla Public
// License, v. 2.0. If a copy of the MPL was not distributed with this
// file, You can obtain one at https://mozilla.org/MPL/2.0/.
//
// SPDX-License-Identifier: MPL-2.0
const CustomElements = @This();
const std = @import("std");
compiler: *std.Build.Step.Run,
output_js: std.Build.LazyPath,
pub const InitOptions = struct {
exe: []const u8,
entrypoint: std.Build.LazyPath,
};
pub fn init(b: *std.Build, opts: InitOptions) CustomElements {
const compiler = b.addSystemCommand(&.{opts.exe});
const output_js = compiler.addPrefixedOutputFileArg("-outfile=", "elements.js");
_ = compiler.addPrefixedDepFileOutputArg("-depfile=", "elements.d");
compiler.addPrefixedFileArg("-entrypoint=", opts.entrypoint);
return .{
.compiler = compiler,
.output_js = output_js,
};
}