@@ -24,9 +24,20 @@ output: LazyPath,
2424pub fn create (b : * std.Build , opts : Options ) ? * MetallibStep {
2525 const sdk = switch (opts .target .result .os .tag ) {
2626 .macos = > "macosx" ,
27- .ios = > "iphoneos" ,
27+ .ios = > switch (opts .target .result .abi ) {
28+ .simulator = > "iphonesimulator" ,
29+ else = > "iphoneos" ,
30+ },
2831 else = > return null ,
2932 };
33+ const platform_version_arg = switch (opts .target .result .os .tag ) {
34+ .macos = > "-mmacos-version-min" ,
35+ .ios = > switch (opts .target .result .abi ) {
36+ .simulator = > "-mios-simulator-version-min" ,
37+ else = > "-mios-version-min" ,
38+ },
39+ else = > null ,
40+ };
3041
3142 const self = b .allocator .create (MetallibStep ) catch @panic ("OOM" );
3243
@@ -46,16 +57,11 @@ pub fn create(b: *std.Build, opts: Options) ?*MetallibStep {
4657 const output_ir = run_ir .addOutputFileArg (b .fmt ("{s}.ir" , .{opts .name }));
4758 run_ir .addArgs (&.{"-c" });
4859 for (opts .sources ) | source | run_ir .addFileArg (source );
49- switch (opts .target .result .os .tag ) {
50- .ios = > run_ir .addArgs (&.{b .fmt (
51- "-mios-version-min={s}" ,
52- .{min_version },
53- )}),
54- .macos = > run_ir .addArgs (&.{b .fmt (
55- "-mmacos-version-min={s}" ,
56- .{min_version },
57- )}),
58- else = > {},
60+ if (platform_version_arg ) | arg | {
61+ run_ir .addArgs (&.{b .fmt (
62+ "{s}={s}" ,
63+ .{ arg , min_version },
64+ )});
5965 }
6066
6167 const run_lib = RunStep .create (
0 commit comments