Skip to content

Commit 9236708

Browse files
committed
fix build.zig for zig 0.16.0, update fmt dep
1 parent 32aa505 commit 9236708

2 files changed

Lines changed: 76 additions & 120 deletions

File tree

build.zig

Lines changed: 75 additions & 119 deletions
Original file line numberDiff line numberDiff line change
@@ -64,31 +64,27 @@ pub fn buildExe(
6464
};
6565
const flags = common_cpp_flags ++ spvcross_public_cpp_flags ++ tint_public_cpp_flags;
6666

67-
const exe = b.addExecutable(.{
68-
.name = "sokol-shdc",
69-
.root_module = b.createModule(.{
70-
.target = target,
71-
.optimize = mode,
72-
}),
67+
const mod = b.createModule(.{
68+
.target = target,
69+
.optimize = mode,
70+
.link_libc = true,
71+
.link_libcpp = true,
7372
});
74-
if (exe.rootModuleTarget().abi != .msvc) {
75-
exe.linkLibCpp();
76-
} else {
77-
exe.linkLibC();
78-
}
79-
exe.linkLibrary(libFmt(b, target, mode, prefix_path));
80-
exe.linkLibrary(libGetopt(b, target, mode, prefix_path));
81-
exe.linkLibrary(libPystring(b, target, mode, prefix_path));
82-
exe.linkLibrary(libSpirvcross(b, target, mode, prefix_path));
83-
exe.linkLibrary(libSpirvtools(b, target, mode, prefix_path));
84-
exe.linkLibrary(libGlslang(b, target, mode, prefix_path));
85-
exe.linkLibrary(libTint(b, target, mode, prefix_path));
73+
mod.linkLibrary(libFmt(b, target, mode, prefix_path));
74+
mod.linkLibrary(libGetopt(b, target, mode, prefix_path));
75+
mod.linkLibrary(libPystring(b, target, mode, prefix_path));
76+
mod.linkLibrary(libSpirvcross(b, target, mode, prefix_path));
77+
mod.linkLibrary(libSpirvtools(b, target, mode, prefix_path));
78+
mod.linkLibrary(libGlslang(b, target, mode, prefix_path));
79+
mod.linkLibrary(libTint(b, target, mode, prefix_path));
8680
inline for (incl_dirs) |incl_dir| {
87-
exe.addIncludePath(b.path(prefix_path ++ incl_dir));
81+
mod.addIncludePath(b.path(prefix_path ++ incl_dir));
8882
}
8983
inline for (sources) |src| {
90-
exe.addCSourceFile(.{ .file = b.path(dir ++ src), .flags = &flags });
84+
mod.addCSourceFile(.{ .file = b.path(dir ++ src), .flags = &flags });
9185
}
86+
87+
const exe = b.addExecutable(.{ .name = "sokol-shdc", .root_module = mod });
9288
b.installArtifact(exe);
9389
return exe;
9490
}
@@ -99,18 +95,15 @@ fn libGetopt(
9995
mode: std.builtin.OptimizeMode,
10096
comptime prefix_path: []const u8,
10197
) *Build.Step.Compile {
102-
const lib = b.addLibrary(.{
103-
.name = "getopt",
104-
.root_module = b.createModule(.{
105-
.target = target,
106-
.optimize = mode,
107-
.link_libc = true,
108-
}),
98+
const mod = b.createModule(.{
99+
.target = target,
100+
.optimize = mode,
101+
.link_libc = true,
109102
});
110-
lib.addIncludePath(b.path(prefix_path ++ "ext/getopt/include"));
103+
mod.addIncludePath(b.path(prefix_path ++ "ext/getopt/include"));
111104
const flags = common_c_flags;
112-
lib.addCSourceFile(.{ .file = b.path(prefix_path ++ "ext/getopt/src/getopt.c"), .flags = &flags });
113-
return lib;
105+
mod.addCSourceFile(.{ .file = b.path(prefix_path ++ "ext/getopt/src/getopt.c"), .flags = &flags });
106+
return b.addLibrary(.{ .name = "getopt", .root_module = mod });
114107
}
115108

116109
fn libPystring(
@@ -119,21 +112,15 @@ fn libPystring(
119112
mode: std.builtin.OptimizeMode,
120113
comptime prefix_path: []const u8,
121114
) *Build.Step.Compile {
122-
const lib = b.addLibrary(.{
123-
.name = "pystring",
124-
.root_module = b.createModule(.{
125-
.target = target,
126-
.optimize = mode,
127-
}),
115+
const mod = b.createModule(.{
116+
.target = target,
117+
.optimize = mode,
118+
.link_libcpp = true,
119+
.link_libc = true,
128120
});
129-
if (lib.rootModuleTarget().abi != .msvc) {
130-
lib.linkLibCpp();
131-
} else {
132-
lib.linkLibC();
133-
}
134121
const flags = common_cpp_flags;
135-
lib.addCSourceFile(.{ .file = b.path(prefix_path ++ "ext/pystring/pystring.cpp"), .flags = &flags });
136-
return lib;
122+
mod.addCSourceFile(.{ .file = b.path(prefix_path ++ "ext/pystring/pystring.cpp"), .flags = &flags });
123+
return b.addLibrary(.{ .name = "pystring", .root_module = mod });
137124
}
138125

139126
fn libFmt(
@@ -144,24 +131,18 @@ fn libFmt(
144131
) *Build.Step.Compile {
145132
const dir = prefix_path ++ "ext/fmt/src/";
146133
const sources = [_][]const u8{ "format.cc", "os.cc" };
147-
const lib = b.addLibrary(.{
148-
.name = "fmt",
149-
.root_module = b.createModule(.{
150-
.target = target,
151-
.optimize = mode,
152-
}),
134+
const mod = b.createModule(.{
135+
.target = target,
136+
.optimize = mode,
137+
.link_libcpp = true,
138+
.link_libc = true,
153139
});
154-
if (lib.rootModuleTarget().abi != .msvc) {
155-
lib.linkLibCpp();
156-
} else {
157-
lib.linkLibC();
158-
}
159-
lib.addIncludePath(b.path(prefix_path ++ "ext/fmt/include"));
140+
mod.addIncludePath(b.path(prefix_path ++ "ext/fmt/include"));
160141
const flags = common_cpp_flags;
161142
inline for (sources) |src| {
162-
lib.addCSourceFile(.{ .file = b.path(dir ++ src), .flags = &flags });
143+
mod.addCSourceFile(.{ .file = b.path(dir ++ src), .flags = &flags });
163144
}
164-
return lib;
145+
return b.addLibrary(.{ .name = "fmt", .root_module = mod });
165146
}
166147

167148
fn libSpirvcross(
@@ -184,23 +165,17 @@ fn libSpirvcross(
184165
};
185166
const flags = common_cpp_flags ++ spvcross_public_cpp_flags;
186167

187-
const lib = b.addLibrary(.{
188-
.name = "spirvcross",
189-
.root_module = b.createModule(.{
190-
.target = target,
191-
.optimize = mode,
192-
}),
168+
const mod = b.createModule(.{
169+
.target = target,
170+
.optimize = mode,
171+
.link_libcpp = true,
172+
.link_libc = true,
193173
});
194-
if (lib.rootModuleTarget().abi != .msvc) {
195-
lib.linkLibCpp();
196-
} else {
197-
lib.linkLibC();
198-
}
199-
lib.addIncludePath(b.path("ext/SPIRV-Cross"));
174+
mod.addIncludePath(b.path("ext/SPIRV-Cross"));
200175
inline for (sources) |src| {
201-
lib.addCSourceFile(.{ .file = b.path(dir ++ src), .flags = &flags });
176+
mod.addCSourceFile(.{ .file = b.path(dir ++ src), .flags = &flags });
202177
}
203-
return lib;
178+
return b.addLibrary(.{ .name = "spirvcross", .root_module = mod });
204179
}
205180

206181
fn libGlslang(
@@ -209,14 +184,6 @@ fn libGlslang(
209184
mode: std.builtin.OptimizeMode,
210185
comptime prefix_path: []const u8,
211186
) *Build.Step.Compile {
212-
const lib = b.addLibrary(.{
213-
.name = "glslang",
214-
.root_module = b.createModule(.{
215-
.target = target,
216-
.optimize = mode,
217-
}),
218-
});
219-
220187
const dir = prefix_path ++ "ext/glslang/";
221188
const sources = [_][]const u8{
222189
"glslang/CInterface/glslang_c_interface.cpp",
@@ -275,29 +242,30 @@ fn libGlslang(
275242
const cmn_flags = common_cpp_flags ++ [_][]const u8{"-DENABLE_OPT=1"};
276243
const win_flags = cmn_flags ++ [_][]const u8{"-DGLSLANG_OSINCLUDE_WIN32"};
277244
const unx_flags = cmn_flags ++ [_][]const u8{"-DGLSLANG_OSINCLUDE_UNIX"};
278-
const flags = if (lib.rootModuleTarget().os.tag == .windows) win_flags else unx_flags;
279245

280-
if (lib.rootModuleTarget().abi != .msvc) {
281-
lib.linkLibCpp();
282-
} else {
283-
lib.linkLibC();
284-
}
246+
const mod = b.createModule(.{
247+
.target = target,
248+
.optimize = mode,
249+
.link_libcpp = true,
250+
.link_libc = true,
251+
});
252+
const flags = if (target.result.os.tag == .windows) win_flags else unx_flags;
285253
inline for (incl_dirs) |incl_dir| {
286-
lib.addIncludePath(b.path(prefix_path ++ incl_dir));
254+
mod.addIncludePath(b.path(prefix_path ++ incl_dir));
287255
}
288256
inline for (sources) |src| {
289-
lib.addCSourceFile(.{ .file = b.path(dir ++ src), .flags = &flags });
257+
mod.addCSourceFile(.{ .file = b.path(dir ++ src), .flags = &flags });
290258
}
291-
if (lib.rootModuleTarget().os.tag == .windows) {
259+
if (target.result.os.tag == .windows) {
292260
inline for (win_sources) |src| {
293-
lib.addCSourceFile(.{ .file = b.path(dir ++ src), .flags = &flags });
261+
mod.addCSourceFile(.{ .file = b.path(dir ++ src), .flags = &flags });
294262
}
295263
} else {
296264
inline for (unix_sources) |src| {
297-
lib.addCSourceFile(.{ .file = b.path(dir ++ src), .flags = &flags });
265+
mod.addCSourceFile(.{ .file = b.path(dir ++ src), .flags = &flags });
298266
}
299267
}
300-
return lib;
268+
return b.addLibrary(.{ .name = "glslang", .root_module = mod });
301269
}
302270

303271
fn libSpirvtools(
@@ -513,25 +481,19 @@ fn libSpirvtools(
513481
};
514482
const flags = common_cpp_flags;
515483

516-
const lib = b.addLibrary(.{
517-
.name = "spirvtools",
518-
.root_module = b.createModule(.{
519-
.target = target,
520-
.optimize = mode,
521-
}),
484+
const mod = b.createModule(.{
485+
.target = target,
486+
.optimize = mode,
487+
.link_libcpp = true,
488+
.link_libc = true,
522489
});
523-
if (lib.rootModuleTarget().abi != .msvc) {
524-
lib.linkLibCpp();
525-
} else {
526-
lib.linkLibC();
527-
}
528490
inline for (incl_dirs) |incl_dir| {
529-
lib.addIncludePath(b.path(prefix_path ++ incl_dir));
491+
mod.addIncludePath(b.path(prefix_path ++ incl_dir));
530492
}
531493
inline for (sources) |src| {
532-
lib.addCSourceFile(.{ .file = b.path(dir ++ src), .flags = &flags });
494+
mod.addCSourceFile(.{ .file = b.path(dir ++ src), .flags = &flags });
533495
}
534-
return lib;
496+
return b.addLibrary(.{ .name = "spirvtools", .root_module = mod });
535497
}
536498

537499
fn libTint(
@@ -973,23 +935,17 @@ fn libTint(
973935
};
974936
const flags = common_cpp_flags ++ tint_public_cpp_flags;
975937

976-
const lib = b.addLibrary(.{
977-
.name = "tint",
978-
.root_module = b.createModule(.{
979-
.target = target,
980-
.optimize = mode,
981-
}),
938+
const mod = b.createModule(.{
939+
.target = target,
940+
.optimize = mode,
941+
.link_libc = true,
942+
.link_libcpp = true,
982943
});
983-
if (lib.rootModuleTarget().abi != .msvc) {
984-
lib.linkLibCpp();
985-
} else {
986-
lib.linkLibC();
987-
}
988944
inline for (incl_dirs) |incl_dir| {
989-
lib.addIncludePath(b.path(prefix_path ++ incl_dir));
945+
mod.addIncludePath(b.path(prefix_path ++ incl_dir));
990946
}
991947
inline for (sources) |src| {
992-
lib.addCSourceFile(.{ .file = b.path(dir ++ src), .flags = &flags });
948+
mod.addCSourceFile(.{ .file = b.path(dir ++ src), .flags = &flags });
993949
}
994-
return lib;
950+
return b.addLibrary(.{ .name = "tint", .root_module = mod });
995951
}

ext/fmt

Submodule fmt updated 85 files

0 commit comments

Comments
 (0)