|
20 | 20 | <MLXSharpMacNativeDestination>$([System.IO.Path]::Combine('$(MSBuildProjectDirectory)','runtimes','osx-arm64','native','libmlxsharp.dylib'))</MLXSharpMacNativeDestination> |
21 | 21 | <MLXSharpSkipMacNativeValidation Condition="'$(MLXSharpSkipMacNativeValidation)' == ''">false</MLXSharpSkipMacNativeValidation> |
22 | 22 | <MLXSharpMacNativeDestinationDir>$([System.IO.Path]::GetDirectoryName('$(MLXSharpMacNativeDestination)'))</MLXSharpMacNativeDestinationDir> |
| 23 | + <MLXSharpMacMetallibBinary Condition="'$(MLXSharpMacMetallibBinary)' == ''">$([System.IO.Path]::Combine('$(MSBuildProjectDirectory)','..','..','native','build','macos','extern','mlx','mlx','backend','metal','kernels','mlx.metallib'))</MLXSharpMacMetallibBinary> |
| 24 | + <MLXSharpMacMetallibDestination Condition="'$(MLXSharpMacMetallibDestination)' == ''">$([System.IO.Path]::Combine('$(MLXSharpMacNativeDestinationDir)','mlx.metallib'))</MLXSharpMacMetallibDestination> |
23 | 25 |
|
24 | 26 | <MLXSharpLinuxNativeBinary Condition="'$(MLXSharpLinuxNativeBinary)' == ''">$([System.IO.Path]::Combine('$(MSBuildProjectDirectory)','..','..','native','build','linux','libmlxsharp.so'))</MLXSharpLinuxNativeBinary> |
25 | 27 | <MLXSharpLinuxNativeDestination>$([System.IO.Path]::Combine('$(MSBuildProjectDirectory)','runtimes','linux-x64','native','libmlxsharp.so'))</MLXSharpLinuxNativeDestination> |
|
33 | 35 | <ItemGroup> |
34 | 36 | <_MacNativeSource Include="$(MLXSharpMacNativeBinary)" |
35 | 37 | Condition="Exists('$(MLXSharpMacNativeBinary)')" /> |
| 38 | + <_MacMetallibSource Include="$(MLXSharpMacMetallibBinary)" |
| 39 | + Condition="Exists('$(MLXSharpMacMetallibBinary)')" /> |
36 | 40 | </ItemGroup> |
37 | 41 |
|
38 | 42 | <MakeDir Directories="$(MLXSharpMacNativeDestinationDir)" |
|
42 | 46 | DestinationFiles="$(MLXSharpMacNativeDestination)" |
43 | 47 | SkipUnchangedFiles="true" |
44 | 48 | Condition="'@(_MacNativeSource)' != ''" /> |
| 49 | + <Copy SourceFiles="@(_MacMetallibSource)" |
| 50 | + DestinationFiles="$(MLXSharpMacMetallibDestination)" |
| 51 | + SkipUnchangedFiles="true" |
| 52 | + Condition="'@(_MacMetallibSource)' != ''" /> |
45 | 53 |
|
46 | 54 | <ItemGroup> |
47 | 55 | <None Include="$(MLXSharpMacNativeDestination)" |
|
51 | 59 | <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> |
52 | 60 | <Link>runtimes\osx-arm64\native\%(Filename)%(Extension)</Link> |
53 | 61 | </None> |
| 62 | + <None Include="$(MLXSharpMacMetallibDestination)" |
| 63 | + Condition="Exists('$(MLXSharpMacMetallibDestination)')"> |
| 64 | + <Pack>true</Pack> |
| 65 | + <PackagePath>runtimes/osx-arm64/native/%(Filename)%(Extension)</PackagePath> |
| 66 | + <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> |
| 67 | + <Link>runtimes\osx-arm64\native\%(Filename)%(Extension)</Link> |
| 68 | + </None> |
54 | 69 | </ItemGroup> |
55 | 70 |
|
56 | 71 | <Error Condition="'$(MLXSharpSkipMacNativeValidation)' != 'true' and !Exists('$(MLXSharpMacNativeDestination)')" |
57 | 72 | Text="libmlxsharp.dylib is missing. Build the native library or supply MLXSharpMacNativeBinary before packing." /> |
| 73 | + <Error Condition="'$(MLXSharpSkipMacNativeValidation)' != 'true' and !Exists('$(MLXSharpMacMetallibDestination)')" |
| 74 | + Text="mlx.metallib is missing. Build the native library or supply MLXSharpMacMetallibBinary before packing." /> |
58 | 75 | </Target> |
59 | 76 |
|
60 | 77 | <Target Name="EnsureLinuxNativeBinary" |
|
0 commit comments