@@ -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
116109fn 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
139126fn 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
167148fn 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
206181fn 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
303271fn 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
537499fn 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}
0 commit comments