mirror of
https://github.com/saymrwulf/onnxruntime.git
synced 2026-06-20 02:07:56 +00:00
306 lines
15 KiB
XML
306 lines
15 KiB
XML
<Project Sdk="Microsoft.NET.Sdk">
|
|
<!-- ORT specific high level properties -->
|
|
<PropertyGroup>
|
|
<IsWindowsBuild Condition="$([MSBuild]::GetTargetPlatformIdentifier('$(TargetFramework)')) == 'windows'">true</IsWindowsBuild>
|
|
<IsAndroidBuild Condition="$([MSBuild]::GetTargetPlatformIdentifier('$(TargetFramework)')) == 'android'">true</IsAndroidBuild>
|
|
<IsIOSBuild Condition="$([MSBuild]::GetTargetPlatformIdentifier('$(TargetFramework)')) == 'ios'">true</IsIOSBuild>
|
|
<IsMacCatalystBuild Condition="$([MSBuild]::GetTargetPlatformIdentifier('$(TargetFramework)')) == 'maccatalyst'">true</IsMacCatalystBuild>
|
|
<OnnxRuntimeRoot>$(ProjectDir)..\..\..</OnnxRuntimeRoot>
|
|
</PropertyGroup>
|
|
|
|
<!-- General app properties -->
|
|
<PropertyGroup>
|
|
<TargetFrameworks>net8.0-android;net8.0-ios;net8.0-maccatalyst</TargetFrameworks>
|
|
<TargetFrameworks Condition="$([MSBuild]::IsOSPlatform('windows'))">$(TargetFrameworks);net8.0-windows10.0.19041.0</TargetFrameworks>
|
|
|
|
<!-- Note for MacCatalyst:
|
|
The default runtime is maccatalyst-x64, except in Release config, in which case the default is maccatalyst-x64;maccatalyst-arm64.
|
|
When specifying both architectures, use the plural <RuntimeIdentifiers> instead of the singular <RuntimeIdentifier>.
|
|
The Mac App Store will NOT accept apps with ONLY maccatalyst-arm64 indicated;
|
|
either BOTH runtimes must be indicated or ONLY macatalyst-x64. -->
|
|
<!-- For example: <RuntimeIdentifiers>maccatalyst-x64;maccatalyst-arm64</RuntimeIdentifiers> -->
|
|
|
|
<OutputType>Exe</OutputType>
|
|
<RootNamespace>Microsoft.ML.OnnxRuntime.Tests.MAUI</RootNamespace>
|
|
<UseMaui>true</UseMaui>
|
|
<SingleProject>true</SingleProject>
|
|
<ImplicitUsings>enable</ImplicitUsings>
|
|
<Nullable>enable</Nullable>
|
|
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
|
|
<!-- some of the helper packages don't have strong named assemblies. -->
|
|
<NoWarn>8002</NoWarn>
|
|
|
|
<!-- These are copied from the sample. TBD what we really need. -->
|
|
<DefineConstants Condition="'$(CI)' != 'true'">$(DefineConstants);INCLUDE_FAILING_TESTS</DefineConstants>
|
|
<DefineConstants Condition="'$(TestingMode)' == 'NonInteractiveVisual'">$(DefineConstants);MODE_NON_INTERACTIVE_VISUAL</DefineConstants>
|
|
<DefineConstants Condition="'$(TestingMode)' == 'XHarness'">$(DefineConstants);MODE_XHARNESS</DefineConstants>
|
|
|
|
<!-- Display name -->
|
|
<ApplicationTitle>Microsoft.ML.OnnxRuntime.Tests.MAUI</ApplicationTitle>
|
|
|
|
<!-- App Identifier. MUST be short or you get a misleading error about not being able to deploy the app -->
|
|
<ApplicationId>ORT.CSharp.Tests.MAUI</ApplicationId>
|
|
|
|
<!-- Versions -->
|
|
<ApplicationDisplayVersion>1.0</ApplicationDisplayVersion>
|
|
<ApplicationVersion>1</ApplicationVersion>
|
|
|
|
<SupportedOSPlatformVersion Condition="'$(IsIOSBuild)' == 'true'">15.0</SupportedOSPlatformVersion>
|
|
<SupportedOSPlatformVersion Condition="'$(IsMacCatalystBuild)' == 'true'">13.1</SupportedOSPlatformVersion>
|
|
<SupportedOSPlatformVersion Condition="'$(IsAndroidBuild)' == 'true'">30.0</SupportedOSPlatformVersion>
|
|
<SupportedOSPlatformVersion Condition="'$(IsWindowsBuild)' == 'true'">10.0.17763.0</SupportedOSPlatformVersion>
|
|
<TargetPlatformMinVersion Condition="'$(IsWindowsBuild)' == 'true'">10.0.17763.0</TargetPlatformMinVersion>
|
|
|
|
<SignAssembly>true</SignAssembly>
|
|
<AssemblyOriginatorKeyFile>..\..\OnnxRuntime.snk</AssemblyOriginatorKeyFile>
|
|
|
|
<!-- Multiple csproj files copy the ORT dll and pdb files. -->
|
|
<ErrorOnDuplicatePublishOutputFiles>false</ErrorOnDuplicatePublishOutputFiles>
|
|
</PropertyGroup>
|
|
|
|
<!--
|
|
Setup directories to find ORT native binary.
|
|
|
|
You can use a released Microsoft.ML.OnnxRuntime nuget package or a recent build from
|
|
https://aiinfra.visualstudio.com/PublicPackages/_artifacts/feed/ORT-Nightly if testing C# changes.
|
|
The native nuget package contains Windows, Android, macOS, mac-catalyst and iOS builds.
|
|
|
|
Unzip the nupkg file in the /build directory to create /build/microsoft.ml.onnxruntime.1.18.1 directory.
|
|
Adjust the version number as needed.
|
|
|
|
If testing changes to the native library, build locally with the `<dash><dash>build_csharp` flag so that
|
|
OnnxRuntimeBuildDirectory is set to the build output directory. Adjust the build path if necessary.
|
|
-->
|
|
<PropertyGroup>
|
|
<PrebuiltRuntimesDir>$(OnnxRuntimeRoot)\build\microsoft.ml.onnxruntime.1.18.1\runtimes</PrebuiltRuntimesDir>
|
|
<!--
|
|
set this so Microsoft.ML.OnnxRuntime.Tests.Common.csproj lets us do the include of the native library
|
|
as it may come from a local build or a nuget package. This saves duplicating the include logic.
|
|
-->
|
|
<SkipNativeLibInclude>true</SkipNativeLibInclude>
|
|
</PropertyGroup>
|
|
|
|
<PropertyGroup Condition="'$(IsWindowsBuild)' == 'true'">
|
|
<OnnxRuntimeBuildDirectory Condition="'$(OnnxRuntimeBuildDirectory)'==''">$(OnnxRuntimeRoot)\build\Windows</OnnxRuntimeBuildDirectory>
|
|
<NativeBuildOutputDir>$(OnnxRuntimeBuildDirectory)\$(Configuration)\$(Configuration)</NativeBuildOutputDir>
|
|
<!-- TODO: support other architectures if needed. -->
|
|
<PrebuiltWinDir>$(PrebuiltRuntimesDir)\win-x64\native</PrebuiltWinDir>
|
|
</PropertyGroup>
|
|
<PropertyGroup Condition="'$(IsAndroidBuild)' == 'true'">
|
|
<OnnxRuntimeBuildDirectory Condition="'$(OnnxRuntimeBuildDirectory)'==''">$(OnnxRuntimeRoot)\build\Android</OnnxRuntimeBuildDirectory>
|
|
<NativeBuildOutputDir>$(OnnxRuntimeBuildDirectory)\$(Configuration)</NativeBuildOutputDir>
|
|
<PrebuiltAAR>$(PrebuiltRuntimesDir)\android\native\onnxruntime.aar</PrebuiltAAR>
|
|
</PropertyGroup>
|
|
<PropertyGroup Condition="'$(IsIOSBuild)' == 'true'">
|
|
<OnnxRuntimeBuildDirectory Condition="'$(OnnxRuntimeBuildDirectory)'==''">$(OnnxRuntimeRoot)\build\iOS</OnnxRuntimeBuildDirectory>
|
|
<Platform Condition=" '$(Platform)' == '' ">iPhoneSimulator</Platform>
|
|
<PlatformLower>$(Platform.ToLower())</PlatformLower>
|
|
<NativeBuildOutputDir>$(OnnxRuntimeBuildDirectory)\$(Configuration)\$(Configuration)-$(PlatformLower)</NativeBuildOutputDir>
|
|
<PrebuiltFramework>$(PrebuiltRuntimesDir)\ios\native\onnxruntime.xcframework</PrebuiltFramework>
|
|
</PropertyGroup>
|
|
<PropertyGroup Condition="'$(IsMacCatalystBuild)' == 'true'">
|
|
<OnnxRuntimeBuildDirectory Condition="'$(OnnxRuntimeBuildDirectory)'==''">$(OnnxRuntimeRoot)\build\macOS</OnnxRuntimeBuildDirectory>
|
|
<NativeBuildOutputDir>$(OnnxRuntimeBuildDirectory)\$(Configuration)</NativeBuildOutputDir>
|
|
<PrebuiltFramework>$(PrebuiltRuntimesDir)\ios\native\onnxruntime.xcframework</PrebuiltFramework>
|
|
</PropertyGroup>
|
|
|
|
<ItemGroup Condition="'$(IsWindowsBuild)' == 'true'">
|
|
<!-- local build -->
|
|
<None Condition="Exists('$(NativeBuildOutputDir)\onnxruntime.dll')"
|
|
Include="$(NativeBuildOutputDir)\*.dll;$(NativeBuildOutputDir)\*.pdb">
|
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
<Visible>true</Visible>
|
|
</None>
|
|
|
|
<!-- build from package -->
|
|
<None Condition="!Exists('$(NativeBuildOutputDir)\onnxruntime.dll')"
|
|
Include="$(PrebuiltWinDir)\*.*">
|
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
<Visible>true</Visible>
|
|
</None>
|
|
|
|
<!-- test data -->
|
|
<None Include="$(OnnxRuntimeRoot)\onnxruntime\test\testdata\*">
|
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
<Visible>false</Visible>
|
|
</None>
|
|
<None Include="$(OnnxRuntimeRoot)\onnxruntime\test\testdata\overridable_initializer.onnx">
|
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
<Visible>false</Visible>
|
|
</None>
|
|
<None Include="$(OnnxRuntimeRoot)\onnxruntime\test\testdata\capi_symbolic_dims.onnx">
|
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
<Visible>false</Visible>
|
|
</None>
|
|
<None Include="$(OnnxRuntimeRoot)\onnxruntime\test\testdata\custom_op_library\custom_op_test.onnx">
|
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
<Visible>false</Visible>
|
|
</None>
|
|
<None Include="$(OnnxRuntimeRoot)\onnxruntime\test\testdata\lora\two_params_lora_model.onnx">
|
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
<Visible>false</Visible>
|
|
</None>
|
|
<None Include="$(OnnxRuntimeRoot)\onnxruntime\test\testdata\lora\two_params_lora_model.onnx_adapter">
|
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
<Visible>false</Visible>
|
|
</None>
|
|
</ItemGroup>
|
|
|
|
<ItemGroup Condition="'$(IsAndroidBuild)' == 'true'">
|
|
<!-- local build -->
|
|
<AndroidNativeLibrary Condition="Exists('$(NativeBuildOutputDir)\libonnxruntime.so')"
|
|
Include="$(NativeBuildOutputDir)\libonnxruntime.so">
|
|
<Link>libs\libonnxruntime.so</Link>
|
|
</AndroidNativeLibrary>
|
|
|
|
<!-- build from package -->
|
|
<AndroidLibrary
|
|
Bind="false"
|
|
Condition="Exists('$(PrebuiltAAR)') AND !Exists('$(NativeBuildOutputDir)\libonnxruntime.so')"
|
|
Include="$(PrebuiltAAR)"/>
|
|
</ItemGroup>
|
|
|
|
<ItemGroup Condition="'$(IsIOSBuild)' == 'true'">
|
|
<!-- local build of shared lib -->
|
|
<NativeReference
|
|
Condition="Exists('$(NativeBuildOutputDir)\libonnxruntime.dylib')"
|
|
Include="$(NativeBuildOutputDir)\libonnxruntime.dylib">
|
|
<Link>libs\libonnxruntime.dylib</Link>
|
|
<Kind>Dynamic</Kind>
|
|
<ForceLoad>True</ForceLoad>
|
|
<IsCxx>True</IsCxx>
|
|
</NativeReference>
|
|
|
|
<!-- build from package -->
|
|
<NativeReference
|
|
Condition="Exists('$(PrebuiltFramework)') AND !Exists('$(NativeBuildOutputDir)\libonnxruntime.dylib')"
|
|
Include="$(PrebuiltFramework)">
|
|
<Kind>Framework</Kind>
|
|
<ForceLoad>True</ForceLoad>
|
|
<IsCxx>True</IsCxx>
|
|
</NativeReference>
|
|
</ItemGroup>
|
|
|
|
<ItemGroup Condition="'$(IsMacCatalystBuild)' == 'true'">
|
|
<!-- local build -->
|
|
<NativeReference Condition="Exists('$(NativeBuildOutputDir)\libonnxruntime.dylib')"
|
|
Include="$(NativeBuildOutputDir)\libonnxruntime.dylib">
|
|
<Link>libs\libonnxruntime.dylib</Link>
|
|
<Kind>Dynamic</Kind>
|
|
<ForceLoad>True</ForceLoad>
|
|
<IsCxx>True</IsCxx>
|
|
</NativeReference>
|
|
|
|
<!-- build from package -->
|
|
<NativeReference
|
|
Condition="Exists('$(PrebuiltFramework)') AND !Exists('$(NativeBuildOutputDir)\libonnxruntime.dylib')"
|
|
Include="$(PrebuiltFramework)">
|
|
<Kind>Framework</Kind>
|
|
<ForceLoad>True</ForceLoad>
|
|
<IsCxx>True</IsCxx>
|
|
</NativeReference>
|
|
</ItemGroup>
|
|
|
|
<!-- Property debug output - makes finding/fixing any issues with the conditions easy. -->
|
|
<PropertyGroup>
|
|
<!-- local builds-->
|
|
<HaveOrtDll>false</HaveOrtDll>
|
|
<HaveOrtDll Condition="Exists('$(NativeBuildOutputDir)\onnxruntime.dll')">true</HaveOrtDll>
|
|
<HaveOrtSo>false</HaveOrtSo>
|
|
<HaveOrtSo Condition="Exists('$(NativeBuildOutputDir)\libonnxruntime.so')">true</HaveOrtSo>
|
|
<HaveOrtDylib>false</HaveOrtDylib>
|
|
<HaveOrtDylib Condition="Exists('$(NativeBuildOutputDir)\libonnxruntime.dylib')">true</HaveOrtDylib>
|
|
<!-- prebuilt -->
|
|
<HavePrebuilt>false</HavePrebuilt>
|
|
<HavePrebuilt Condition="Exists('$(PrebuiltWinDir)')">true</HavePrebuilt>
|
|
<HaveAAR>false</HaveAAR>
|
|
<HaveAAR Condition="Exists('$(PrebuiltAAR)')">true</HaveAAR>
|
|
<HaveFramework>false</HaveFramework>
|
|
<HaveFramework Condition="Exists('$(PrebuiltFramework)')">true</HaveFramework>
|
|
</PropertyGroup>
|
|
|
|
<Target Name="DumpValues" BeforeTargets="PreBuildEvent">
|
|
<Message Text="TargetFramework=$(TargetFramework)" />
|
|
<Message Text="Platform=$([MSBuild]::GetTargetPlatformIdentifier('$(TargetFramework)'))" />
|
|
<Message Text="OnnxRuntimeRoot=$(OnnxRuntimeRoot)" />
|
|
<Message Text="NativeBuildOutputDir=$(NativeBuildOutputDir)" />
|
|
<Message Text="IsWindowsBuild='$(IsWindowsBuild)'" />
|
|
<Message Text="IsAndroidBuild='$(IsAndroidBuild)'" />
|
|
<Message Text="IsIOSBuild='$(IsIOSBuild)'" />
|
|
<Message Text="IsMacCatalystBuild='$(IsMacCatalystBuild)'" />
|
|
<Message Text="onnxruntime.dll from local build=$(HaveOrtDll)" />
|
|
<Message Text="libonnxruntime.so from local build=$(HaveOrtSo)" />
|
|
<Message Text="libonnxruntime.dylib from local build=$(HaveOrtDylib)" />
|
|
<Message Text="Prebuilt runtime=$(HavePrebuilt)" />
|
|
<Message Text="Prebuilt AAR=$(HaveAAR)" />
|
|
<Message Text="Prebuilt xcframework=$(HaveFramework)" />
|
|
</Target>
|
|
|
|
<ItemGroup>
|
|
<!-- App Icon -->
|
|
<MauiIcon Include="Resources\AppIcon\appicon.svg" ForegroundFile="Resources\AppIcon\appiconfg.svg" Color="#512BD4" />
|
|
|
|
<!-- Splash Screen -->
|
|
<MauiSplashScreen Include="Resources\Splash\splash.svg" Color="#512BD4" BaseSize="128,128" />
|
|
|
|
<!-- Images -->
|
|
<MauiImage Include="Resources\Images\*" />
|
|
<MauiImage Update="Resources\Images\dotnet_bot.png" Resize="True" BaseSize="300,185" />
|
|
|
|
<!-- Custom Fonts -->
|
|
<MauiFont Include="Resources\Fonts\*" />
|
|
|
|
<!-- Raw Assets (also remove the "Resources\Raw" prefix) -->
|
|
<MauiAsset Include="Resources\Raw\**" LogicalName="%(RecursiveDir)%(Filename)%(Extension)" />
|
|
</ItemGroup>
|
|
|
|
<ItemGroup>
|
|
<Compile Include="..\Microsoft.ML.OnnxRuntime.Tests.Common\InferenceTest.cs">
|
|
<Link>InferenceTest.cs</Link>
|
|
</Compile>
|
|
<Compile Include="..\Microsoft.ML.OnnxRuntime.Tests.Common\OrtIoBindingAllocationTest.cs">
|
|
<Link>OrtIoBindingAllocationTest.cs</Link>
|
|
</Compile>
|
|
<Compile Include="..\Microsoft.ML.OnnxRuntime.Tests.Common\Tensors\TensorTests.cs">
|
|
<Link>TensorTests.cs</Link>
|
|
</Compile>
|
|
</ItemGroup>
|
|
|
|
<ItemGroup>
|
|
<ProjectReference
|
|
Include="..\..\src\Microsoft.ML.OnnxRuntime\Microsoft.ML.OnnxRuntime.csproj"
|
|
name="Microsoft.ML.OnnxRuntime" />
|
|
<ProjectReference
|
|
Include="..\Microsoft.ML.OnnxRuntime.Tests.Common\Microsoft.ML.OnnxRuntime.Tests.Common.csproj"
|
|
name="Microsoft.ML.OnnxRuntime.Tests.Common" />
|
|
<ProjectReference
|
|
Include="..\Microsoft.ML.OnnxRuntime.Tests.Devices\Microsoft.ML.OnnxRuntime.Tests.Devices.csproj"
|
|
name="Microsoft.ML.OnnxRuntime.Tests.Devices" />
|
|
</ItemGroup>
|
|
|
|
<ItemGroup>
|
|
<PackageReference Include="DeviceRunners.VisualRunners.Maui" Version="0.1.0-preview.2" />
|
|
<PackageReference Include="DeviceRunners.VisualRunners.Xunit" Version="0.1.0-preview.2" />
|
|
<PackageReference Include="DeviceRunners.XHarness.Maui" Version="0.1.0-preview.2" />
|
|
<PackageReference Include="DeviceRunners.XHarness.Xunit" Version="0.1.0-preview.2" />
|
|
<PackageReference Include="Microsoft.DotNet.XHarness.TestRunners.Xunit" Version="9.0.0-prerelease.24374.1" />
|
|
<PackageReference Include="Microsoft.Maui.Controls" Version="8.0.70" />
|
|
<PackageReference Include="Microsoft.Maui.Controls.Compatibility" Version="8.0.70" />
|
|
<PackageReference Include="Microsoft.Extensions.Logging.Debug" Version="8.0.0" />
|
|
<PackageReference Include="xunit" Version="2.9.0" />
|
|
<PackageReference Include="xunit.runner.utility" Version="2.9.0" />
|
|
</ItemGroup>
|
|
|
|
<ItemGroup Condition="$(IsIOSBuild)=='true' OR $(IsMacCatalystBuild)=='true'">
|
|
<!-- need the dummy ORT Extensions package to resolve the RegisterCustomOps symbol.
|
|
TODO: Update to 0.12.0 when released so there's a mac-catalyst build in the package. -->
|
|
<PackageReference Include="Microsoft.ML.OnnxRuntime.Extensions.Dummy" Version="0.10.0" />
|
|
</ItemGroup>
|
|
|
|
<Target Name="RemoveVisualStudioTestRunner" BeforeTargets="_ComputeAppxPackagePayload">
|
|
<ItemGroup>
|
|
<_VisualStudioTestRunnerFiles Include="@(PackagingOutputs)" Condition="$([System.String]::Copy('%(PackagingOutputs.FullPath)').Contains('xunit.runner.visualstudio'))" />
|
|
<PackagingOutputs Remove="@(_VisualStudioTestRunnerFiles)" />
|
|
</ItemGroup>
|
|
</Target>
|
|
</Project>
|