Expand file tree
/
Copy pathbuild.zig
More file actions
Latest commit
53 lines (42 loc) · 1.92 KB
/
Copy pathbuild.zig
File metadata and controls
53 lines (42 loc) · 1.92 KB
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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
conststd=@import("std");
pubfnbuild(b: *std.Build) void {
consttarget=b.standardTargetOptions(.{});
constoptimize=b.standardOptimizeOption(.{});
constliblua=buildLibLua(b, target, optimize);
b.installArtifact(liblua);
constexe=b.addExecutable(.{
.name="lua",
.target=target,
.optimize=optimize,
});
exe.linkLibC();
exe.linkLibrary(liblua);
exe.addCSourceFile("lua.c", &.{});
varexe_step=b.step("exe", "emit lua executable");
varemit_exe=b.addInstallArtifact(exe);
exe_step.dependOn(&emit_exe.step);
}
pubfnbuildLibLua(b: *std.Build, target: std.zig.CrossTarget, optimize: std.builtin.OptimizeMode) *std.Build.CompileStep {
constlua=b.addStaticLibrary(.{
.name="liblua",
.target=target,
.optimize=optimize,
});
for (PresetModules.get(.core)) |module| {
lua.addCSourceFile(std.mem.concat(b.allocator, u8, &.{ @tagName(module), ".c" }) catch@panic("OOM"), &.{});
}
for (PresetModules.get(.lib)) |module| {
lua.addCSourceFile(std.mem.concat(b.allocator, u8, &.{ @tagName(module), ".c" }) catch@panic("OOM"), &.{});
}
lua.linkLibC();
returnlua;
}
constLuaPreset=enum {
core,
lib,
};
constPresetModules=std.EnumArray(LuaPreset, []constLuaModule).init(.{
.core= &.{ .lapi, .lcode, .lctype, .ldebug, .ldo, .ldump, .lfunc, .lgc, .llex, .lmem, .lobject, .lopcodes, .lparser, .lstate, .lstring, .ltable, .ltm, .lundump, .lvm, .lzio },
.lib= &.{ .lauxlib, .lbaselib, .lcorolib, .ldblib, .liolib, .lmathlib, .loadlib, .loslib, .lstrlib, .ltablib, .lutf8lib, .linit },
});
constLuaModule=enum { lapi, lauxlib, lbaselib, lcode, lcorolib, lctype, ldblib, ldebug, ldo, ldump, lfunc, lgc, linit, liolib, llex, lmathlib, lmem, loadlib, lobject, lopcodes, loslib, lparser, lstate, lstring, lstrlib, ltable, ltablib, ltm, lua, luac, lundump, lutf8lib, lvm, lzio };