skiasharp/source/SkiaSharp.Build.props

302 lines
24 KiB
XML

<Project>
<!--
Warning codes:
- part of the source build: <none>
- part of SkiaSharp: SK00xx
- part of SkiaSharp.Views: SK0x0x
- part of SkiaSharp.Views.Forms: SKx00x
-->
<Import Project="SkiaSharp.Build.Override.props" Condition="Exists('SkiaSharp.Build.Override.props')" />
<PropertyGroup>
<IsWindows>$([System.Runtime.InteropServices.RuntimeInformation]::IsOSPlatform($([System.Runtime.InteropServices.OSPlatform]::Windows)))</IsWindows>
<IsMacOS>$([System.Runtime.InteropServices.RuntimeInformation]::IsOSPlatform($([System.Runtime.InteropServices.OSPlatform]::OSX)))</IsMacOS>
<IsLinux>$([System.Runtime.InteropServices.RuntimeInformation]::IsOSPlatform($([System.Runtime.InteropServices.OSPlatform]::Linux)))</IsLinux>
<IsCI Condition="'$(IsCI)' == '' and ('$(CI)' == 'true' or '$(TF_BUILD)' == 'true')">true</IsCI>
<IsCI Condition="'$(IsCI)' == ''">false</IsCI>
<IsNetTizenSupported Condition="'$(IsNetTizenSupported)' == ''">true</IsNetTizenSupported>
<IsNetTVOSSupported Condition="'$(IsNetTVOSSupported)' == ''">true</IsNetTVOSSupported>
<IsNetMacOSSupported Condition="'$(IsNetMacOSSupported)' == ''">true</IsNetMacOSSupported>
</PropertyGroup>
<PropertyGroup>
<AssemblyVersionGitSha Condition=" '$(AssemblyVersionGitSha)' == '' ">$(GIT_SHA)</AssemblyVersionGitSha>
<AssemblyVersionGitSha Condition=" '$(AssemblyVersionGitSha)' == '' ">$(GIT_COMMIT)</AssemblyVersionGitSha>
<AssemblyVersionGitBranch Condition=" '$(AssemblyVersionGitBranch)' == '' ">$(GIT_BRANCH_NAME)</AssemblyVersionGitBranch>
</PropertyGroup>
<PropertyGroup>
<SignAssembly>true</SignAssembly>
<LangVersion>latest</LangVersion>
</PropertyGroup>
<PropertyGroup>
<SkiaSharpBuildPropsImported>true</SkiaSharpBuildPropsImported>
<MDocDocumentationDirectory>$(MSBuildThisFileDirectory)..\docs\SkiaSharpAPI</MDocDocumentationDirectory>
</PropertyGroup>
<PropertyGroup>
<DotNetSdkManifestVersionRegex>\d+\.\d+\.\d+(-[a-z]+\.\d+)?</DotNetSdkManifestVersionRegex>
<DotNetSdkManifestVersion Condition="'$(MSBuildRuntimeType)' == 'Core'">$([System.Text.RegularExpressions.Regex]::Match('$(MSBuildExtensionsPath)', '$(DotNetSdkManifestVersionRegex)'))</DotNetSdkManifestVersion>
<DotNetSdkManifestVersion Condition="'$(MSBuildRuntimeType)' != 'Core'"></DotNetSdkManifestVersion>
<!-- The previous/lowest version of .NET we want to support (just the base TFM/no platforms) -->
<TFMPrevious>net6.0</TFMPrevious>
<!-- The current version of .NET that we are shipping for (all the TFMs) -->
<TFMCurrent>net8.0</TFMCurrent>
<!-- The next version (typically a preview) that we are building for (all the TFMs) -->
<TFMNext></TFMNext>
</PropertyGroup>
<!-- Target Platform Versions -->
<PropertyGroup>
<!-- Previous -->
<TPVWindowsPrevious>10.0.19041.0</TPVWindowsPrevious>
<!-- Current -->
<TPVAndroidCurrent>34.0</TPVAndroidCurrent>
<TPViOSCurrent>17.0</TPViOSCurrent>
<TPVMacCatalystCurrent>17.0</TPVMacCatalystCurrent>
<TPVtvOSCurrent>17.0</TPVtvOSCurrent>
<TPVmacOSCurrent>14.0</TPVmacOSCurrent>
<TPVTizenCurrent>7.0</TPVTizenCurrent>
<TPVWindowsCurrent>10.0.19041.0</TPVWindowsCurrent>
<!-- Next -->
<TPVAndroidNext>35.0</TPVAndroidNext>
<TPViOSNext>17.5</TPViOSNext>
<TPVMacCatalystNext>17.5</TPVMacCatalystNext>
<TPVtvOSNext>17.5</TPVtvOSNext>
<TPVmacOSNext>14.5</TPVmacOSNext>
<TPVTizenNext>7.0</TPVTizenNext>
<TPVWindowsNext>10.0.19041.0</TPVWindowsNext>
</PropertyGroup>
<!-- Try determine which .NET workloads are installed for LOCAL builds -->
<PropertyGroup Condition="!$(IsCI) and '$(BuildEverything)' != 'true'">
<DotNetWorkloadSearchManifest>microsoft.net.sdk.macos\WorkloadManifest.json</DotNetWorkloadSearchManifest>
<!-- DOTNET_INSTALL_DIR -->
<DotNetWorkloadSearchPath Condition="'$(DotNetWorkloadInstallLocation)' == ''">$([MSBuild]::NormalizeDirectory('$(DOTNET_INSTALL_DIR)\sdk-manifests\$(DotNetSdkManifestVersion)'))</DotNetWorkloadSearchPath>
<DotNetWorkloadInstallLocation Condition="'$(DotNetWorkloadInstallLocation)' == '' and Exists($([MSBuild]::NormalizePath('$(DotNetWorkloadSearchPath)', '$(DotNetWorkloadSearchManifest)')))">$(DotNetWorkloadSearchPath)</DotNetWorkloadInstallLocation>
<!-- DOTNET_ROOT -->
<DotNetWorkloadSearchPath Condition="'$(DotNetWorkloadInstallLocation)' == ''">$([MSBuild]::NormalizeDirectory('$(DOTNET_ROOT)\sdk-manifests\$(DotNetSdkManifestVersion)'))</DotNetWorkloadSearchPath>
<DotNetWorkloadInstallLocation Condition="'$(DotNetWorkloadInstallLocation)' == '' and Exists($([MSBuild]::NormalizePath('$(DotNetWorkloadSearchPath)', '$(DotNetWorkloadSearchManifest)')))">$(DotNetWorkloadSearchPath)</DotNetWorkloadInstallLocation>
<!-- ProgramFiles\dotnet -->
<DotNetWorkloadSearchPath Condition="'$(DotNetWorkloadInstallLocation)' == ''">$([MSBuild]::NormalizeDirectory('$(ProgramFiles)\dotnet\sdk-manifests\$(DotNetSdkManifestVersion)'))</DotNetWorkloadSearchPath>
<DotNetWorkloadInstallLocation Condition="'$(DotNetWorkloadInstallLocation)' == '' and Exists($([MSBuild]::NormalizePath('$(DotNetWorkloadSearchPath)', '$(DotNetWorkloadSearchManifest)')))">$(DotNetWorkloadSearchPath)</DotNetWorkloadInstallLocation>
<!-- /usr/local/share/dotnet -->
<DotNetWorkloadSearchPath Condition="'$(DotNetWorkloadInstallLocation)' == ''">$([MSBuild]::NormalizeDirectory('/usr/local/share/dotnet/sdk-manifests/$(DotNetSdkManifestVersion)'))</DotNetWorkloadSearchPath>
<DotNetWorkloadInstallLocation Condition="'$(DotNetWorkloadInstallLocation)' == '' and Exists($([MSBuild]::NormalizePath('$(DotNetWorkloadSearchPath)', '$(DotNetWorkloadSearchManifest)')))">$(DotNetWorkloadSearchPath)</DotNetWorkloadInstallLocation>
<!-- LocalAppData\Microsoft\dotnet -->
<DotNetWorkloadSearchPath Condition="'$(DotNetWorkloadInstallLocation)' == ''">$([MSBuild]::NormalizeDirectory('$(LocalAppData)\Microsoft\dotnet\sdk-manifests\$(DotNetSdkManifestVersion)'))</DotNetWorkloadSearchPath>
<DotNetWorkloadInstallLocation Condition="'$(DotNetWorkloadInstallLocation)' == '' and Exists($([MSBuild]::NormalizePath('$(DotNetWorkloadSearchPath)', '$(DotNetWorkloadSearchManifest)')))">$(DotNetWorkloadSearchPath)</DotNetWorkloadInstallLocation>
<!-- HOME\.dotnet -->
<DotNetWorkloadSearchPath Condition="'$(DotNetWorkloadInstallLocation)' == ''">$([MSBuild]::NormalizeDirectory('$(HOME)/.dotnet/sdk-manifests/$(DotNetSdkManifestVersion)'))</DotNetWorkloadSearchPath>
<DotNetWorkloadInstallLocation Condition="'$(DotNetWorkloadInstallLocation)' == '' and Exists($([MSBuild]::NormalizePath('$(DotNetWorkloadSearchPath)', '$(DotNetWorkloadSearchManifest)')))">$(DotNetWorkloadSearchPath)</DotNetWorkloadInstallLocation>
</PropertyGroup>
<PropertyGroup Condition="!$(IsCI) and '$(BuildEverything)' != 'true'">
<DotNetWorkloadVersionRegex>\d+\.\d+\.\d+(-[a-z]+[\.\d+]+)*</DotNetWorkloadVersionRegex>
<DotNetWorkloadPacksInstallLocation Condition="'$(DotNetWorkloadInstallLocation)' != ''">$(DotNetWorkloadInstallLocation)..\..\packs\</DotNetWorkloadPacksInstallLocation>
<DotNetAndroidWorkloadInstalledVersion Condition="Exists('$(DotNetWorkloadInstallLocation)microsoft.net.sdk.android\WorkloadManifest.json')">$([System.Text.RegularExpressions.Regex]::Match($([System.IO.File]::ReadAllText('$(DotNetWorkloadInstallLocation)\microsoft.net.sdk.android\WorkloadManifest.json')), $(DotNetWorkloadVersionRegex)))</DotNetAndroidWorkloadInstalledVersion>
<DotNetIOSWorkloadInstalledVersion Condition="Exists('$(DotNetWorkloadInstallLocation)microsoft.net.sdk.ios\WorkloadManifest.json')">$([System.Text.RegularExpressions.Regex]::Match($([System.IO.File]::ReadAllText('$(DotNetWorkloadInstallLocation)\microsoft.net.sdk.ios\WorkloadManifest.json')), $(DotNetWorkloadVersionRegex)))</DotNetIOSWorkloadInstalledVersion>
<DotNetMauiWorkloadInstalledVersion Condition="Exists('$(DotNetWorkloadInstallLocation)microsoft.net.sdk.maui\WorkloadManifest.json')">$([System.Text.RegularExpressions.Regex]::Match($([System.IO.File]::ReadAllText('$(DotNetWorkloadInstallLocation)\microsoft.net.sdk.maui\WorkloadManifest.json')), $(DotNetWorkloadVersionRegex)))</DotNetMauiWorkloadInstalledVersion>
<DotNetTizenWorkloadInstalledVersion Condition="Exists('$(DotNetWorkloadInstallLocation)samsung.net.sdk.tizen\WorkloadManifest.json')">$([System.Text.RegularExpressions.Regex]::Match($([System.IO.File]::ReadAllText('$(DotNetWorkloadInstallLocation)\samsung.net.sdk.tizen\WorkloadManifest.json')), $(DotNetWorkloadVersionRegex)))</DotNetTizenWorkloadInstalledVersion>
<DotNetTVOSWorkloadInstalledVersion Condition="Exists('$(DotNetWorkloadInstallLocation)microsoft.net.sdk.tvos\WorkloadManifest.json')">$([System.Text.RegularExpressions.Regex]::Match($([System.IO.File]::ReadAllText('$(DotNetWorkloadInstallLocation)\microsoft.net.sdk.tvos\WorkloadManifest.json')), '$(DotNetWorkloadVersionRegex)'))</DotNetTVOSWorkloadInstalledVersion>
<DotNetMacOSWorkloadInstalledVersion Condition="Exists('$(DotNetWorkloadInstallLocation)microsoft.net.sdk.macos\WorkloadManifest.json')">$([System.Text.RegularExpressions.Regex]::Match($([System.IO.File]::ReadAllText('$(DotNetWorkloadInstallLocation)\microsoft.net.sdk.macos\WorkloadManifest.json')), '$(DotNetWorkloadVersionRegex)'))</DotNetMacOSWorkloadInstalledVersion>
<DotNetTizenWorkloadIsInstalled Condition="Exists('$(DotNetWorkloadPacksInstallLocation)Samsung.Tizen.Sdk\$(DotNetTizenWorkloadInstalledVersion)\Sdk\AutoImport.props')">true</DotNetTizenWorkloadIsInstalled>
<DotNetTVOSWorkloadIsInstalled Condition="Exists('$(DotNetWorkloadPacksInstallLocation)Microsoft.tvOS.Sdk\$(DotNetTVOSWorkloadInstalledVersion)\Sdk\AutoImport.props')">true</DotNetTVOSWorkloadIsInstalled>
<DotNetMacOSWorkloadIsInstalled Condition="Exists('$(DotNetWorkloadPacksInstallLocation)Microsoft.macOS.Sdk\$(DotNetMacOSWorkloadInstalledVersion)\Sdk\AutoImport.props')">true</DotNetMacOSWorkloadIsInstalled>
<DotNetAndroidWorkloadIsInstalled Condition="Exists('$(DotNetWorkloadPacksInstallLocation)Microsoft.Android.Sdk.Windows\$(DotNetAndroidWorkloadInstalledVersion)\Sdk\AutoImport.props')">true</DotNetAndroidWorkloadIsInstalled>
<DotNetAndroidWorkloadIsInstalled Condition="Exists('$(DotNetWorkloadPacksInstallLocation)Microsoft.Android.Sdk.Darwin\$(DotNetAndroidWorkloadInstalledVersion)\Sdk\AutoImport.props')">true</DotNetAndroidWorkloadIsInstalled>
<DotNetAndroidWorkloadIsInstalled Condition="Exists('$(DotNetWorkloadPacksInstallLocation)Microsoft.Android.Sdk.Linux\$(DotNetAndroidWorkloadInstalledVersion)\Sdk\AutoImport.props')">true</DotNetAndroidWorkloadIsInstalled>
<DotNetIOSWorkloadIsInstalled Condition="Exists('$(DotNetWorkloadPacksInstallLocation)Microsoft.iOS.Sdk\$(DotNetIOSWorkloadInstalledVersion)\Sdk\AutoImport.props')">true</DotNetIOSWorkloadIsInstalled>
<DotNetMauiWorkloadIsInstalled Condition="Exists('$(DotNetWorkloadPacksInstallLocation)Microsoft.Maui.Sdk\$(DotNetMauiWorkloadInstalledVersion)\Sdk\AutoImport.props')">true</DotNetMauiWorkloadIsInstalled>
<IsNetTizenSupported Condition="'$(DotNetTizenWorkloadIsInstalled)' != 'true'">false</IsNetTizenSupported>
<IsNetTVOSSupported Condition="'$(DotNetTVOSWorkloadIsInstalled)' != 'true'">false</IsNetTVOSSupported>
<IsNetMacOSSupported Condition="'$(DotNetMacOSWorkloadIsInstalled)' != 'true'">false</IsNetMacOSSupported>
</PropertyGroup>
<!-- .NET Standard, .NET Framework and .NET -->
<PropertyGroup>
<FullFrameworkTargetFrameworks>net462</FullFrameworkTargetFrameworks>
<BasicTargetFrameworksCurrent>netstandard2.0;netstandard2.1;$(FullFrameworkTargetFrameworks);$(TFMCurrent)</BasicTargetFrameworksCurrent>
<PlatformTargetFrameworksCurrent Condition="!$(IsLinux)">$(TFMCurrent)-ios$(TPViOSCurrent);$(TFMCurrent)-maccatalyst$(TPVMacCatalystCurrent);$(TFMCurrent)-android$(TPVAndroidCurrent)</PlatformTargetFrameworksCurrent>
<PlatformTargetFrameworksCurrent Condition="!$(IsLinux) and $(IsNetTizenSupported)">$(PlatformTargetFrameworksCurrent);$(TFMCurrent)-tizen$(TPVTizenCurrent)</PlatformTargetFrameworksCurrent>
<PlatformTargetFrameworksCurrent Condition="!$(IsLinux) and $(IsNetTVOSSupported)">$(PlatformTargetFrameworksCurrent);$(TFMCurrent)-tvos$(TPVtvOSCurrent)</PlatformTargetFrameworksCurrent>
<PlatformTargetFrameworksCurrent Condition="!$(IsLinux) and $(IsNetMacOSSupported)">$(PlatformTargetFrameworksCurrent);$(TFMCurrent)-macos$(TPVmacOSCurrent)</PlatformTargetFrameworksCurrent>
<PlatformTargetFrameworksCurrent Condition="$(IsWindows)">$(PlatformTargetFrameworksCurrent);$(TFMCurrent)-windows$(TPVWindowsCurrent)</PlatformTargetFrameworksCurrent>
</PropertyGroup>
<PropertyGroup Condition="'$(TFMPrevious)' != ''">
<BasicTargetFrameworksPrevious>$(TFMPrevious)</BasicTargetFrameworksPrevious>
</PropertyGroup>
<PropertyGroup Condition="'$(TFMNext)' != ''">
<BasicTargetFrameworksNext>$(TFMNext)</BasicTargetFrameworksNext>
<PlatformTargetFrameworksNext Condition="!$(IsLinux)">$(TFMNext)-ios$(TPViOSNext);$(TFMNext)-maccatalyst$(TPVMacCatalystNext);$(TFMNext)-android$(TPVAndroidNext)</PlatformTargetFrameworksNext>
<PlatformTargetFrameworksNext Condition="!$(IsLinux) and $(IsNetTizenSupported)">$(PlatformTargetFrameworksNext);$(TFMNext)-tizen$(TPVTizenNext)</PlatformTargetFrameworksNext>
<PlatformTargetFrameworksNext Condition="!$(IsLinux) and $(IsNetTVOSSupported)">$(PlatformTargetFrameworksNext);$(TFMNext)-tvos$(TPVtvOSNext)</PlatformTargetFrameworksNext>
<PlatformTargetFrameworksNext Condition="!$(IsLinux) and $(IsNetMacOSSupported)">$(PlatformTargetFrameworksNext);$(TFMNext)-macos$(TPVmacOSNext)</PlatformTargetFrameworksNext>
<PlatformTargetFrameworksNext Condition="$(IsWindows)">$(PlatformTargetFrameworksNext);$(TFMNext)-windows$(TPVWindowsNext)</PlatformTargetFrameworksNext>
</PropertyGroup>
<PropertyGroup>
<BasicTargetFrameworks>$(BasicTargetFrameworksCurrent);$(BasicTargetFrameworksPrevious);$(BasicTargetFrameworksNext)</BasicTargetFrameworks>
<PlatformTargetFrameworks>$(PlatformTargetFrameworksCurrent);$(PlatformTargetFrameworksPrevious);$(PlatformTargetFrameworksNext)</PlatformTargetFrameworks>
<AllTargetFrameworks>$(BasicTargetFrameworks);$(PlatformTargetFrameworks)</AllTargetFrameworks>
</PropertyGroup>
<!-- Windows TFMs -->
<PropertyGroup>
<WindowsTargetFrameworksCurrent Condition="$(IsWindows)">$(TFMCurrent)-windows$(TPVWindowsCurrent)</WindowsTargetFrameworksCurrent>
<WindowsTargetFrameworksPrevious Condition="$(IsWindows) and '$(TFMPrevious)' != ''">$(TFMPrevious)-windows$(TPVWindowsPrevious)</WindowsTargetFrameworksPrevious>
<WindowsTargetFrameworksNext Condition="$(IsWindows) and '$(TFMNext)' != ''">$(TFMNext)-windows$(TPVWindowsNext)</WindowsTargetFrameworksNext>
<WindowsTargetFrameworks Condition="$(IsWindows)">$(WindowsTargetFrameworksCurrent);$(WindowsTargetFrameworksPrevious);$(WindowsTargetFrameworksNext)</WindowsTargetFrameworks>
</PropertyGroup>
<!-- Windows Desktop TFMs -->
<PropertyGroup>
<WindowsDesktopTargetFrameworks></WindowsDesktopTargetFrameworks>
<WindowsDesktopTargetFrameworks Condition="$(IsWindows)">$(WindowsDesktopTargetFrameworks);$(WindowsTargetFrameworks)</WindowsDesktopTargetFrameworks>
</PropertyGroup>
<!-- Workaround for MAUI https://github.com/dotnet/maui/pull/24263 -->
<PropertyGroup>
<TPViOSCurrent></TPViOSCurrent>
<TPVMacCatalystCurrent></TPVMacCatalystCurrent>
<TPVtvOSCurrent></TPVtvOSCurrent>
<TPVmacOSCurrent></TPVmacOSCurrent>
<TPVTizenCurrent></TPVTizenCurrent>
</PropertyGroup>
<!-- .NET MAUI -->
<PropertyGroup>
<MauiTargetFrameworksPlatformCurrent>$(TFMCurrent)-ios$(TPViOSCurrent);$(TFMCurrent)-maccatalyst$(TPVMacCatalystCurrent);$(TFMCurrent)-android$(TPVAndroidCurrent)</MauiTargetFrameworksPlatformCurrent>
<MauiTargetFrameworksPlatformCurrent Condition="$(IsNetTizenSupported)">$(MauiTargetFrameworksPlatformCurrent);$(TFMCurrent)-tizen$(TPVTizenCurrent)</MauiTargetFrameworksPlatformCurrent>
<MauiTargetFrameworksPlatformCurrent Condition="$(IsWindows)">$(MauiTargetFrameworksPlatformCurrent);$(TFMCurrent)-windows$(TPVWindowsCurrent)</MauiTargetFrameworksPlatformCurrent>
<MauiTargetFrameworksCurrent>$(TFMCurrent);$(MauiTargetFrameworksPlatformCurrent)</MauiTargetFrameworksCurrent>
</PropertyGroup>
<PropertyGroup Condition="'$(TFMNext)' != ''">
<SkipValidateMauiImplicitPackageReferences>true</SkipValidateMauiImplicitPackageReferences>
<MauiTargetFrameworksPlatformNext>$(TFMNext)-ios$(TPViOSNext);$(TFMNext)-maccatalyst$(TPVMacCatalystNext);$(TFMNext)-android$(TPVAndroidNext)</MauiTargetFrameworksPlatformNext>
<MauiTargetFrameworksPlatformNext Condition="$(IsNetTizenSupported)">$(MauiTargetFrameworksPlatformNext);$(TFMNext)-tizen$(TPVTizenNext)</MauiTargetFrameworksPlatformNext>
<MauiTargetFrameworksPlatformNext Condition="$(IsWindows)">$(MauiTargetFrameworksPlatformNext);$(TFMNext)-windows$(TPVWindowsNext)</MauiTargetFrameworksPlatformNext>
<MauiTargetFrameworksNext>$(TFMNext);$(MauiTargetFrameworksPlatformNext)</MauiTargetFrameworksNext>
</PropertyGroup>
<PropertyGroup>
<MauiTargetFrameworks>$(MauiTargetFrameworksCurrent);$(MauiTargetFrameworksNext)</MauiTargetFrameworks>
</PropertyGroup>
<!-- Undo MAUI workaround https://github.com/dotnet/maui/pull/24263 -->
<PropertyGroup>
<TPViOSCurrent>17.0</TPViOSCurrent>
<TPVMacCatalystCurrent>17.0</TPVMacCatalystCurrent>
<TPVtvOSCurrent>17.0</TPVtvOSCurrent>
<TPVmacOSCurrent>14.0</TPVmacOSCurrent>
<TPVTizenCurrent>7.0</TPVTizenCurrent>
</PropertyGroup>
<!-- .NET MAUI Apps (no TPV) -->
<PropertyGroup>
<MauiTargetFrameworksAppCurrent>$(TFMCurrent)-ios;$(TFMCurrent)-maccatalyst;$(TFMCurrent)-android</MauiTargetFrameworksAppCurrent>
<MauiTargetFrameworksAppCurrent Condition="$(IsNetTizenSupported)">$(MauiTargetFrameworksAppCurrent);$(TFMCurrent)-tizen</MauiTargetFrameworksAppCurrent>
<MauiTargetFrameworksAppCurrent Condition="$(IsWindows)">$(MauiTargetFrameworksAppCurrent);$(TFMCurrent)-windows$(TPVWindowsCurrent)</MauiTargetFrameworksAppCurrent>
</PropertyGroup>
<PropertyGroup Condition="'$(TFMNext)' != ''">
<MauiTargetFrameworksAppNext>$(TFMNext)-ios;$(TFMNext)-maccatalyst;$(TFMNext)-android</MauiTargetFrameworksAppNext>
<MauiTargetFrameworksAppNext Condition="$(IsNetTizenSupported)">$(MauiTargetFrameworksAppNext);$(TFMNext)-tizen</MauiTargetFrameworksAppNext>
<MauiTargetFrameworksAppNext Condition="$(IsWindows)">$(MauiTargetFrameworksAppNext);$(TFMNext)-windows$(TPVWindowsNext)</MauiTargetFrameworksAppNext>
</PropertyGroup>
<!-- Uno Platform -->
<PropertyGroup>
<UnoTargetFrameworksReference>$(TFMCurrent)</UnoTargetFrameworksReference>
<UnoTargetFrameworksReference Condition="'$(TFMNext)' != ''">$(UnoTargetFrameworksReference);$(TFMNext)</UnoTargetFrameworksReference>
<UnoTargetFrameworksCurrent Condition="!$(IsLinux)">$(TFMCurrent)-ios$(TPViOSCurrent);$(TFMCurrent)-maccatalyst$(TPVMacCatalystCurrent);$(TFMCurrent)-android$(TPVAndroidCurrent);$(TFMCurrent)-macos$(TPVmacOSCurrent)</UnoTargetFrameworksCurrent>
<UnoTargetFrameworksNext Condition="!$(IsLinux) and '$(TFMNext)' != ''">$(TFMNext)-ios$(TPViOSNext);$(TFMNext)-maccatalyst$(TPVMacCatalystNext);$(TFMNext)-android$(TPVAndroidNext);$(TFMNext)-macos$(TPVmacOSNext)</UnoTargetFrameworksNext>
<UnoTargetFrameworks>$(UnoTargetFrameworksReference);$(UnoTargetFrameworksCurrent);$(UnoTargetFrameworksNext);$(WindowsTargetFrameworks)</UnoTargetFrameworks>
</PropertyGroup>
<PropertyGroup>
<!-- Setup debug symbols -->
<DebugType>portable</DebugType>
<DebugSymbols>true</DebugSymbols>
<!-- We have a lot of unsafe code -->
<AllowUnsafeBlocks>True</AllowUnsafeBlocks>
<!-- We don't use the build output so don't do extra work -->
<ProduceReferenceAssembly>false</ProduceReferenceAssembly>
</PropertyGroup>
<PropertyGroup Condition=" '$(TF_BUILD)' == 'true' or '$(GITHUB_ACTIONS)' == 'true' or '$(CI)' == 'true' ">
<ContinuousIntegrationBuild>true</ContinuousIntegrationBuild>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)' == 'Debug' ">
<DefineConstants>$(DefineConstants);THROW_OBJECT_EXCEPTIONS</DefineConstants>
</PropertyGroup>
<PropertyGroup Condition=" '$(TargetFramework)' == '$(TFMCurrent)' or ('$(TargetFramework)' == '$(TFMPrevious)' and '$(TFMPrevious)' != '') or ('$(TargetFramework)' == '$(TFMNext)' and '$(TFMNext)' != '') ">
<DefineConstants>$(DefineConstants);NETSTANDARD</DefineConstants>
</PropertyGroup>
<PropertyGroup Condition="$(TargetFramework.Contains('-'))">
<DefineConstants>$(DefineConstants);NETPLATFORM</DefineConstants>
</PropertyGroup>
<PropertyGroup Condition="$(TargetFramework.StartsWith('net4'))">
<DependsOnNETStandard>true</DependsOnNETStandard>
</PropertyGroup>
<!-- HACK: WinUI seems to have issues without this -->
<PropertyGroup>
<GenerateLibraryLayout>true</GenerateLibraryLayout>
<DisableEmbeddedXbf>false</DisableEmbeddedXbf>
<WindowsSdkPackageVersion>10.0.19041.27</WindowsSdkPackageVersion>
</PropertyGroup>
<!-- platform version number information -->
<PropertyGroup Condition="$(TargetFramework.Contains('-ios'))">
<SupportedOSPlatformVersion>10.0</SupportedOSPlatformVersion>
<TargetPlatformMinVersion>10.0</TargetPlatformMinVersion>
</PropertyGroup>
<PropertyGroup Condition="$(TargetFramework.Contains('-tvos'))">
<SupportedOSPlatformVersion>10.0</SupportedOSPlatformVersion>
<TargetPlatformMinVersion>10.0</TargetPlatformMinVersion>
</PropertyGroup>
<PropertyGroup Condition="$(TargetFramework.Contains('-maccatalyst'))">
<SupportedOSPlatformVersion>13.1</SupportedOSPlatformVersion>
<TargetPlatformMinVersion>13.1</TargetPlatformMinVersion>
</PropertyGroup>
<PropertyGroup Condition="$(TargetFramework.Contains('-macos'))">
<SupportedOSPlatformVersion>10.14</SupportedOSPlatformVersion>
<TargetPlatformMinVersion>10.14</TargetPlatformMinVersion>
</PropertyGroup>
<PropertyGroup Condition="$(TargetFramework.Contains('-android'))">
<SupportedOSPlatformVersion>21.0</SupportedOSPlatformVersion>
<TargetPlatformMinVersion>21.0</TargetPlatformMinVersion>
</PropertyGroup>
<PropertyGroup Condition="$(TargetFramework.Contains('-windows10'))">
<SupportedOSPlatformVersion>10.0.17763.0</SupportedOSPlatformVersion>
<TargetPlatformMinVersion>10.0.17763.0</TargetPlatformMinVersion>
</PropertyGroup>
<PropertyGroup Condition="$(TargetFramework.Contains('-tizen'))">
<SupportedOSPlatformVersion>6.5</SupportedOSPlatformVersion>
<TargetPlatformMinVersion>6.5</TargetPlatformMinVersion>
</PropertyGroup>
<Target Name="PrintRID"
BeforeTargets="BeforeBuild">
<Message Text="Operating System: Windows"
Condition=" '$(IsWindows)' == 'true' " />
<Message Text="Operating System: macOS"
Condition=" '$(IsMacOS)' == 'true' " />
<Message Text="Operating System: Linux"
Condition=" '$(IsLinux)' == 'true' " />
<Message Text="Workload versions: Android ($(DotNetAndroidWorkloadInstalledVersion)), iOS ($(DotNetIOSWorkloadInstalledVersion)), macOS ($(DotNetMacOSWorkloadInstalledVersion)), tvOS ($(DotNetTVOSWorkloadInstalledVersion)), Tizen ($(DotNetTizenWorkloadInstalledVersion)), MAUI ($(DotNetMauiWorkloadInstalledVersion))" />
<Message Text="Workloads installed: Android ($(DotNetAndroidWorkloadIsInstalled)), iOS ($(DotNetIOSWorkloadIsInstalled)), macOS ($(DotNetMacOSWorkloadIsInstalled)), tvOS ($(DotNetTVOSWorkloadIsInstalled)), Tizen ($(DotNetTizenWorkloadIsInstalled)), MAUI ($(DotNetMauiWorkloadIsInstalled))" />
<Error Text="There appears to be a problem selecting the operating system. IsWindows='$(IsWindows)', IsMacOS='$(IsMacOS)', IsLinux='$(IsLinux)'"
Condition=" !$(IsWindows) and !$(IsMacOS) and !$(IsLinux) " />
</Target>
<Import Project="$(MSBuildThisFileDirectory)SkiaSharp.NuGet.props" />
</Project>