@@ -232,13 +232,6 @@ int main(int argc, char **argv) {
232
232
233
233
init_all_targets ();
234
234
235
- Buf *zig_std_dir = buf_create_from_str (ZIG_STD_DIR);
236
- Buf *special_dir = buf_alloc ();
237
- os_path_join (zig_std_dir, buf_sprintf (" special" ), special_dir);
238
-
239
- Buf *build_runner_path = buf_alloc ();
240
- os_path_join (special_dir, buf_create_from_str (" build_runner.zig" ), build_runner_path);
241
-
242
235
ZigList<const char *> args = {0 };
243
236
args.append (zig_exe_path);
244
237
args.append (NULL ); // placeholder
@@ -255,12 +248,29 @@ int main(int argc, char **argv) {
255
248
} else if (i + 1 < argc && strcmp (argv[i], " --cache-dir" ) == 0 ) {
256
249
cache_dir = argv[i + 1 ];
257
250
i += 1 ;
251
+ } else if (i + 1 < argc && strcmp (argv[i], " --zig-std-dir" ) == 0 ) {
252
+ args.append (argv[i]);
253
+ i += 1 ;
254
+ zig_std_dir = argv[i];
255
+ args.append (zig_std_dir);
258
256
} else {
259
257
args.append (argv[i]);
260
258
}
261
259
}
262
260
263
- CodeGen *g = codegen_create (build_runner_path, nullptr , OutTypeExe, BuildModeDebug);
261
+ if (zig_std_dir == nullptr ) {
262
+ zig_std_dir = ZIG_STD_DIR;
263
+ }
264
+ Buf *zig_std_dir_buf = buf_create_from_str (zig_std_dir);
265
+
266
+ Buf *special_dir = buf_alloc ();
267
+ os_path_join (zig_std_dir_buf, buf_sprintf (" special" ), special_dir);
268
+
269
+ Buf *build_runner_path = buf_alloc ();
270
+ os_path_join (special_dir, buf_create_from_str (" build_runner.zig" ), build_runner_path);
271
+
272
+
273
+ CodeGen *g = codegen_create (build_runner_path, nullptr , OutTypeExe, BuildModeDebug, zig_std_dir_buf);
264
274
codegen_set_out_name (g, buf_create_from_str (" build" ));
265
275
codegen_set_verbose (g, verbose);
266
276
@@ -609,7 +619,12 @@ int main(int argc, char **argv) {
609
619
buf_create_from_str ((cache_dir == nullptr ) ? default_zig_cache_name : cache_dir),
610
620
full_cache_dir);
611
621
612
- CodeGen *g = codegen_create (zig_root_source_file, target, out_type, build_mode);
622
+ if (zig_std_dir == nullptr ) {
623
+ zig_std_dir = ZIG_STD_DIR;
624
+ }
625
+
626
+ CodeGen *g = codegen_create (zig_root_source_file, target, out_type, build_mode,
627
+ buf_create_from_str (zig_std_dir));
613
628
codegen_set_out_name (g, buf_out_name);
614
629
codegen_set_lib_version (g, ver_major, ver_minor, ver_patch);
615
630
codegen_set_is_test (g, cmd == CmdTest);
@@ -628,8 +643,6 @@ int main(int argc, char **argv) {
628
643
codegen_set_libc_static_lib_dir (g, buf_create_from_str (libc_static_lib_dir));
629
644
if (libc_include_dir)
630
645
codegen_set_libc_include_dir (g, buf_create_from_str (libc_include_dir));
631
- if (zig_std_dir)
632
- codegen_set_zig_std_dir (g, buf_create_from_str (zig_std_dir));
633
646
if (dynamic_linker)
634
647
codegen_set_dynamic_linker (g, buf_create_from_str (dynamic_linker));
635
648
codegen_set_verbose (g, verbose);
0 commit comments