| ... | @@ -30,8 +30,8 @@ pub fn make( | ... | @@ -30,8 +30,8 @@ pub fn make( |
| 30 | const graph = maker.graph; | 30 | const graph = maker.graph; |
| 31 | const step = maker.stepByIndex(step_index); | 31 | const step = maker.stepByIndex(step_index); |
| 32 | compile.zig_args.clearRetainingCapacity(); | 32 | compile.zig_args.clearRetainingCapacity(); |
| 33 | if (true) @panic("TODO implement compile.make()"); | | |
| 34 | try lowerZigArgs(compile, step_index, maker, &compile.zig_args, false); | 33 | try lowerZigArgs(compile, step_index, maker, &compile.zig_args, false); |
| | 34 | if (true) @panic("TODO implement compile.make()"); |
| 35 | const process_arena = graph.arena; // TODO don't leak into the process_arena | 35 | const process_arena = graph.arena; // TODO don't leak into the process_arena |
| 36 | | 36 | |
| 37 | const maybe_output_dir = step.evalZigProcess( | 37 | const maybe_output_dir = step.evalZigProcess( |
| ... | @@ -92,10 +92,13 @@ fn lowerZigArgs( | ... | @@ -92,10 +92,13 @@ fn lowerZigArgs( |
| 92 | const graph = maker.graph; | 92 | const graph = maker.graph; |
| 93 | const arena = graph.arena; // TODO don't leak into the process arena | 93 | const arena = graph.arena; // TODO don't leak into the process arena |
| 94 | const gpa = maker.gpa; | 94 | const gpa = maker.gpa; |
| | 95 | const conf = &maker.scanned_config.configuration; |
| | 96 | const conf_step = step_index.ptr(conf); |
| | 97 | const conf_comp = conf_step.extended.get(conf.extra).compile; |
| 95 | | 98 | |
| 96 | try zig_args.append(gpa, graph.zig_exe); | 99 | try zig_args.append(gpa, graph.zig_exe); |
| 97 | | 100 | |
| 98 | const cmd = switch (compile.kind) { | 101 | const cmd = switch (conf_comp.flags3.kind) { |
| 99 | .lib => "build-lib", | 102 | .lib => "build-lib", |
| 100 | .exe => "build-exe", | 103 | .exe => "build-exe", |
| 101 | .obj => "build-obj", | 104 | .obj => "build-obj", |
| ... | @@ -107,25 +110,32 @@ fn lowerZigArgs( | ... | @@ -107,25 +110,32 @@ fn lowerZigArgs( |
| 107 | if (graph.reference_trace) |some| { | 110 | if (graph.reference_trace) |some| { |
| 108 | try zig_args.append(gpa, try allocPrint(arena, "-freference-trace={d}", .{some})); | 111 | try zig_args.append(gpa, try allocPrint(arena, "-freference-trace={d}", .{some})); |
| 109 | } | 112 | } |
| 110 | try addFlag(&zig_args, "allow-so-scripts", compile.allow_so_scripts orelse graph.allow_so_scripts); | 113 | try addFlag(gpa, zig_args, "allow-so-scripts", conf_comp.flags2.allow_so_scripts.toBool() orelse graph.allow_so_scripts); |
| | 114 | |
| | 115 | try addFlag(gpa, zig_args, "llvm", conf_comp.flags2.use_llvm.toBool()); |
| | 116 | try addFlag(gpa, zig_args, "lld", conf_comp.flags2.use_lld.toBool()); |
| | 117 | try addFlag(gpa, zig_args, "new-linker", conf_comp.flags2.use_new_linker.toBool()); |
| 111 | | 118 | |
| 112 | try addFlag(&zig_args, "llvm", compile.use_llvm); | 119 | const root_module = conf_comp.root_module.get(conf); |
| 113 | try addFlag(&zig_args, "lld", compile.use_lld); | | |
| 114 | try addFlag(&zig_args, "new-linker", compile.use_new_linker); | | |
| 115 | | 120 | |
| 116 | if (compile.root_module.resolved_target.?.query.ofmt) |ofmt| { | 121 | if (root_module.resolved_target.get(conf).?.query.unwrap()) |query| { |
| 117 | try zig_args.append(gpa, try allocPrint(arena, "-ofmt={t}", .{ofmt})); | 122 | if (query.get(conf).flags.object_format.get()) |ofmt| { |
| | 123 | try zig_args.append(gpa, try allocPrint(arena, "-ofmt={t}", .{ofmt})); |
| | 124 | } |
| 118 | } | 125 | } |
| 119 | | 126 | |
| 120 | switch (compile.entry) { | 127 | switch (conf_comp.flags3.entry) { |
| 121 | .default => {}, | 128 | .default => {}, |
| 122 | .disabled => try zig_args.append(gpa, "-fno-entry"), | 129 | .disabled => try zig_args.append(gpa, "-fno-entry"), |
| 123 | .enabled => try zig_args.append(gpa, "-fentry"), | 130 | .enabled => try zig_args.append(gpa, "-fentry"), |
| 124 | .symbol_name => |entry_name| { | 131 | .symbol_name => { |
| 125 | try zig_args.append(gpa, try allocPrint(arena, "-fentry={s}", .{entry_name})); | 132 | const symbol_name = conf_comp.entry.value.?.slice(conf); |
| | 133 | try zig_args.append(gpa, try allocPrint(arena, "-fentry={s}", .{symbol_name})); |
| 126 | }, | 134 | }, |
| 127 | } | 135 | } |
| 128 | | 136 | |
| | 137 | if (true) @panic("TODO"); |
| | 138 | |
| 129 | { | 139 | { |
| 130 | for (compile.force_undefined_symbols.keys()) |symbol_name| { | 140 | for (compile.force_undefined_symbols.keys()) |symbol_name| { |
| 131 | try zig_args.append(gpa, "--force_undefined"); | 141 | try zig_args.append(gpa, "--force_undefined"); |
| ... | @@ -408,7 +418,7 @@ fn lowerZigArgs( | ... | @@ -408,7 +418,7 @@ fn lowerZigArgs( |
| 408 | if (!my_responsibility) continue; | 418 | if (!my_responsibility) continue; |
| 409 | if (cli_named_modules.modules.getIndex(mod)) |module_cli_index| { | 419 | if (cli_named_modules.modules.getIndex(mod)) |module_cli_index| { |
| 410 | const module_cli_name = cli_named_modules.names.keys()[module_cli_index]; | 420 | const module_cli_name = cli_named_modules.names.keys()[module_cli_index]; |
| 411 | try mod.appendZigProcessFlags(&zig_args, step); | 421 | try mod.appendZigProcessFlags(zig_args, step); |
| 412 | | 422 | |
| 413 | // --dep arguments | 423 | // --dep arguments |
| 414 | try zig_args.ensureUnusedCapacity(mod.import_table.count() * 2); | 424 | try zig_args.ensureUnusedCapacity(mod.import_table.count() * 2); |
| ... | @@ -507,7 +517,7 @@ fn lowerZigArgs( | ... | @@ -507,7 +517,7 @@ fn lowerZigArgs( |
| 507 | if (compile.generated_llvm_ir != null) try zig_args.append(gpa, "-femit-llvm-ir"); | 517 | if (compile.generated_llvm_ir != null) try zig_args.append(gpa, "-femit-llvm-ir"); |
| 508 | if (compile.generated_h != null) try zig_args.append(gpa, "-femit-h"); | 518 | if (compile.generated_h != null) try zig_args.append(gpa, "-femit-h"); |
| 509 | | 519 | |
| 510 | try addFlag(&zig_args, "formatted-panics", compile.formatted_panics); | 520 | try addFlag(gpa, zig_args, "formatted-panics", compile.formatted_panics); |
| 511 | | 521 | |
| 512 | switch (compile.compress_debug_sections) { | 522 | switch (compile.compress_debug_sections) { |
| 513 | .none => {}, | 523 | .none => {}, |
| ... | @@ -612,9 +622,9 @@ fn lowerZigArgs( | ... | @@ -612,9 +622,9 @@ fn lowerZigArgs( |
| 612 | try zig_args.append(gpa, "--discard-all"); | 622 | try zig_args.append(gpa, "--discard-all"); |
| 613 | } | 623 | } |
| 614 | | 624 | |
| 615 | try addFlag(&zig_args, "compiler-rt", compile.bundle_compiler_rt); | 625 | try addFlag(gpa, zig_args, "compiler-rt", compile.bundle_compiler_rt); |
| 616 | try addFlag(&zig_args, "ubsan-rt", compile.bundle_ubsan_rt); | 626 | try addFlag(gpa, zig_args, "ubsan-rt", compile.bundle_ubsan_rt); |
| 617 | try addFlag(&zig_args, "dll-export-fns", compile.dll_export_fns); | 627 | try addFlag(gpa, zig_args, "dll-export-fns", compile.dll_export_fns); |
| 618 | if (compile.rdynamic) { | 628 | if (compile.rdynamic) { |
| 619 | try zig_args.append(gpa, "-rdynamic"); | 629 | try zig_args.append(gpa, "-rdynamic"); |
| 620 | } | 630 | } |
| ... | @@ -718,7 +728,7 @@ fn lowerZigArgs( | ... | @@ -718,7 +728,7 @@ fn lowerZigArgs( |
| 718 | try zig_args.appendSlice(gpa, &.{ "-rcincludes", @tagName(compile.rc_includes) }); | 728 | try zig_args.appendSlice(gpa, &.{ "-rcincludes", @tagName(compile.rc_includes) }); |
| 719 | } | 729 | } |
| 720 | | 730 | |
| 721 | try addFlag(&zig_args, "each-lib-rpath", compile.each_lib_rpath); | 731 | try addFlag(gpa, zig_args, "each-lib-rpath", compile.each_lib_rpath); |
| 722 | | 732 | |
| 723 | if (compile.build_id orelse graph.build_id) |build_id| { | 733 | if (compile.build_id orelse graph.build_id) |build_id| { |
| 724 | try zig_args.append(gpa, switch (build_id) { | 734 | try zig_args.append(gpa, switch (build_id) { |
| ... | @@ -739,7 +749,7 @@ fn lowerZigArgs( | ... | @@ -739,7 +749,7 @@ fn lowerZigArgs( |
| 739 | try zig_args.append(gpa, zig_lib_dir); | 749 | try zig_args.append(gpa, zig_lib_dir); |
| 740 | } | 750 | } |
| 741 | | 751 | |
| 742 | try addFlag(&zig_args, "PIE", compile.pie); | 752 | try addFlag(gpa, zig_args, "PIE", compile.pie); |
| 743 | | 753 | |
| 744 | if (compile.lto) |lto| { | 754 | if (compile.lto) |lto| { |
| 745 | try zig_args.append(gpa, switch (lto) { | 755 | try zig_args.append(gpa, switch (lto) { |
| ... | @@ -749,7 +759,7 @@ fn lowerZigArgs( | ... | @@ -749,7 +759,7 @@ fn lowerZigArgs( |
| 749 | }); | 759 | }); |
| 750 | } | 760 | } |
| 751 | | 761 | |
| 752 | try addFlag(&zig_args, "sanitize-coverage-trace-pc-guard", compile.sanitize_coverage_trace_pc_guard); | 762 | try addFlag(gpa, zig_args, "sanitize-coverage-trace-pc-guard", compile.sanitize_coverage_trace_pc_guard); |
| 753 | | 763 | |
| 754 | if (compile.subsystem) |subsystem| { | 764 | if (compile.subsystem) |subsystem| { |
| 755 | try zig_args.appendSlice(gpa, &.{ "--subsystem", @tagName(subsystem) }); | 765 | try zig_args.appendSlice(gpa, &.{ "--subsystem", @tagName(subsystem) }); |
| ... | @@ -763,7 +773,7 @@ fn lowerZigArgs( | ... | @@ -763,7 +773,7 @@ fn lowerZigArgs( |
| 763 | "--error-limit", try allocPrint(arena, "{d}", .{err_limit}), | 773 | "--error-limit", try allocPrint(arena, "{d}", .{err_limit}), |
| 764 | }); | 774 | }); |
| 765 | | 775 | |
| 766 | try addFlag(&zig_args, "incremental", graph.incremental); | 776 | try addFlag(gpa, zig_args, "incremental", graph.incremental); |
| 767 | | 777 | |
| 768 | try zig_args.append(gpa, "--listen=-"); | 778 | try zig_args.append(gpa, "--listen=-"); |
| 769 | | 779 | |