Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 7 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,12 +12,14 @@ SkiaSharp provides cross-platform bindings for:

- .NET Standard 1.3
- .NET Core
- .NET 6
- Tizen
- Xamarin.Android
- Xamarin.iOS
- Xamarin.tvOS
- Xamarin.watchOS
- Xamarin.Mac
- Android
- iOS
- tvOS
- watchOS
- macOS
- Mac Catalyst
- Windows Classic Desktop (Windows.Forms / WPF)
- Windows UWP (Desktop / Mobile / Xbox / HoloLens)
- Web Assembly (WASM)
Expand Down
16 changes: 7 additions & 9 deletions binding/HarfBuzzSharp/HarfBuzzSharp.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -61,32 +61,30 @@
<None Include="..\..\output\native\android\armeabi-v7a\libHarfBuzzSharp*" Link="nuget\runtimes\android-arm\native\%(Filename)%(Extension)" />
<None Include="..\..\output\native\android\arm64-v8a\libHarfBuzzSharp*" Link="nuget\runtimes\android-arm64\native\%(Filename)%(Extension)" />
<None Include="nuget\build\android\HarfBuzzSharp.targets" Link="nuget\build\net6.0-android\HarfBuzzSharp.targets" />
<None Include="nuget\build\monoandroid\HarfBuzzSharp.targets" Link="nuget\build\net6.0-android\HarfBuzzSharp.Local.targets" />
<None Include="nuget\build\android\HarfBuzzSharp.Local.targets" Link="nuget\build\net6.0-android\HarfBuzzSharp.Local.targets" />
</ItemGroup>
<ItemGroup Condition="$(TargetFramework.Contains('-ios'))">
<!-- iOS -->
<None Include="..\..\output\native\ios\libHarfBuzzSharp.framework\**" Link="nuget\runtimes\ios\native\libHarfBuzzSharp.framework\%(RecursiveDir)%(Filename)%(Extension)" />
<None Include="nuget\build\ios\HarfBuzzSharp.targets" Link="nuget\build\net6.0-ios\HarfBuzzSharp.targets" />
<None Include="nuget\build\xamarinios\HarfBuzzSharp.targets" Link="nuget\build\net6.0-ios\HarfBuzzSharp.Local.targets" />
<None Include="nuget\build\ios\HarfBuzzSharp.Local.targets" Link="nuget\build\net6.0-ios\HarfBuzzSharp.Local.targets" />
</ItemGroup>
<ItemGroup Condition="$(TargetFramework.Contains('-maccatalyst'))">
<!-- Mac Catalyst -->
<None Include="..\..\output\native\maccatalyst\libHarfBuzzSharp.framework\**" Link="nuget\runtimes\maccatalyst\native\libHarfBuzzSharp.framework\%(RecursiveDir)%(Filename)%(Extension)" />
<None Include="nuget\build\maccatalyst\HarfBuzzSharp.targets" Link="nuget\build\net6.0-maccatalyst\HarfBuzzSharp.targets" />
<None Include="nuget\build\maccatalyst\HarfBuzzSharp.Local.targets" Link="nuget\build\net6.0-maccatalyst\HarfBuzzSharp.Local.targets" />
<None Include="..\..\output\native\maccatalyst\libHarfBuzzSharp*.framework.zip" Link="nuget\runtimes\maccatalyst\native\%(Filename)%(Extension)" />
</ItemGroup>
<ItemGroup Condition="$(TargetFramework.Contains('-tvos'))">
<!-- tvOS -->
<None Include="..\..\output\native\tvos\libHarfBuzzSharp.framework\**" Link="nuget\runtimes\tvos\native\libHarfBuzzSharp.framework\%(RecursiveDir)%(Filename)%(Extension)" />
<None Include="nuget\build\tvos\HarfBuzzSharp.targets" Link="nuget\build\net6.0-tvos\HarfBuzzSharp.targets" />
<None Include="nuget\build\xamarintvos\HarfBuzzSharp.targets" Link="nuget\build\net6.0-tvos\HarfBuzzSharp.Local.targets" />
</ItemGroup>
<ItemGroup Condition="$(TargetFramework.Contains('-watchos'))">
<!-- watchOS -->
<None Include="..\..\output\native\watchos\libHarfBuzzSharp.framework\**" Link="nuget\runtimes\watchos\native\libHarfBuzzSharp.framework\%(RecursiveDir)%(Filename)%(Extension)" />
<None Include="nuget\build\tvos\HarfBuzzSharp.Local.targets" Link="nuget\build\net6.0-tvos\HarfBuzzSharp.Local.targets" />
</ItemGroup>
<ItemGroup Condition="$(TargetFramework.Contains('-macos'))">
<!-- macOS -->
<None Include="nuget\build\macos\HarfBuzzSharp.targets" Link="nuget\build\net6.0-macos\HarfBuzzSharp.targets" />
<None Include="nuget\build\xamarinmac\HarfBuzzSharp.targets" Link="nuget\build\net6.0-macos\HarfBuzzSharp.Local.targets" />
<None Include="nuget\build\macos\HarfBuzzSharp.Local.targets" Link="nuget\build\net6.0-macos\HarfBuzzSharp.Local.targets" />
</ItemGroup>
<ItemGroup>
<Compile Include="..\Binding.Shared\**\*.cs" Link="%(RecursiveDir)%(Filename)%(Extension)" />
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">

<ItemGroup>
<AndroidNativeLibrary Include="$(MSBuildThisFileDirectory)..\..\runtimes\android-x86\native\libHarfBuzzSharp.so" Abi="x86" />
<AndroidNativeLibrary Include="$(MSBuildThisFileDirectory)..\..\runtimes\android-x64\native\libHarfBuzzSharp.so" Abi="x86_64" />
<AndroidNativeLibrary Include="$(MSBuildThisFileDirectory)..\..\runtimes\android-arm\native\libHarfBuzzSharp.so" Abi="armeabi-v7a" />
<AndroidNativeLibrary Include="$(MSBuildThisFileDirectory)..\..\runtimes\android-arm64\native\libHarfBuzzSharp.so" Abi="arm64-v8a" />
</ItemGroup>

</Project>
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">

<ItemGroup>
<NativeReference Include="$(MSBuildThisFileDirectory)..\..\runtimes\ios\native\libHarfBuzzSharp.framework" Kind="Framework" />
</ItemGroup>

</Project>
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
'%(ResolvedFileToPublish.PathInPackage)' != ''">
<FrameworkFilename>$([System.IO.Path]::GetFileName($([System.IO.Path]::GetDirectoryName(%(ResolvedFileToPublish.PathInPackage)))))</FrameworkFilename>
<DirectoryName>$([System.IO.Path]::GetDirectoryName(%(ResolvedFileToPublish.FullPath)))</DirectoryName>
</_PossibleNativeFramework>
</_PossibleNativeFramework>
<NativeReference Include="%(_PossibleNativeFramework.DirectoryName)" Condition="'%(FrameworkFilename)' == '%(Filename).framework'">
<Kind>Framework</Kind>
<NuGetPackageId>%(NuGetPackageId)</NuGetPackageId>
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
<?xml version="1.0" encoding="utf-8"?>
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">

<PropertyGroup>
<_HarfBuzzSharpExpandNativeReferencesStamp>obj\$(Configuration)\$(TargetFramework)\harfbuzzsharpextract.stamp</_HarfBuzzSharpExpandNativeReferencesStamp>
<_HarfBuzzSharpExpandNativeReferencesPath>obj\$(Configuration)\$(TargetFramework)\harfbuzzsharpextract\</_HarfBuzzSharpExpandNativeReferencesPath>
</PropertyGroup>

<Target Name="_HarfBuzzSharpExpandNativeReferencesFixes" BeforeTargets="_ExpandNativeReferences" Condition=" '$(OS)' == 'Unix' and !Exists('$(_HarfBuzzSharpExpandNativeReferencesStamp)') ">

<RemoveDir Directories="$(_HarfBuzzSharpExpandNativeReferencesPath)" />
<MakeDir Directories="$(_HarfBuzzSharpExpandNativeReferencesPath)" />
<Exec Command="unzip -d $(_HarfBuzzSharpExpandNativeReferencesPath) $(MSBuildThisFileDirectory)..\..\runtimes\maccatalyst\native\libHarfBuzzSharp.framework.zip" />

<ItemGroup>
<NativeReference Include="$(_HarfBuzzSharpExpandNativeReferencesPath)libHarfBuzzSharp.framework" Kind="Framework" />
</ItemGroup>

<Touch Files="$(_HarfBuzzSharpExpandNativeReferencesStamp)" AlwaysCreate="True" />

<ItemGroup>
<FileWrites Include="$(_HarfBuzzSharpExpandNativeReferencesPath)\**" />
<FileWrites Include="$(_HarfBuzzSharpExpandNativeReferencesStamp)" />
</ItemGroup>

</Target>

<!-- temporarily work around https://github.com/xamarin/xamarin-macios/issues/12369 -->
<Target Name="_HarfBuzzSharpCollectFrameworksFixes" AfterTargets="_CollectFrameworks" Condition=" '$(OS)' == 'Unix' ">
<PropertyGroup>
<_HarfBuzzSharpNativeAssetPath>$(_FrameworksDirectory)\libHarfBuzzSharp.framework\libHarfBuzzSharp</_HarfBuzzSharpNativeAssetPath>
<_HarfBuzzSharpIsSymlink Condition="$([MSBuild]::BitwiseAnd(1024, $([System.IO.File]::GetAttributes('$(_HarfBuzzSharpNativeAssetPath)')))) == '1024'">true</_HarfBuzzSharpIsSymlink>
</PropertyGroup>
<RemoveDir Directories="$(_FrameworksDirectory)\libHarfBuzzSharp.framework" Condition="'$(_HarfBuzzSharpIsSymlink)' != 'true'" />
<Exec Command="cp -R $(_HarfBuzzSharpExpandNativeReferencesPath)libHarfBuzzSharp.framework $(_FrameworksDirectory)/libHarfBuzzSharp.framework" Condition="'$(_HarfBuzzSharpIsSymlink)' != 'true'" />
</Target>

</Project>
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
<?xml version="1.0" encoding="utf-8"?>
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">

<PropertyGroup>
<_HarfBuzzSharpExpandNativeReferencesStamp>$(IntermediateOutputPath)harfbuzzsharpextract.stamp</_HarfBuzzSharpExpandNativeReferencesStamp>
<_HarfBuzzSharpExpandNativeReferencesPath>$(IntermediateOutputPath)harfbuzzsharpextract\</_HarfBuzzSharpExpandNativeReferencesPath>
</PropertyGroup>

<!-- temporarily work around https://github.com/xamarin/xamarin-macios/issues/11667 -->
<Target Name="_HarfBuzzSharpExpandNativeReferencesFixes" BeforeTargets="_ExpandNativeReferences" Condition=" '$(OS)' == 'Unix' and !Exists('$(_HarfBuzzSharpExpandNativeReferencesStamp)') ">

<ItemGroup>
<_HarfBuzzSharpPossibleNativeFramework
Include="@(ResolvedFileToPublish)"
Condition="
'%(ResolvedFileToPublish.AssetType)' == 'native' and
'%(ResolvedFileToPublish.Filename)' == 'libHarfBuzzSharp.framework' and
'%(ResolvedFileToPublish.Extension)' == '.zip' and
'%(ResolvedFileToPublish.NuGetPackageId)' != '' and
'%(ResolvedFileToPublish.PathInPackage)' != ''">
<ExtractPath>$(_HarfBuzzSharpExpandNativeReferencesPath)</ExtractPath>
<DirectoryName>$(_HarfBuzzSharpExpandNativeReferencesPath)%(ResolvedFileToPublish.Filename)</DirectoryName>
</_HarfBuzzSharpPossibleNativeFramework>
</ItemGroup>

<RemoveDir Directories="$(_HarfBuzzSharpExpandNativeReferencesPath)" />

<MakeDir Directories="%(_HarfBuzzSharpPossibleNativeFramework.ExtractPath)" />
<Exec Command="unzip -d %(_HarfBuzzSharpPossibleNativeFramework.ExtractPath) %(_HarfBuzzSharpPossibleNativeFramework.FullPath)" />

<ItemGroup>
<NativeReference Include="%(_HarfBuzzSharpPossibleNativeFramework.DirectoryName)">
<Kind>Framework</Kind>
<NuGetPackageId>%(NuGetPackageId)</NuGetPackageId>
<NuGetPackageVersion>%(NuGetPackageVersion)</NuGetPackageVersion>
<AssetType>%(AssetType)</AssetType>
<RuntimeIdentifier>$([System.Text.RegularExpressions.Regex]::Match('%(_HarfBuzzSharpPossibleNativeFramework.PathInPackage)', 'runtimes/([^/]+)/native/.*').Groups[1].Value)</RuntimeIdentifier>
</NativeReference>
</ItemGroup>

<Touch Files="$(_HarfBuzzSharpExpandNativeReferencesStamp)" AlwaysCreate="True" />

<ItemGroup>
<FileWrites Include="$(_HarfBuzzSharpExpandNativeReferencesPath)\**" />
<FileWrites Include="$(_HarfBuzzSharpExpandNativeReferencesStamp)" />
<_PossibleNativeFramework Remove="@(_PossibleNativeFramework)" />
</ItemGroup>

</Target>

<!-- temporarily work around https://github.com/xamarin/xamarin-macios/issues/12369 -->
<Target Name="_HarfBuzzSharpCollectFrameworksFixes" AfterTargets="_CollectFrameworks" Condition=" '$(OS)' == 'Unix' ">
<PropertyGroup>
<_HarfBuzzSharpNativeAssetPath>$(_FrameworksDirectory)\libHarfBuzzSharp.framework\libHarfBuzzSharp</_HarfBuzzSharpNativeAssetPath>
<_HarfBuzzSharpIsSymlink Condition="$([MSBuild]::BitwiseAnd(1024, $([System.IO.File]::GetAttributes('$(_HarfBuzzSharpNativeAssetPath)')))) == '1024'">true</_HarfBuzzSharpIsSymlink>
</PropertyGroup>
<RemoveDir Directories="$(_FrameworksDirectory)\libHarfBuzzSharp.framework" Condition="'$(_HarfBuzzSharpIsSymlink)' != 'true'" />
<Exec Command="cp -R $(_HarfBuzzSharpExpandNativeReferencesPath)libHarfBuzzSharp.framework $(_FrameworksDirectory)/libHarfBuzzSharp.framework" Condition="'$(_HarfBuzzSharpIsSymlink)' != 'true'" />
</Target>

</Project>
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">

<ItemGroup>
<NativeReference Include="$(MSBuildThisFileDirectory)..\..\runtimes\osx\native\libHarfBuzzSharp.framework" Kind="Framework" />
</ItemGroup>

</Project>
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">

<ItemGroup>
<NativeReference Include="$(MSBuildThisFileDirectory)..\..\runtimes\tvos\native\libHarfBuzzSharp.framework" Kind="Framework" />
</ItemGroup>

</Project>
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
'%(ResolvedFileToPublish.PathInPackage)' != ''">
<FrameworkFilename>$([System.IO.Path]::GetFileName($([System.IO.Path]::GetDirectoryName(%(ResolvedFileToPublish.PathInPackage)))))</FrameworkFilename>
<DirectoryName>$([System.IO.Path]::GetDirectoryName(%(ResolvedFileToPublish.FullPath)))</DirectoryName>
</_PossibleNativeFramework>
</_PossibleNativeFramework>
<NativeReference Include="%(_PossibleNativeFramework.DirectoryName)" Condition="'%(FrameworkFilename)' == '%(Filename).framework'">
<Kind>Framework</Kind>
<NuGetPackageId>%(NuGetPackageId)</NuGetPackageId>
Expand Down
16 changes: 7 additions & 9 deletions binding/SkiaSharp/SkiaSharp.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -60,32 +60,30 @@
<None Include="..\..\output\native\android\armeabi-v7a\libSkiaSharp*" Link="nuget\runtimes\android-arm\native\%(Filename)%(Extension)" />
<None Include="..\..\output\native\android\arm64-v8a\libSkiaSharp*" Link="nuget\runtimes\android-arm64\native\%(Filename)%(Extension)" />
<None Include="nuget\build\android\SkiaSharp.targets" Link="nuget\build\net6.0-android\SkiaSharp.targets" />
<None Include="nuget\build\monoandroid\SkiaSharp.targets" Link="nuget\build\net6.0-android\SkiaSharp.Local.targets" />
<None Include="nuget\build\android\SkiaSharp.Local.targets" Link="nuget\build\net6.0-android\SkiaSharp.Local.targets" />
</ItemGroup>
<ItemGroup Condition="$(TargetFramework.Contains('-ios'))">
<!-- iOS -->
<None Include="..\..\output\native\ios\libSkiaSharp.framework\**" Link="nuget\runtimes\ios\native\libSkiaSharp.framework\%(RecursiveDir)%(Filename)%(Extension)" />
<None Include="nuget\build\ios\SkiaSharp.targets" Link="nuget\build\net6.0-ios\SkiaSharp.targets" />
<None Include="nuget\build\xamarinios\SkiaSharp.targets" Link="nuget\build\net6.0-ios\SkiaSharp.Local.targets" />
<None Include="nuget\build\ios\SkiaSharp.Local.targets" Link="nuget\build\net6.0-ios\SkiaSharp.Local.targets" />
</ItemGroup>
<ItemGroup Condition="$(TargetFramework.Contains('-maccatalyst'))">
<!-- Mac Catalyst -->
<None Include="..\..\output\native\maccatalyst\libSkiaSharp.framework\**" Link="nuget\runtimes\maccatalyst\native\libSkiaSharp.framework\%(RecursiveDir)%(Filename)%(Extension)" />
<None Include="nuget\build\maccatalyst\SkiaSharp.targets" Link="nuget\build\net6.0-maccatalyst\SkiaSharp.targets" />
<None Include="nuget\build\maccatalyst\SkiaSharp.Local.targets" Link="nuget\build\net6.0-maccatalyst\SkiaSharp.Local.targets" />
<None Include="..\..\output\native\maccatalyst\libSkiaSharp*.framework.zip" Link="nuget\runtimes\maccatalyst\native\%(Filename)%(Extension)" />
</ItemGroup>
<ItemGroup Condition="$(TargetFramework.Contains('-tvos'))">
<!-- tvOS -->
<None Include="..\..\output\native\tvos\libSkiaSharp.framework\**" Link="nuget\runtimes\tvos\native\libSkiaSharp.framework\%(RecursiveDir)%(Filename)%(Extension)" />
<None Include="nuget\build\tvos\SkiaSharp.targets" Link="nuget\build\net6.0-tvos\SkiaSharp.targets" />
<None Include="nuget\build\xamarintvos\SkiaSharp.targets" Link="nuget\build\net6.0-tvos\SkiaSharp.Local.targets" />
</ItemGroup>
<ItemGroup Condition="$(TargetFramework.Contains('-watchos'))">
<!-- watchOS -->
<None Include="..\..\output\native\watchos\libSkiaSharp.framework\**" Link="nuget\runtimes\watchos\native\libSkiaSharp.framework\%(RecursiveDir)%(Filename)%(Extension)" />
<None Include="nuget\build\tvos\SkiaSharp.Local.targets" Link="nuget\build\net6.0-tvos\SkiaSharp.Local.targets" />
</ItemGroup>
<ItemGroup Condition="$(TargetFramework.Contains('-macos'))">
<!-- macOS -->
<None Include="nuget\build\macos\SkiaSharp.targets" Link="nuget\build\net6.0-macos\SkiaSharp.targets" />
<None Include="nuget\build\xamarinmac\SkiaSharp.targets" Link="nuget\build\net6.0-macos\SkiaSharp.Local.targets" />
<None Include="nuget\build\macos\SkiaSharp.Local.targets" Link="nuget\build\net6.0-macos\SkiaSharp.Local.targets" />
</ItemGroup>
<ItemGroup>
<Compile Include="..\Binding.Shared\**\*.cs" Link="%(RecursiveDir)%(Filename)%(Extension)" />
Expand Down
11 changes: 11 additions & 0 deletions binding/SkiaSharp/nuget/build/android/SkiaSharp.Local.targets
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">

<ItemGroup>
<AndroidNativeLibrary Include="$(MSBuildThisFileDirectory)..\..\runtimes\android-x86\native\libSkiaSharp.so" Abi="x86" />
<AndroidNativeLibrary Include="$(MSBuildThisFileDirectory)..\..\runtimes\android-x64\native\libSkiaSharp.so" Abi="x86_64" />
<AndroidNativeLibrary Include="$(MSBuildThisFileDirectory)..\..\runtimes\android-arm\native\libSkiaSharp.so" Abi="armeabi-v7a" />
<AndroidNativeLibrary Include="$(MSBuildThisFileDirectory)..\..\runtimes\android-arm64\native\libSkiaSharp.so" Abi="arm64-v8a" />
</ItemGroup>

</Project>
8 changes: 8 additions & 0 deletions binding/SkiaSharp/nuget/build/ios/SkiaSharp.Local.targets
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">

<ItemGroup>
<NativeReference Include="$(MSBuildThisFileDirectory)..\..\runtimes\ios\native\libSkiaSharp.framework" Kind="Framework" />
</ItemGroup>

</Project>
2 changes: 1 addition & 1 deletion binding/SkiaSharp/nuget/build/ios/SkiaSharp.targets
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
'%(ResolvedFileToPublish.PathInPackage)' != ''">
<FrameworkFilename>$([System.IO.Path]::GetFileName($([System.IO.Path]::GetDirectoryName(%(ResolvedFileToPublish.PathInPackage)))))</FrameworkFilename>
<DirectoryName>$([System.IO.Path]::GetDirectoryName(%(ResolvedFileToPublish.FullPath)))</DirectoryName>
</_PossibleNativeFramework>
</_PossibleNativeFramework>
<NativeReference Include="%(_PossibleNativeFramework.DirectoryName)" Condition="'%(FrameworkFilename)' == '%(Filename).framework'">
<Kind>Framework</Kind>
<NuGetPackageId>%(NuGetPackageId)</NuGetPackageId>
Expand Down
Loading