Merge remote-tracking branch 'origin/develop'

This commit is contained in:
Matthew Leibowitz 2021-07-12 02:02:46 +02:00
Родитель 3e3bfb0970 2403baa649
Коммит a039abe81f
213 изменённых файлов: 6063 добавлений и 1766 удалений

Просмотреть файл

@ -1,7 +1,7 @@
# dependencies
mdoc release 5.8.3
harfbuzz release 2.6.1
skia release m80
skia release m88
xunit release 2.4.1
xunit.runner.console release 2.4.1
Xamarin.Forms release 4.5.0.725
@ -25,6 +25,10 @@ Uno.UI release 3.7.6
Microsoft.ProjectReunion release 0.8.0
Microsoft.ProjectReunion.Foundation release 0.8.0
Microsoft.ProjectReunion.WinUI release 0.8.0
Microsoft.Maui.Core release 6.0.100-preview.5.794
Microsoft.Maui.Controls release 6.0.100-preview.5.794
Microsoft.Maui.Controls.Compatibility release 6.0.100-preview.5.794
Microsoft.Maui.Controls.Compatibility.Android.FormsViewGroup release 6.0.100-preview.5.794
Microsoft.Windows.SDK.NET.Ref release 10.0.18362.15
# additional references used by the tooling
@ -35,40 +39,43 @@ Xamarin.Forms reference 4.4.0.991757
# this is related to the API versions, not the library versions
# - milestone: the skia milestone determined by Google/Chromium
# - increment: the C API version increment caused by new APIs
libSkiaSharp milestone 80
libSkiaSharp increment 3
libSkiaSharp milestone 88
libSkiaSharp increment 0
# native sonames
libSkiaSharp soname 80.3.0
libSkiaSharp soname 88.0.0
HarfBuzz soname 0.20601.0
# SkiaSharp.dll
SkiaSharp assembly 2.80.0.0
SkiaSharp file 2.80.3.0
SkiaSharp assembly 2.88.0.0
SkiaSharp file 2.88.0.0
# HarfBuzzSharp.dll
HarfBuzzSharp assembly 1.0.0.0
HarfBuzzSharp file 2.6.1.8
# nuget versions
SkiaSharp nuget 2.80.3
SkiaSharp.NativeAssets.Linux nuget 2.80.3
SkiaSharp.NativeAssets.Linux.NoDependencies nuget 2.80.3
SkiaSharp.NativeAssets.NanoServer nuget 2.80.3
SkiaSharp.NativeAssets.WebAssembly nuget 2.80.3
SkiaSharp.Views nuget 2.80.3
SkiaSharp.Views.Desktop.Common nuget 2.80.3
SkiaSharp.Views.Gtk2 nuget 2.80.3
SkiaSharp.Views.Gtk3 nuget 2.80.3
SkiaSharp.Views.WindowsForms nuget 2.80.3
SkiaSharp.Views.WPF nuget 2.80.3
SkiaSharp.Views.Forms nuget 2.80.3
SkiaSharp.Views.Forms.WPF nuget 2.80.3
SkiaSharp.Views.Forms.GTK nuget 2.80.3
SkiaSharp.Views.Uno nuget 2.80.3
SkiaSharp.Views.WinUI nuget 2.80.3
SkiaSharp.HarfBuzz nuget 2.80.3
SkiaSharp.Vulkan.SharpVk nuget 2.80.3
SkiaSharp nuget 2.88.0
SkiaSharp.NativeAssets.Linux nuget 2.88.0
SkiaSharp.NativeAssets.Linux.NoDependencies nuget 2.88.0
SkiaSharp.NativeAssets.NanoServer nuget 2.88.0
SkiaSharp.NativeAssets.WebAssembly nuget 2.88.0
SkiaSharp.Views nuget 2.88.0
SkiaSharp.Views.Desktop.Common nuget 2.88.0
SkiaSharp.Views.Gtk2 nuget 2.88.0
SkiaSharp.Views.Gtk3 nuget 2.88.0
SkiaSharp.Views.WindowsForms nuget 2.88.0
SkiaSharp.Views.WPF nuget 2.88.0
SkiaSharp.Views.Forms nuget 2.88.0
SkiaSharp.Views.Forms.WPF nuget 2.88.0
SkiaSharp.Views.Forms.GTK nuget 2.88.0
SkiaSharp.Views.Uno nuget 2.88.0
SkiaSharp.Views.WinUI nuget 2.88.0
SkiaSharp.Views.Maui.Core nuget 2.88.0
SkiaSharp.Views.Maui.Controls nuget 2.88.0
SkiaSharp.Views.Maui.Controls.Compatibility nuget 2.88.0
SkiaSharp.HarfBuzz nuget 2.88.0
SkiaSharp.Vulkan.SharpVk nuget 2.88.0
HarfBuzzSharp nuget 2.6.1.8
HarfBuzzSharp.NativeAssets.Linux nuget 2.6.1.8
HarfBuzzSharp.NativeAssets.WebAssembly nuget 2.6.1.8

Просмотреть файл

@ -75,6 +75,8 @@ namespace SkiaSharp
Alpha16 = 16,
Rg1616 = 17,
Rgba16161616 = 18,
Bgra1010102 = 19,
Bgr101010x = 20,
}
public static partial class SkiaExtensions
@ -130,6 +132,8 @@ namespace SkiaSharp
SKColorType.AlphaF16 => 2,
// 4
SKColorType.Bgra8888 => 4,
SKColorType.Bgra1010102 => 4,
SKColorType.Bgr101010x => 4,
SKColorType.Rgba8888 => 4,
SKColorType.Rgb888x => 4,
SKColorType.Rgba1010102 => 4,
@ -168,6 +172,7 @@ namespace SkiaSharp
case SKColorType.Rgba8888:
case SKColorType.Bgra8888:
case SKColorType.Rgba1010102:
case SKColorType.Bgra1010102:
case SKColorType.RgbaF16Clamped:
case SKColorType.RgbaF16:
case SKColorType.RgbaF32:
@ -182,6 +187,7 @@ namespace SkiaSharp
case SKColorType.Rgb565:
case SKColorType.Rgb888x:
case SKColorType.Rgb101010x:
case SKColorType.Bgr101010x:
alphaType = SKAlphaType.Opaque;
break;

Просмотреть файл

@ -9,6 +9,7 @@ namespace SkiaSharp
OpenGL = 1,
Vulkan = 2,
Dawn = 3,
Direct3D = 4,
}
[EditorBrowsable (EditorBrowsableState.Never)]
@ -61,6 +62,7 @@ namespace SkiaSharp
GRBackend.OpenGL => GRBackendNative.OpenGL,
GRBackend.Vulkan => GRBackendNative.Vulkan,
GRBackend.Dawn => GRBackendNative.Dawn,
GRBackend.Direct3D => GRBackendNative.Direct3D,
_ => throw new ArgumentOutOfRangeException (nameof (backend)),
};
@ -71,6 +73,7 @@ namespace SkiaSharp
GRBackendNative.OpenGL => GRBackend.OpenGL,
GRBackendNative.Vulkan => GRBackend.Vulkan,
GRBackendNative.Dawn => GRBackend.Dawn,
GRBackendNative.Direct3D => GRBackend.Direct3D,
_ => throw new ArgumentOutOfRangeException (nameof (backend)),
};
@ -96,6 +99,8 @@ namespace SkiaSharp
SKColorType.Alpha16 => SKColorTypeNative.A16Unorm,
SKColorType.Rg1616 => SKColorTypeNative.R16g16Unorm,
SKColorType.Rgba16161616 => SKColorTypeNative.R16g16b16a16Unorm,
SKColorType.Bgra1010102 => SKColorTypeNative.Bgra1010102,
SKColorType.Bgr101010x => SKColorTypeNative.Bgr101010x,
_ => throw new ArgumentOutOfRangeException (nameof (colorType)),
};
@ -121,6 +126,8 @@ namespace SkiaSharp
SKColorTypeNative.A16Unorm => SKColorType.Alpha16,
SKColorTypeNative.R16g16Unorm => SKColorType.Rg1616,
SKColorTypeNative.R16g16b16a16Unorm => SKColorType.Rgba16161616,
SKColorTypeNative.Bgra1010102 => SKColorType.Bgra1010102,
SKColorTypeNative.Bgr101010x => SKColorType.Bgr101010x,
_ => throw new ArgumentOutOfRangeException (nameof (colorType)),
};
}

Просмотреть файл

@ -13,6 +13,13 @@ namespace SkiaSharp
protected override void Dispose (bool disposing) =>
base.Dispose (disposing);
protected override void DisposeNative ()
{
AbandonContext ();
base.DisposeNative ();
}
// Create
[EditorBrowsable (EditorBrowsableState.Never)]
@ -45,7 +52,7 @@ namespace SkiaSharp
backend switch
{
GRBackend.Metal => throw new NotSupportedException (),
GRBackend.OpenGL => GetObject (SkiaApi.gr_context_make_gl (backendContext)),
GRBackend.OpenGL => GetObject (SkiaApi.gr_direct_context_make_gl (backendContext)),
GRBackend.Vulkan => throw new NotSupportedException (),
GRBackend.Dawn => throw new NotSupportedException (),
_ => throw new ArgumentOutOfRangeException (nameof (backend)),
@ -67,10 +74,10 @@ namespace SkiaSharp
var ctx = backendContext == null ? IntPtr.Zero : backendContext.Handle;
if (options == null) {
return GetObject (SkiaApi.gr_context_make_gl (ctx));
return GetObject (SkiaApi.gr_direct_context_make_gl (ctx));
} else {
var opts = options.ToNative ();
return GetObject (SkiaApi.gr_context_make_gl_with_options (ctx, &opts));
return GetObject (SkiaApi.gr_direct_context_make_gl_with_options (ctx, &opts));
}
}
@ -85,10 +92,10 @@ namespace SkiaSharp
throw new ArgumentNullException (nameof (backendContext));
if (options == null) {
return GetObject (SkiaApi.gr_context_make_vulkan (backendContext.ToNative ()));
return GetObject (SkiaApi.gr_direct_context_make_vulkan (backendContext.ToNative ()));
} else {
var opts = options.ToNative ();
return GetObject (SkiaApi.gr_context_make_vulkan_with_options (backendContext.ToNative (), &opts));
return GetObject (SkiaApi.gr_direct_context_make_vulkan_with_options (backendContext.ToNative (), &opts));
}
}
@ -108,10 +115,10 @@ namespace SkiaSharp
var queue = backendContext.Queue;
if (options == null) {
return GetObject (SkiaApi.gr_context_make_metal ((void*)device.Handle, (void*)queue.Handle));
return GetObject (SkiaApi.gr_direct_context_make_metal ((void*)device.Handle, (void*)queue.Handle));
} else {
var opts = options.ToNative ();
return GetObject (SkiaApi.gr_context_make_metal_with_options ((void*)device.Handle, (void*)queue.Handle, &opts));
return GetObject (SkiaApi.gr_direct_context_make_metal_with_options ((void*)device.Handle, (void*)queue.Handle, &opts));
}
}
@ -119,16 +126,16 @@ namespace SkiaSharp
//
public GRBackend Backend => SkiaApi.gr_context_get_backend (Handle).FromNative ();
public GRBackend Backend => SkiaApi.gr_direct_context_get_backend (Handle).FromNative ();
public bool IsAbandoned => SkiaApi.gr_context_is_abandoned (Handle);
public bool IsAbandoned => SkiaApi.gr_direct_context_is_abandoned (Handle);
public void AbandonContext (bool releaseResources = false)
{
if (releaseResources)
SkiaApi.gr_context_release_resources_and_abandon_context (Handle);
SkiaApi.gr_direct_context_release_resources_and_abandon_context (Handle);
else
SkiaApi.gr_context_abandon_context (Handle);
SkiaApi.gr_direct_context_abandon_context (Handle);
}
[EditorBrowsable (EditorBrowsableState.Never)]
@ -145,16 +152,16 @@ namespace SkiaSharp
SetResourceCacheLimit (maxResourceBytes);
public long GetResourceCacheLimit () =>
(long)SkiaApi.gr_context_get_resource_cache_limit (Handle);
(long)SkiaApi.gr_direct_context_get_resource_cache_limit (Handle);
public void SetResourceCacheLimit (long maxResourceBytes) =>
SkiaApi.gr_context_set_resource_cache_limit (Handle, (IntPtr)maxResourceBytes);
SkiaApi.gr_direct_context_set_resource_cache_limit (Handle, (IntPtr)maxResourceBytes);
public void GetResourceCacheUsage (out int maxResources, out long maxResourceBytes)
{
IntPtr maxResBytes;
fixed (int* maxRes = &maxResources) {
SkiaApi.gr_context_get_resource_cache_usage (Handle, maxRes, &maxResBytes);
SkiaApi.gr_direct_context_get_resource_cache_usage (Handle, maxRes, &maxResBytes);
}
maxResourceBytes = (long)maxResBytes;
}
@ -166,32 +173,32 @@ namespace SkiaSharp
ResetContext ((uint)state);
public void ResetContext (uint state) =>
SkiaApi.gr_context_reset_context (Handle, state);
SkiaApi.gr_direct_context_reset_context (Handle, state);
public void Flush () =>
SkiaApi.gr_context_flush (Handle);
SkiaApi.gr_direct_context_flush (Handle);
public int GetMaxSurfaceSampleCount (SKColorType colorType) =>
SkiaApi.gr_context_get_max_surface_sample_count_for_color_type (Handle, colorType.ToNative ());
SkiaApi.gr_direct_context_get_max_surface_sample_count_for_color_type (Handle, colorType.ToNative ());
[EditorBrowsable (EditorBrowsableState.Never)]
[Obsolete]
public int GetRecommendedSampleCount (GRPixelConfig config, float dpi) => 0;
public void DumpMemoryStatistics (SKTraceMemoryDump dump) =>
SkiaApi.gr_context_dump_memory_statistics (Handle, dump?.Handle ?? throw new ArgumentNullException (nameof (dump)));
SkiaApi.gr_direct_context_dump_memory_statistics (Handle, dump?.Handle ?? throw new ArgumentNullException (nameof (dump)));
public void PurgeResources () =>
SkiaApi.gr_context_free_gpu_resources (Handle);
SkiaApi.gr_direct_context_free_gpu_resources (Handle);
public void PurgeUnusedResources (long milliseconds) =>
SkiaApi.gr_context_perform_deferred_cleanup (Handle, milliseconds);
SkiaApi.gr_direct_context_perform_deferred_cleanup (Handle, milliseconds);
public void PurgeUnlockedResources (bool scratchResourcesOnly) =>
SkiaApi.gr_context_purge_unlocked_resources (Handle, scratchResourcesOnly);
SkiaApi.gr_direct_context_purge_unlocked_resources (Handle, scratchResourcesOnly);
public void PurgeUnlockedResources (long bytesToPurge, bool preferScratchResources) =>
SkiaApi.gr_context_purge_unlocked_resources_bytes (Handle, (IntPtr)bytesToPurge, preferScratchResources);
SkiaApi.gr_direct_context_purge_unlocked_resources_bytes (Handle, (IntPtr)bytesToPurge, preferScratchResources);
internal static GRContext GetObject (IntPtr handle) =>
handle == IntPtr.Zero ? null : new GRContext (handle, true);

Просмотреть файл

@ -325,6 +325,7 @@ namespace SkiaSharp
SKColorType.Rgb888x => GRPixelConfig.Rgb888,
SKColorType.Bgra8888 => GRPixelConfig.Bgra8888,
SKColorType.Rgba1010102 => GRPixelConfig.Rgba1010102,
SKColorType.Bgra1010102 => GRPixelConfig.Unknown,
SKColorType.AlphaF16 => GRPixelConfig.AlphaHalf,
SKColorType.RgbaF16 => GRPixelConfig.RgbaHalf,
SKColorType.RgbaF16Clamped => GRPixelConfig.RgbaHalfClamped,
@ -334,6 +335,7 @@ namespace SkiaSharp
SKColorType.RgF16 => GRPixelConfig.RgHalf,
SKColorType.Rg88 => GRPixelConfig.Rg88,
SKColorType.Rgb101010x => GRPixelConfig.Unknown,
SKColorType.Bgr101010x => GRPixelConfig.Unknown,
SKColorType.RgbaF32 => GRPixelConfig.Unknown,
_ => throw new ArgumentOutOfRangeException (nameof (colorType)),
};

Просмотреть файл

@ -36,3 +36,14 @@ using System.Runtime.CompilerServices;
"3fbe2ff9c979ce998475e506e8ce82dd5b0f350dc10e93bf2eeecf874b24770c5081dbea7447fd" +
"dafa277b22de47d6ffea449674a4f9fccf84d15069089380284dbdd35f46cdff12a1bd78e4ef00" +
"65d016df")]
[assembly: AssemblyMetadata("IsTrimmable", "True")]
#if __IOS__ || __TVOS__ || __WATCHOS__ || __MACOS__
// This attribute allows you to mark your assemblies as “safe to link”.
// When the attribute is present, the linker—if enabled—will process the assembly
// even if youre using the “Link SDK assemblies only” option, which is the default for device builds.
#pragma warning disable CS0618 // Type or member is obsolete
[assembly: Foundation.LinkerSafe]
#pragma warning restore CS0618 // Type or member is obsolete
#endif

Просмотреть файл

@ -459,9 +459,10 @@ namespace SkiaSharp
get { return SkiaApi.sk_bitmap_is_immutable (Handle); }
}
[Obsolete]
public bool IsVolatile {
get { return SkiaApi.sk_bitmap_is_volatile (Handle); }
set { SkiaApi.sk_bitmap_set_volatile (Handle, value); }
get => false;
set { }
}
[EditorBrowsable (EditorBrowsableState.Never)]

Просмотреть файл

@ -490,30 +490,25 @@ namespace SkiaSharp
// DrawBitmap
public void DrawBitmap (SKBitmap bitmap, SKPoint p, SKPaint paint = null)
{
public void DrawBitmap (SKBitmap bitmap, SKPoint p, SKPaint paint = null) =>
DrawBitmap (bitmap, p.X, p.Y, paint);
}
public void DrawBitmap (SKBitmap bitmap, float x, float y, SKPaint paint = null)
{
if (bitmap == null)
throw new ArgumentNullException (nameof (bitmap));
SkiaApi.sk_canvas_draw_bitmap (Handle, bitmap.Handle, x, y, paint == null ? IntPtr.Zero : paint.Handle);
using var image = SKImage.FromBitmap (bitmap);
DrawImage (image, x, y, paint);
}
public void DrawBitmap (SKBitmap bitmap, SKRect dest, SKPaint paint = null)
{
if (bitmap == null)
throw new ArgumentNullException (nameof (bitmap));
SkiaApi.sk_canvas_draw_bitmap_rect (Handle, bitmap.Handle, null, &dest, paint == null ? IntPtr.Zero : paint.Handle);
using var image = SKImage.FromBitmap (bitmap);
DrawImage (image, dest, paint);
}
public void DrawBitmap (SKBitmap bitmap, SKRect source, SKRect dest, SKPaint paint = null)
{
if (bitmap == null)
throw new ArgumentNullException (nameof (bitmap));
SkiaApi.sk_canvas_draw_bitmap_rect (Handle, bitmap.Handle, &source, &dest, paint == null ? IntPtr.Zero : paint.Handle);
using var image = SKImage.FromBitmap (bitmap);
DrawImage (image, source, dest, paint);
}
// DrawSurface
@ -839,13 +834,8 @@ namespace SkiaSharp
public void DrawBitmapNinePatch (SKBitmap bitmap, SKRectI center, SKRect dst, SKPaint paint = null)
{
if (bitmap == null)
throw new ArgumentNullException (nameof (bitmap));
// the "center" rect must fit inside the bitmap "rect"
if (!SKRect.Create (bitmap.Info.Size).Contains (center))
throw new ArgumentException ("Center rectangle must be contained inside the bitmap bounds.", nameof (center));
SkiaApi.sk_canvas_draw_bitmap_nine (Handle, bitmap.Handle, &center, &dst, paint == null ? IntPtr.Zero : paint.Handle);
using var image = SKImage.FromBitmap (bitmap);
DrawImageNinePatch (image, center, dst, paint);
}
public void DrawImageNinePatch (SKImage image, SKRectI center, SKRect dst, SKPaint paint = null)
@ -863,11 +853,8 @@ namespace SkiaSharp
public void DrawBitmapLattice (SKBitmap bitmap, int[] xDivs, int[] yDivs, SKRect dst, SKPaint paint = null)
{
var lattice = new SKLattice {
XDivs = xDivs,
YDivs = yDivs
};
DrawBitmapLattice (bitmap, lattice, dst, paint);
using var image = SKImage.FromBitmap (bitmap);
DrawImageLattice (image, xDivs, yDivs, dst, paint);
}
public void DrawImageLattice (SKImage image, int[] xDivs, int[] yDivs, SKRect dst, SKPaint paint = null)
@ -881,32 +868,8 @@ namespace SkiaSharp
public void DrawBitmapLattice (SKBitmap bitmap, SKLattice lattice, SKRect dst, SKPaint paint = null)
{
if (bitmap == null)
throw new ArgumentNullException (nameof (bitmap));
if (lattice.XDivs == null)
throw new ArgumentNullException (nameof (lattice.XDivs));
if (lattice.YDivs == null)
throw new ArgumentNullException (nameof (lattice.YDivs));
fixed (int* x = lattice.XDivs)
fixed (int* y = lattice.YDivs)
fixed (SKLatticeRectType* r = lattice.RectTypes)
fixed (SKColor* c = lattice.Colors) {
var nativeLattice = new SKLatticeInternal {
fBounds = null,
fRectTypes = r,
fXCount = lattice.XDivs.Length,
fXDivs = x,
fYCount = lattice.YDivs.Length,
fYDivs = y,
fColors = (uint*)c,
};
if (lattice.Bounds != null) {
var bounds = lattice.Bounds.Value;
nativeLattice.fBounds = &bounds;
}
SkiaApi.sk_canvas_draw_bitmap_lattice (Handle, bitmap.Handle, &nativeLattice, &dst, paint == null ? IntPtr.Zero : paint.Handle);
}
using var image = SKImage.FromBitmap (bitmap);
DrawImageLattice (image, lattice, dst, paint);
}
public void DrawImageLattice (SKImage image, SKLattice lattice, SKRect dst, SKPaint paint = null)

Просмотреть файл

@ -288,10 +288,13 @@ namespace SkiaSharp
}
}
public static SKColorSpaceXyz Dcip3 {
[Obsolete ("Use DisplayP3 instead.")]
public static SKColorSpaceXyz Dcip3 => DisplayP3;
public static SKColorSpaceXyz DisplayP3 {
get {
SKColorSpaceXyz xyz;
SkiaApi.sk_colorspace_xyz_named_dcip3 (&xyz);
SkiaApi.sk_colorspace_xyz_named_display_p3 (&xyz);
return xyz;
}
}

Просмотреть файл

@ -172,8 +172,7 @@ namespace SkiaSharp
if (data == null)
throw new ArgumentNullException (nameof (data));
var handle = SkiaApi.sk_image_new_from_encoded (data.Handle, &subset);
return GetObject (handle);
return FromEncodedData (data)?.Subset (subset);
}
public static SKImage FromEncodedData (SKData data)
@ -181,7 +180,7 @@ namespace SkiaSharp
if (data == null)
throw new ArgumentNullException (nameof (data));
var handle = SkiaApi.sk_image_new_from_encoded (data.Handle, null);
var handle = SkiaApi.sk_image_new_from_encoded (data.Handle);
return GetObject (handle);
}
@ -658,7 +657,18 @@ namespace SkiaSharp
fixed (SKRectI* os = &outSubset)
fixed (SKPointI* oo = &outOffset) {
return GetObject (SkiaApi.sk_image_make_with_filter (Handle, filter.Handle, &subset, &clipBounds, os, oo));
return GetObject (SkiaApi.sk_image_make_with_filter_legacy (Handle, filter.Handle, &subset, &clipBounds, os, oo));
}
}
public SKImage ApplyImageFilter (GRContext context, SKImageFilter filter, SKRectI subset, SKRectI clipBounds, out SKRectI outSubset, out SKPointI outOffset)
{
if (filter == null)
throw new ArgumentNullException (nameof (filter));
fixed (SKRectI* os = &outSubset)
fixed (SKPointI* oo = &outOffset) {
return GetObject (SkiaApi.sk_image_make_with_filter (Handle, context?.Handle ?? IntPtr.Zero, filter.Handle, &subset, &clipBounds, os, oo));
}
}

Просмотреть файл

@ -3,6 +3,13 @@ using System.ComponentModel;
namespace SkiaSharp
{
public enum SKPathConvexity
{
Unknown = 0,
Convex = 1,
Concave = 2,
}
public unsafe class SKPath : SKObject, ISKSkipObjectRegistration
{
internal SKPath (IntPtr handle, bool owns)
@ -38,13 +45,14 @@ namespace SkiaSharp
}
public SKPathConvexity Convexity {
get => SkiaApi.sk_path_get_convexity (Handle);
set => SkiaApi.sk_path_set_convexity (Handle, value);
get => IsConvex ? SKPathConvexity.Convex : SKPathConvexity.Concave;
[Obsolete]
set { }
}
public bool IsConvex => Convexity == SKPathConvexity.Convex;
public bool IsConvex => SkiaApi.sk_path_is_convex(Handle);
public bool IsConcave => Convexity == SKPathConvexity.Concave;
public bool IsConcave => !IsConvex;
public bool IsEmpty => VerbCount == 0;

Просмотреть файл

@ -0,0 +1,355 @@
using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
namespace SkiaSharp
{
public unsafe class SKRuntimeEffect : SKObject, ISKReferenceCounted
{
private string[] children;
private string[] uniforms;
internal SKRuntimeEffect (IntPtr handle, bool owns)
: base (handle, owns)
{
}
// Create
public static SKRuntimeEffect Create (string sksl, out string errors)
{
using var s = new SKString (sksl);
using var errorString = new SKString ();
var effect = GetObject (SkiaApi.sk_runtimeeffect_make (s.Handle, errorString.Handle));
errors = errorString?.ToString ();
if (errors?.Length == 0)
errors = null;
return effect;
}
// properties
public int UniformSize =>
(int)SkiaApi.sk_runtimeeffect_get_uniform_size (Handle);
public IReadOnlyList<string> Children =>
children ??= GetChildrenNames ().ToArray ();
public IReadOnlyList<string> Uniforms =>
uniforms ??= GetUniformNames ().ToArray ();
// Get*Names
private IEnumerable<string> GetChildrenNames ()
{
var count = (int)SkiaApi.sk_runtimeeffect_get_children_count (Handle);
using var str = new SKString ();
for (var i = 0; i < count; i++) {
SkiaApi.sk_runtimeeffect_get_child_name (Handle, i, str.Handle);
yield return str.ToString ();
}
}
private IEnumerable<string> GetUniformNames ()
{
var count = (int)SkiaApi.sk_runtimeeffect_get_uniforms_count (Handle);
using var str = new SKString ();
for (var i = 0; i < count; i++) {
SkiaApi.sk_runtimeeffect_get_uniform_name (Handle, i, str.Handle);
yield return str.ToString ();
}
}
// ToShader
public SKShader ToShader (bool isOpaque) =>
ToShader (isOpaque, null, null, null);
public SKShader ToShader (bool isOpaque, SKRuntimeEffectUniforms uniforms) =>
ToShader (isOpaque, uniforms.ToData (), null, null);
public SKShader ToShader (bool isOpaque, SKRuntimeEffectUniforms uniforms, SKRuntimeEffectChildren children) =>
ToShader (isOpaque, uniforms.ToData (), children.ToArray (), null);
public SKShader ToShader (bool isOpaque, SKRuntimeEffectUniforms uniforms, SKRuntimeEffectChildren children, SKMatrix localMatrix) =>
ToShader (isOpaque, uniforms.ToData (), children.ToArray (), &localMatrix);
private SKShader ToShader (bool isOpaque, SKData uniforms, SKShader[] children, SKMatrix* localMatrix)
{
var uniformsHandle = uniforms?.Handle ?? IntPtr.Zero;
using var childrenHandles = Utils.RentHandlesArray (children, true);
fixed (IntPtr* ch = childrenHandles) {
return SKShader.GetObject (SkiaApi.sk_runtimeeffect_make_shader (Handle, uniformsHandle, ch, (IntPtr)childrenHandles.Length, localMatrix, isOpaque));
}
}
// ToColorFilter
public SKColorFilter ToColorFilter () =>
ToColorFilter ((SKData)null, null);
public SKColorFilter ToColorFilter (SKRuntimeEffectUniforms uniforms) =>
ToColorFilter (uniforms.ToData (), null);
private SKColorFilter ToColorFilter (SKData uniforms) =>
ToColorFilter (uniforms, null);
public SKColorFilter ToColorFilter (SKRuntimeEffectUniforms uniforms, SKRuntimeEffectChildren children) =>
ToColorFilter (uniforms.ToData (), children.ToArray ());
private SKColorFilter ToColorFilter (SKData uniforms, SKShader[] children)
{
var uniformsHandle = uniforms?.Handle ?? IntPtr.Zero;
using var childrenHandles = Utils.RentHandlesArray (children, true);
fixed (IntPtr* ch = childrenHandles) {
return SKColorFilter.GetObject (SkiaApi.sk_runtimeeffect_make_color_filter (Handle, uniformsHandle, ch, (IntPtr)childrenHandles.Length));
}
}
//
internal static SKRuntimeEffect GetObject (IntPtr handle) =>
GetOrAddObject (handle, (h, o) => new SKRuntimeEffect (h, o));
}
public unsafe class SKRuntimeEffectUniforms : IEnumerable<string>
{
internal struct Variable
{
public int Index { get; set; }
public string Name { get; set; }
public int Offset { get; set; }
public int Size { get; set; }
}
private readonly string[] names;
private readonly Dictionary<string, Variable> uniforms;
private SKData data;
public SKRuntimeEffectUniforms (SKRuntimeEffect effect)
{
if (effect == null)
throw new ArgumentNullException (nameof (effect));
names = effect.Uniforms.ToArray ();
uniforms = new Dictionary<string, Variable> ();
data = effect.UniformSize is int size && size > 0
? SKData.Create (effect.UniformSize)
: SKData.Empty;
for (var i = 0; i < names.Length; i++) {
var name = names[i];
var uniform = SkiaApi.sk_runtimeeffect_get_uniform_from_index (effect.Handle, i);
uniforms[name] = new Variable {
Index = i,
Name = name,
Offset = (int)SkiaApi.sk_runtimeeffect_uniform_get_offset (uniform),
Size = (int)SkiaApi.sk_runtimeeffect_uniform_get_size_in_bytes (uniform),
};
}
}
public IReadOnlyList<string> Names =>
names;
internal IReadOnlyList<Variable> Variables =>
uniforms.Values.OrderBy (v => v.Index).ToArray ();
public int Count =>
names.Length;
public void Reset ()
{
if (data.Size == 0)
return;
data = SKData.Create (data.Size);
}
public bool Contains (string name) =>
Array.IndexOf (names, name) != -1;
public SKRuntimeEffectUniform this[string name] {
set => Add (name, value);
}
public void Add (string name, SKRuntimeEffectUniform value)
{
var index = Array.IndexOf (names, name);
if (index == -1)
throw new ArgumentOutOfRangeException (name, $"Variable was not found for name: '{name}'.");
var uniform = uniforms[name];
var slice = data.Span.Slice (uniform.Offset, uniform.Size);
if (value.IsEmpty) {
slice.Fill (0);
return;
}
if (value.Size != uniform.Size)
throw new ArgumentException ($"Value size of {value.Size} does not match uniform size of {uniform.Size}.", nameof (value));
// TODO: either check or convert data types - for example int and float are both 4 bytes, but not the same byte[] value
value.WriteTo (slice);
}
public SKData ToData ()
{
if (data.Size == 0)
return SKData.Empty;
return SKData.CreateCopy (data.Data, data.Size);
}
IEnumerator IEnumerable.GetEnumerator () =>
GetEnumerator ();
public IEnumerator<string> GetEnumerator () =>
((IEnumerable<string>)names).GetEnumerator ();
}
public class SKRuntimeEffectChildren : IEnumerable<string>
{
private readonly string[] names;
private readonly SKShader[] children;
public SKRuntimeEffectChildren (SKRuntimeEffect effect)
{
if (effect == null)
throw new ArgumentNullException (nameof (effect));
names = effect.Children.ToArray ();
children = new SKShader[names.Length];
}
public IReadOnlyList<string> Names =>
names;
public int Count =>
names.Length;
public void Reset () =>
Array.Clear (children, 0, children.Length);
public bool Contains (string name) =>
Array.IndexOf (names, name) != -1;
public SKShader this[string name] {
set => Add (name, value);
}
public void Add (string name, SKShader value)
{
var index = Array.IndexOf (names, name);
if (index == -1)
throw new ArgumentOutOfRangeException (name, $"Variable was not found for name: '{name}'.");
children[index] = value;
}
public SKShader[] ToArray () =>
children.ToArray ();
IEnumerator IEnumerable.GetEnumerator () =>
GetEnumerator ();
public IEnumerator<string> GetEnumerator () =>
((IEnumerable<string>)names).GetEnumerator ();
}
public unsafe readonly ref struct SKRuntimeEffectUniform
{
private enum DataType
{
Empty,
Float,
FloatArray
}
public static SKRuntimeEffectUniform Empty => default;
// fields
private readonly DataType type;
private readonly int size;
private readonly float floatValue;
private readonly ReadOnlySpan<float> floatArray;
// ctor
private SKRuntimeEffectUniform (
DataType type, int size,
float floatValue = default,
ReadOnlySpan<float> floatArray = default)
{
this.type = type;
this.size = size;
this.floatValue = floatValue;
this.floatArray = floatArray;
}
// properties
public bool IsEmpty => type == DataType.Empty;
public int Size => size;
// converters
public static implicit operator SKRuntimeEffectUniform (float value) =>
new SKRuntimeEffectUniform (DataType.Float, sizeof (float), floatValue: value);
public static implicit operator SKRuntimeEffectUniform (float[] value) => (ReadOnlySpan<float>)value;
public static implicit operator SKRuntimeEffectUniform (Span<float> value) => (ReadOnlySpan<float>)value;
public static implicit operator SKRuntimeEffectUniform (ReadOnlySpan<float> value) =>
new SKRuntimeEffectUniform (DataType.FloatArray, sizeof (float) * value.Length, floatArray: value);
public static implicit operator SKRuntimeEffectUniform (float[][] value)
{
var floats = new List<float> ();
foreach (var array in value) {
floats.AddRange (array);
}
return floats.ToArray ();
}
public static implicit operator SKRuntimeEffectUniform (SKMatrix value) => value.Values;
// writer
public void WriteTo (Span<byte> data)
{
switch (type) {
case DataType.Float:
fixed (void* v = &floatValue)
new ReadOnlySpan<byte> (v, size).CopyTo (data);
break;
case DataType.FloatArray:
fixed (void* v = floatArray)
new ReadOnlySpan<byte> (v, size).CopyTo (data);
break;
case DataType.Empty:
default:
data.Fill (0);
break;
}
}
}
}

Просмотреть файл

@ -417,7 +417,7 @@ namespace SkiaSharp
if (shaderB == null)
throw new ArgumentNullException (nameof (shaderB));
return GetObject (SkiaApi.sk_shader_new_blend (mode, shaderA.Handle, shaderB.Handle, null));
return GetObject (SkiaApi.sk_shader_new_blend (mode, shaderA.Handle, shaderB.Handle));
}
// CreateLerp
@ -429,7 +429,7 @@ namespace SkiaSharp
if (src == null)
throw new ArgumentNullException (nameof (src));
return GetObject (SkiaApi.sk_shader_new_lerp (weight, dst.Handle, src.Handle, null));
return GetObject (SkiaApi.sk_shader_new_lerp (weight, dst.Handle, src.Handle));
}
// CreateColorFilter

Просмотреть файл

@ -203,55 +203,64 @@ namespace SkiaSharp
// GPU BACKEND TEXTURE AS RENDER TARGET surface
[EditorBrowsable (EditorBrowsableState.Never)]
[Obsolete ("Use CreateAsRenderTarget(GRContext, GRBackendTexture, GRSurfaceOrigin, int, SKColorType) instead.")]
[Obsolete ("Use Create(GRContext, GRBackendTexture, GRSurfaceOrigin, int, SKColorType) instead.")]
public static SKSurface CreateAsRenderTarget (GRContext context, GRGlBackendTextureDesc desc) =>
CreateAsRenderTarget (context, new GRBackendTexture (desc), desc.Origin, desc.SampleCount, desc.Config.ToColorType (), null, null);
Create (context, new GRBackendTexture (desc), desc.Origin, desc.SampleCount, desc.Config.ToColorType ());
[EditorBrowsable (EditorBrowsableState.Never)]
[Obsolete ("Use CreateAsRenderTarget(GRContext, GRBackendTexture, GRSurfaceOrigin, int, SKColorType) instead.")]
[Obsolete ("Use Create(GRContext, GRBackendTexture, GRSurfaceOrigin, int, SKColorType) instead.")]
public static SKSurface CreateAsRenderTarget (GRContext context, GRBackendTextureDesc desc) =>
CreateAsRenderTarget (context, new GRBackendTexture (desc), desc.Origin, desc.SampleCount, desc.Config.ToColorType (), null, null);
Create (context, new GRBackendTexture (desc), desc.Origin, desc.SampleCount, desc.Config.ToColorType ());
[EditorBrowsable (EditorBrowsableState.Never)]
[Obsolete ("Use CreateAsRenderTarget(GRContext, GRBackendTexture, GRSurfaceOrigin, int, SKColorType, SKSurfaceProperties) instead.")]
[Obsolete ("Use Create(GRContext, GRBackendTexture, GRSurfaceOrigin, int, SKColorType, SKSurfaceProperties) instead.")]
public static SKSurface CreateAsRenderTarget (GRContext context, GRGlBackendTextureDesc desc, SKSurfaceProps props) =>
CreateAsRenderTarget (context, new GRBackendTexture (desc), desc.Origin, desc.SampleCount, desc.Config.ToColorType (), null, new SKSurfaceProperties (props));
Create (context, new GRBackendTexture (desc), desc.Origin, desc.SampleCount, desc.Config.ToColorType (), new SKSurfaceProperties (props));
[EditorBrowsable (EditorBrowsableState.Never)]
[Obsolete ("Use CreateAsRenderTarget(GRContext, GRBackendTexture, GRSurfaceOrigin, int, SKColorType, SKSurfaceProperties) instead.")]
[Obsolete ("Use Create(GRContext, GRBackendTexture, GRSurfaceOrigin, int, SKColorType, SKSurfaceProperties) instead.")]
public static SKSurface CreateAsRenderTarget (GRContext context, GRBackendTextureDesc desc, SKSurfaceProps props) =>
CreateAsRenderTarget (context, new GRBackendTexture (desc), desc.Origin, desc.SampleCount, desc.Config.ToColorType (), null, new SKSurfaceProperties (props));
Create (context, new GRBackendTexture (desc), desc.Origin, desc.SampleCount, desc.Config.ToColorType (), new SKSurfaceProperties (props));
[EditorBrowsable (EditorBrowsableState.Never)]
[Obsolete ("Use Create(GRContext, GRBackendTexture, SKColorType) instead.")]
public static SKSurface CreateAsRenderTarget (GRContext context, GRBackendTexture texture, SKColorType colorType) =>
CreateAsRenderTarget (context, texture, GRSurfaceOrigin.BottomLeft, 0, colorType, null, null);
Create (context, texture, colorType);
[EditorBrowsable (EditorBrowsableState.Never)]
[Obsolete ("Use Create(GRContext, GRBackendTexture, GRSurfaceOrigin, SKColorType) instead.")]
public static SKSurface CreateAsRenderTarget (GRContext context, GRBackendTexture texture, GRSurfaceOrigin origin, SKColorType colorType) =>
CreateAsRenderTarget (context, texture, origin, 0, colorType, null, null);
Create (context, texture, origin, colorType);
[EditorBrowsable (EditorBrowsableState.Never)]
[Obsolete("Use Create(GRContext, GRBackendTexture, GRSurfaceOrigin, int, SKColorType) instead.")]
public static SKSurface CreateAsRenderTarget (GRContext context, GRBackendTexture texture, GRSurfaceOrigin origin, int sampleCount, SKColorType colorType) =>
CreateAsRenderTarget (context, texture, origin, sampleCount, colorType, null, null);
Create (context, texture, origin, sampleCount, colorType);
[EditorBrowsable (EditorBrowsableState.Never)]
[Obsolete("Use Create(GRContext, GRBackendTexture, GRSurfaceOrigin, int, SKColorType, SKColorSpace) instead.")]
public static SKSurface CreateAsRenderTarget (GRContext context, GRBackendTexture texture, GRSurfaceOrigin origin, int sampleCount, SKColorType colorType, SKColorSpace colorspace) =>
CreateAsRenderTarget (context, texture, origin, sampleCount, colorType, colorspace, null);
Create (context, texture, origin, sampleCount, colorType, colorspace);
[EditorBrowsable (EditorBrowsableState.Never)]
[Obsolete ("Use Create(GRContext, GRBackendTexture, SKColorType, SKSurfaceProperties) instead.")]
public static SKSurface CreateAsRenderTarget (GRContext context, GRBackendTexture texture, SKColorType colorType, SKSurfaceProperties props) =>
CreateAsRenderTarget (context, texture, GRSurfaceOrigin.BottomLeft, 0, colorType, null, props);
Create (context, texture, colorType, props);
public static SKSurface CreateAsRenderTarget (GRContext context, GRBackendTexture texture, GRSurfaceOrigin origin, SKColorType colorType, SKSurfaceProperties props) =>
CreateAsRenderTarget (context, texture, origin, 0, colorType, null, props);
[EditorBrowsable (EditorBrowsableState.Never)]
[Obsolete ("Use Create(GRContext, GRBackendTexture, GRSurfaceOrigin, SKColorType, SKSurfaceProperties) instead.")]
public static SKSurface CreateAsRenderTarget(GRContext context, GRBackendTexture texture, GRSurfaceOrigin origin, SKColorType colorType, SKSurfaceProperties props) =>
Create (context, texture, origin, colorType, props);
[EditorBrowsable (EditorBrowsableState.Never)]
[Obsolete("Use Create(GRContext, GRBackendTexture, GRSurfaceOrigin, int, SKColorType, SKSurfaceProperties) instead.")]
public static SKSurface CreateAsRenderTarget (GRContext context, GRBackendTexture texture, GRSurfaceOrigin origin, int sampleCount, SKColorType colorType, SKSurfaceProperties props) =>
CreateAsRenderTarget (context, texture, origin, sampleCount, colorType, null, props);
Create (context, texture, origin, sampleCount, colorType, null, props);
public static SKSurface CreateAsRenderTarget (GRContext context, GRBackendTexture texture, GRSurfaceOrigin origin, int sampleCount, SKColorType colorType, SKColorSpace colorspace, SKSurfaceProperties props)
{
if (context == null)
throw new ArgumentNullException (nameof (context));
if (texture == null)
throw new ArgumentNullException (nameof (texture));
return GetObject (SkiaApi.sk_surface_new_backend_texture_as_render_target (context.Handle, texture.Handle, origin, sampleCount, colorType.ToNative (), colorspace?.Handle ?? IntPtr.Zero, props?.Handle ?? IntPtr.Zero));
}
[EditorBrowsable (EditorBrowsableState.Never)]
[Obsolete("Use Create(GRContext, GRBackendTexture, GRSurfaceOrigin, int, SKColorType, SKColorSpace, SKSurfaceProperties) instead.")]
public static SKSurface CreateAsRenderTarget (GRContext context, GRBackendTexture texture, GRSurfaceOrigin origin, int sampleCount, SKColorType colorType, SKColorSpace colorspace, SKSurfaceProperties props) =>
Create (context, texture, origin, sampleCount, colorType, colorspace, props);
// GPU NEW surface

Разница между файлами не показана из-за своего большого размера Загрузить разницу

Просмотреть файл

@ -8,13 +8,13 @@
<DefineConstants>$(DefineConstants);HARFBUZZ</DefineConstants>
</PropertyGroup>
<ItemGroup>
<None Include="..\..\output\native\android\x86\libHarfBuzzSharp.so" Link="nuget\build\$(PackagingPlatform)\x86\libHarfBuzzSharp.so" />
<None Include="..\..\output\native\android\x86_64\libHarfBuzzSharp.so" Link="nuget\build\$(PackagingPlatform)\x64\libHarfBuzzSharp.so" />
<None Include="..\..\output\native\android\armeabi-v7a\libHarfBuzzSharp.so" Link="nuget\build\$(PackagingPlatform)\arm\libHarfBuzzSharp.so" />
<None Include="..\..\output\native\android\arm64-v8a\libHarfBuzzSharp.so" Link="nuget\build\$(PackagingPlatform)\arm64\libHarfBuzzSharp.so" />
<None Include="..\..\output\native\android\x86\libHarfBuzzSharp*" Link="nuget\runtimes\android-x86\native\%(Filename)%(Extension)" />
<None Include="..\..\output\native\android\x86_64\libHarfBuzzSharp*" Link="nuget\runtimes\android-x64\native\%(Filename)%(Extension)" />
<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)" />
</ItemGroup>
<ItemGroup>
<None Include="nuget\build\monoandroid1.0\HarfBuzzSharp.targets" Link="nuget\build\$(PackagingPlatform)\HarfBuzzSharp.targets" />
<None Include="..\HarfBuzzSharp\nuget\build\monoandroid\HarfBuzzSharp.targets" Link="nuget\build\$(PackagingPlatform)\HarfBuzzSharp.targets" />
</ItemGroup>
<ItemGroup>
<Compile Include="..\Binding.Shared\**\*.cs" Link="%(RecursiveDir)%(Filename)%(Extension)" />

Просмотреть файл

@ -1,22 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<!-- if ShouldIncludeNativeHarfBuzzSharp == False then don't include the native libHarfBuzzSharp -->
<PropertyGroup>
<ShouldIncludeNativeHarfBuzzSharp Condition=" '$(ShouldIncludeNativeHarfBuzzSharp)' == '' ">True</ShouldIncludeNativeHarfBuzzSharp>
</PropertyGroup>
<PropertyGroup>
<_HarfBuzzSharpNativeLibraryCurrPath>$([System.IO.Path]::GetDirectoryName('$(MSBuildThisFileDirectory)'))</_HarfBuzzSharpNativeLibraryCurrPath>
<_HarfBuzzSharpNativeLibraryDirName>$([System.IO.Path]::GetFileName('$(_HarfBuzzSharpNativeLibraryCurrPath)'))</_HarfBuzzSharpNativeLibraryDirName>
<_HarfBuzzSharpNativeLibraryRootDir>$(MSBuildThisFileDirectory)..\..\build\$(_HarfBuzzSharpNativeLibraryDirName)\</_HarfBuzzSharpNativeLibraryRootDir>
</PropertyGroup>
<ItemGroup Condition=" '$(ShouldIncludeNativeHarfBuzzSharp)' != 'False' ">
<AndroidNativeLibrary Include="$(_HarfBuzzSharpNativeLibraryRootDir)x86\libHarfBuzzSharp.so" Abi="x86" />
<AndroidNativeLibrary Include="$(_HarfBuzzSharpNativeLibraryRootDir)x64\libHarfBuzzSharp.so" Abi="x86_64" />
<AndroidNativeLibrary Include="$(_HarfBuzzSharpNativeLibraryRootDir)arm\libHarfBuzzSharp.so" Abi="armeabi-v7a" />
<AndroidNativeLibrary Include="$(_HarfBuzzSharpNativeLibraryRootDir)arm64\libHarfBuzzSharp.so" Abi="arm64-v8a" />
</ItemGroup>
</Project>

Просмотреть файл

@ -10,10 +10,9 @@
<None Include="..\..\output\native\osx\libHarfBuzzSharp.dylib" Link="nuget\runtimes\osx\native\libHarfBuzzSharp.dylib" />
</ItemGroup>
<ItemGroup>
<None Include="nuget\build\xamarinmac2.0\HarfBuzzSharp.targets" Link="nuget\build\$(TargetFramework)\HarfBuzzSharp.targets" />
<None Include="..\HarfBuzzSharp\nuget\build\xamarinmac\HarfBuzzSharp.targets" Link="nuget\build\$(TargetFramework)\HarfBuzzSharp.targets" />
</ItemGroup>
<ItemGroup>
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="..\Binding.Shared\**\*.cs" Link="%(RecursiveDir)%(Filename)%(Extension)" />
<Compile Include="..\HarfBuzzSharp.Shared\**\*.cs" Link="%(RecursiveDir)%(Filename)%(Extension)" />
</ItemGroup>

Просмотреть файл

@ -1,3 +0,0 @@
using Foundation;
[assembly: LinkerSafe]

Просмотреть файл

@ -5,7 +5,7 @@ namespace HarfBuzzSharp
internal unsafe partial class HarfBuzzApi
{
#if __IOS__ || __TVOS__ || __WATCHOS__
private const string HARFBUZZ = "__Internal";
private const string HARFBUZZ = "@rpath/libHarfBuzzSharp.framework/libHarfBuzzSharp";
#else
private const string HARFBUZZ = "libHarfBuzzSharp";
#endif

Просмотреть файл

@ -22,3 +22,14 @@ using System.Runtime.CompilerServices;
"3fbe2ff9c979ce998475e506e8ce82dd5b0f350dc10e93bf2eeecf874b24770c5081dbea7447fd" +
"dafa277b22de47d6ffea449674a4f9fccf84d15069089380284dbdd35f46cdff12a1bd78e4ef00" +
"65d016df")]
[assembly: AssemblyMetadata("IsTrimmable", "True")]
#if __IOS__ || __TVOS__ || __WATCHOS__ || __MACOS__
// This attribute allows you to mark your assemblies as “safe to link”.
// When the attribute is present, the linker—if enabled—will process the assembly
// even if youre using the “Link SDK assemblies only” option, which is the default for device builds.
#pragma warning disable CS0618 // Type or member is obsolete
[assembly: Foundation.LinkerSafe]
#pragma warning restore CS0618 // Type or member is obsolete
#endif

Просмотреть файл

@ -7,13 +7,12 @@
<DefineConstants>$(DefineConstants);HARFBUZZ</DefineConstants>
</PropertyGroup>
<ItemGroup>
<None Include="..\..\output\native\ios\libHarfBuzzSharp.a" Link="nuget\build\$(TargetFramework)\libHarfBuzzSharp.a" />
<None Include="..\..\output\native\ios\libHarfBuzzSharp.framework\**" Link="nuget\runtimes\ios\native\libHarfBuzzSharp.framework\%(RecursiveDir)%(Filename)%(Extension)" />
</ItemGroup>
<ItemGroup>
<None Include="nuget\build\$(TargetFramework)\HarfBuzzSharp.targets" Link="nuget\build\$(TargetFramework)\HarfBuzzSharp.targets" />
<None Include="..\HarfBuzzSharp\nuget\build\xamarinios\HarfBuzzSharp.targets" Link="nuget\build\$(TargetFramework)\HarfBuzzSharp.targets" />
</ItemGroup>
<ItemGroup>
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="..\Binding.Shared\**\*.cs" Link="%(RecursiveDir)%(Filename)%(Extension)" />
<Compile Include="..\HarfBuzzSharp.Shared\**\*.cs" Link="%(RecursiveDir)%(Filename)%(Extension)" />
</ItemGroup>

Просмотреть файл

@ -1,3 +0,0 @@
using Foundation;
[assembly: LinkerSafe]

Просмотреть файл

@ -1,19 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<!-- if ShouldIncludeNativeHarfBuzzSharp == False then don't include the native libHarfBuzzSharp -->
<PropertyGroup>
<ShouldIncludeNativeHarfBuzzSharp Condition=" '$(ShouldIncludeNativeHarfBuzzSharp)' == '' ">True</ShouldIncludeNativeHarfBuzzSharp>
</PropertyGroup>
<PropertyGroup>
<_HarfBuzzSharpNativeLibraryCurrPath>$([System.IO.Path]::GetDirectoryName('$(MSBuildThisFileDirectory)'))</_HarfBuzzSharpNativeLibraryCurrPath>
<_HarfBuzzSharpNativeLibraryDirName>$([System.IO.Path]::GetFileName('$(_HarfBuzzSharpNativeLibraryCurrPath)'))</_HarfBuzzSharpNativeLibraryDirName>
<_HarfBuzzSharpNativeLibraryRootDir>$(MSBuildThisFileDirectory)..\..\build\$(_HarfBuzzSharpNativeLibraryDirName)\</_HarfBuzzSharpNativeLibraryRootDir>
</PropertyGroup>
<ItemGroup Condition=" '$(ShouldIncludeNativeHarfBuzzSharp)' != 'False' ">
<NativeReference Include="$(_HarfBuzzSharpNativeLibraryRootDir)libHarfBuzzSharp.a" Kind="Static" IsCxx="true" ForceLoad="True" SmartLink="true" />
</ItemGroup>
</Project>

Просмотреть файл

@ -7,13 +7,12 @@
<DefineConstants>$(DefineConstants);HARFBUZZ</DefineConstants>
</PropertyGroup>
<ItemGroup>
<None Include="..\..\output\native\tvos\libHarfBuzzSharp.a" Link="nuget\build\$(TargetFramework)\libHarfBuzzSharp.a" />
<None Include="..\..\output\native\tvos\libHarfBuzzSharp.framework\**" Link="nuget\runtimes\tvos\native\libHarfBuzzSharp.framework\%(RecursiveDir)%(Filename)%(Extension)" />
</ItemGroup>
<ItemGroup>
<None Include="nuget\build\$(TargetFramework)\HarfBuzzSharp.targets" Link="nuget\build\$(TargetFramework)\HarfBuzzSharp.targets" />
<None Include="..\HarfBuzzSharp\nuget\build\xamarintvos\HarfBuzzSharp.targets" Link="nuget\build\$(TargetFramework)\HarfBuzzSharp.targets" />
</ItemGroup>
<ItemGroup>
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="..\Binding.Shared\**\*.cs" Link="%(RecursiveDir)%(Filename)%(Extension)" />
<Compile Include="..\HarfBuzzSharp.Shared\**\*.cs" Link="%(RecursiveDir)%(Filename)%(Extension)" />
</ItemGroup>

Просмотреть файл

@ -1,3 +0,0 @@
using Foundation;
[assembly: LinkerSafe]

Просмотреть файл

@ -1,19 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<!-- if ShouldIncludeNativeHarfBuzzSharp == False then don't include the native libHarfBuzzSharp -->
<PropertyGroup>
<ShouldIncludeNativeHarfBuzzSharp Condition=" '$(ShouldIncludeNativeHarfBuzzSharp)' == '' ">True</ShouldIncludeNativeHarfBuzzSharp>
</PropertyGroup>
<PropertyGroup>
<_HarfBuzzSharpNativeLibraryCurrPath>$([System.IO.Path]::GetDirectoryName('$(MSBuildThisFileDirectory)'))</_HarfBuzzSharpNativeLibraryCurrPath>
<_HarfBuzzSharpNativeLibraryDirName>$([System.IO.Path]::GetFileName('$(_HarfBuzzSharpNativeLibraryCurrPath)'))</_HarfBuzzSharpNativeLibraryDirName>
<_HarfBuzzSharpNativeLibraryRootDir>$(MSBuildThisFileDirectory)..\..\build\$(_HarfBuzzSharpNativeLibraryDirName)\</_HarfBuzzSharpNativeLibraryRootDir>
</PropertyGroup>
<ItemGroup Condition=" '$(ShouldIncludeNativeHarfBuzzSharp)' != 'False' ">
<NativeReference Include="$(_HarfBuzzSharpNativeLibraryRootDir)libHarfBuzzSharp.a" Kind="Static" IsCxx="true" ForceLoad="True" SmartLink="true" />
</ItemGroup>
</Project>

Просмотреть файл

@ -7,13 +7,12 @@
<DefineConstants>$(DefineConstants);HARFBUZZ</DefineConstants>
</PropertyGroup>
<ItemGroup>
<None Include="..\..\output\native\watchos\libHarfBuzzSharp.a" Link="nuget\build\$(TargetFramework)\libHarfBuzzSharp.a" />
<None Include="..\..\output\native\watchos\libHarfBuzzSharp.framework\**" Link="nuget\runtimes\watchos\native\libHarfBuzzSharp.framework\%(RecursiveDir)%(Filename)%(Extension)" />
</ItemGroup>
<ItemGroup>
<None Include="nuget\build\$(TargetFramework)\HarfBuzzSharp.targets" Link="nuget\build\$(TargetFramework)\HarfBuzzSharp.targets" />
<None Include="..\HarfBuzzSharp\nuget\build\xamarinwatchos\HarfBuzzSharp.targets" Link="nuget\build\$(TargetFramework)\HarfBuzzSharp.targets" />
</ItemGroup>
<ItemGroup>
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="..\Binding.Shared\**\*.cs" Link="%(RecursiveDir)%(Filename)%(Extension)" />
<Compile Include="..\HarfBuzzSharp.Shared\**\*.cs" Link="%(RecursiveDir)%(Filename)%(Extension)" />
</ItemGroup>

Просмотреть файл

@ -1,3 +0,0 @@
using Foundation;
[assembly: LinkerSafe]

Просмотреть файл

@ -1,19 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<!-- if ShouldIncludeNativeHarfBuzzSharp == False then don't include the native libHarfBuzzSharp -->
<PropertyGroup>
<ShouldIncludeNativeHarfBuzzSharp Condition=" '$(ShouldIncludeNativeHarfBuzzSharp)' == '' ">True</ShouldIncludeNativeHarfBuzzSharp>
</PropertyGroup>
<PropertyGroup>
<_HarfBuzzSharpNativeLibraryCurrPath>$([System.IO.Path]::GetDirectoryName('$(MSBuildThisFileDirectory)'))</_HarfBuzzSharpNativeLibraryCurrPath>
<_HarfBuzzSharpNativeLibraryDirName>$([System.IO.Path]::GetFileName('$(_HarfBuzzSharpNativeLibraryCurrPath)'))</_HarfBuzzSharpNativeLibraryDirName>
<_HarfBuzzSharpNativeLibraryRootDir>$(MSBuildThisFileDirectory)..\..\build\$(_HarfBuzzSharpNativeLibraryDirName)\</_HarfBuzzSharpNativeLibraryRootDir>
</PropertyGroup>
<ItemGroup Condition=" '$(ShouldIncludeNativeHarfBuzzSharp)' != 'False' ">
<NativeReference Include="$(_HarfBuzzSharpNativeLibraryRootDir)libHarfBuzzSharp.a" Kind="Static" IsCxx="true" ForceLoad="True" SmartLink="true" />
</ItemGroup>
</Project>

Просмотреть файл

@ -1,6 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFrameworks>netstandard1.3;netstandard2.0;net462</TargetFrameworks>
<TargetFrameworks Condition="$(BuildingForNet6)">$(TargetFrameworks);net6.0-ios;net6.0-maccatalyst;net6.0-tvos;net6.0-macos;net6.0-android</TargetFrameworks>
<RootNamespace>HarfBuzzSharp</RootNamespace>
<AssemblyName>HarfBuzzSharp</AssemblyName>
<PackagingGroup>HarfBuzzSharp</PackagingGroup>
@ -15,7 +16,7 @@
<ItemGroup>
<PackageReference Include="System.Memory" Version="4.5.3" />
</ItemGroup>
<ItemGroup>
<ItemGroup Condition="$(TargetFramework.StartsWith('netstandard2'))">
<!-- macOS -->
<None Include="..\..\output\native\osx\libHarfBuzzSharp*" Link="nuget\runtimes\osx\native\%(Filename)%(Extension)" />
<!-- Windows -->
@ -45,13 +46,48 @@
<None Include="..\..\output\native\alpinenodeps\arm64\libHarfBuzzSharp*" Link="nuget\runtimes\linuxnodeps-musl-arm64\native\%(Filename)%(Extension)" />
<None Include="..\..\output\native\alpinenodeps\arm\libHarfBuzzSharp*" Link="nuget\runtimes\linuxnodeps-musl-arm\native\%(Filename)%(Extension)" />
<!-- WASM -->
<None Include="..\..\output\native\wasm\**\*.a" Link="nuget\build\wasm\%(RecursiveDir)%(Filename)%(Extension)" />
<None Include="..\..\output\native\wasm\**\libHarfBuzzSharp*.a" Link="nuget\build\wasm\%(RecursiveDir)%(Filename)%(Extension)" />
<None Include="nuget\build\wasm\HarfBuzzSharp.props" Link="nuget\build\wasm\HarfBuzzSharp.props" />
<None Include="nuget\build\wasm\HarfBuzzSharp.targets" Link="nuget\build\wasm\HarfBuzzSharp.targets" />
</ItemGroup>
<ItemGroup Condition="$(TargetFramework.StartsWith('net4'))">
<!-- .NET Framework -->
<None Include="nuget\build\net462\HarfBuzzSharp.targets" Link="nuget\build\$(TargetFramework)\HarfBuzzSharp.targets" />
</ItemGroup>
<ItemGroup Condition="$(TargetFramework.Contains('-android'))">
<!-- Android -->
<None Include="..\..\output\native\android\x86\libHarfBuzzSharp*" Link="nuget\runtimes\android-x86\native\%(Filename)%(Extension)" />
<None Include="..\..\output\native\android\x86_64\libHarfBuzzSharp*" Link="nuget\runtimes\android-x64\native\%(Filename)%(Extension)" />
<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" />
</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" />
</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)" />
</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)" />
</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" />
</ItemGroup>
<ItemGroup>
<Compile Include="..\Binding.Shared\**\*.cs" Link="%(RecursiveDir)%(Filename)%(Extension)" />
<Compile Include="..\HarfBuzzSharp.Shared\**\*.cs" Link="%(RecursiveDir)%(Filename)%(Extension)" />

Просмотреть файл

@ -0,0 +1,23 @@
<?xml version="1.0" encoding="utf-8"?>
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<!-- temporarily work around https://github.com/xamarin/xamarin-android/issues/5432 -->
<Target Name="_HarfBuzzSharpIncludeNativeSystemLibrariesFixes" BeforeTargets="_IncludeNativeSystemLibraries">
<ItemGroup>
<_FixedResolvedFileToPublish
Include="@(ResolvedFileToPublish)"
Condition="
'%(ResolvedFileToPublish.AssetType)' == 'native' and
'%(ResolvedFileToPublish.Filename)' == 'libHarfBuzzSharp' and
'%(ResolvedFileToPublish.Extension)' == '.so' and
'%(ResolvedFileToPublish.NuGetPackageId)' != '' and
'%(ResolvedFileToPublish.RuntimeIdentifier)' == '' and
'%(ResolvedFileToPublish.PathInPackage)' != '' " />
<ResolvedFileToPublish Update="@(_FixedResolvedFileToPublish)">
<RuntimeIdentifier>$([System.Text.RegularExpressions.Regex]::Match('%(_FixedResolvedFileToPublish.PathInPackage)', 'runtimes/([^/]+)/native/.*').Groups[1].Value)</RuntimeIdentifier>
</ResolvedFileToPublish>
<_FixedResolvedFileToPublish Remove="@(_FixedResolvedFileToPublish)" />
</ItemGroup>
</Target>
</Project>

Просмотреть файл

@ -0,0 +1,29 @@
<?xml version="1.0" encoding="utf-8"?>
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<!-- temporarily work around https://github.com/xamarin/xamarin-macios/issues/11667 -->
<Target Name="_HarfBuzzSharpExpandNativeReferencesFixes" BeforeTargets="_ExpandNativeReferences">
<ItemGroup>
<_PossibleNativeFramework
Include="@(ResolvedFileToPublish)"
Condition="
'%(ResolvedFileToPublish.AssetType)' == 'native' and
'%(ResolvedFileToPublish.Filename)' == 'libHarfBuzzSharp' and
'%(ResolvedFileToPublish.Extension)' == '' and
'%(ResolvedFileToPublish.NuGetPackageId)' != '' and
'%(ResolvedFileToPublish.PathInPackage)' != ''">
<FrameworkFilename>$([System.IO.Path]::GetFileName($([System.IO.Path]::GetDirectoryName(%(ResolvedFileToPublish.PathInPackage)))))</FrameworkFilename>
<DirectoryName>$([System.IO.Path]::GetDirectoryName(%(ResolvedFileToPublish.FullPath)))</DirectoryName>
</_PossibleNativeFramework>
<NativeReference Include="%(_PossibleNativeFramework.DirectoryName)" Condition="'%(FrameworkFilename)' == '%(Filename).framework'">
<Kind>Framework</Kind>
<NuGetPackageId>%(NuGetPackageId)</NuGetPackageId>
<NuGetPackageVersion>%(NuGetPackageVersion)</NuGetPackageVersion>
<AssetType>%(AssetType)</AssetType>
<RuntimeIdentifier>$([System.Text.RegularExpressions.Regex]::Match('%(_PossibleNativeFramework.PathInPackage)', 'runtimes/([^/]+)/native/.*').Groups[1].Value)</RuntimeIdentifier>
</NativeReference>
<_PossibleNativeFramework Remove="@(_PossibleNativeFramework)" />
</ItemGroup>
</Target>
</Project>

Просмотреть файл

@ -0,0 +1,23 @@
<?xml version="1.0" encoding="utf-8"?>
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<!-- temporarily work around https://github.com/xamarin/xamarin-macios/issues/11667 -->
<Target Name="_HarfBuzzSharpExpandNativeReferencesFixes" BeforeTargets="_ExpandNativeReferences">
<ItemGroup>
<_PossibleNativeReference
Include="@(ResolvedFileToPublish)"
Condition="
'%(ResolvedFileToPublish.AssetType)' == 'native' and
'%(ResolvedFileToPublish.Filename)' == 'libHarfBuzzSharp' and
'%(ResolvedFileToPublish.Extension)' == '.dylib' and
'%(ResolvedFileToPublish.NuGetPackageId)' != '' and
'%(ResolvedFileToPublish.PathInPackage)' != ''" />
<NativeReference Include="@(_PossibleNativeReference)">
<Kind>Dynamic</Kind>
<RuntimeIdentifier>$([System.Text.RegularExpressions.Regex]::Match('%(_PossibleNativeReference.PathInPackage)', 'runtimes/([^/]+)/native/.*').Groups[1].Value)</RuntimeIdentifier>
</NativeReference>
<_PossibleNativeReference Remove="@(_PossibleNativeReference)" />
</ItemGroup>
</Target>
</Project>

Просмотреть файл

@ -0,0 +1,16 @@
<?xml version="1.0" encoding="utf-8"?>
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<!-- if ShouldIncludeNativeHarfBuzzSharp == False then don't include the native libHarfBuzzSharp -->
<PropertyGroup>
<ShouldIncludeNativeHarfBuzzSharp Condition=" '$(ShouldIncludeNativeHarfBuzzSharp)' == '' ">True</ShouldIncludeNativeHarfBuzzSharp>
</PropertyGroup>
<ItemGroup Condition=" '$(ShouldIncludeNativeHarfBuzzSharp)' != 'False' ">
<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>

Просмотреть файл

@ -0,0 +1,29 @@
<?xml version="1.0" encoding="utf-8"?>
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<!-- temporarily work around https://github.com/xamarin/xamarin-macios/issues/11667 -->
<Target Name="_HarfBuzzSharpExpandNativeReferencesFixes" BeforeTargets="_ExpandNativeReferences">
<ItemGroup>
<_PossibleNativeFramework
Include="@(ResolvedFileToPublish)"
Condition="
'%(ResolvedFileToPublish.AssetType)' == 'native' and
'%(ResolvedFileToPublish.Filename)' == 'libHarfBuzzSharp' and
'%(ResolvedFileToPublish.Extension)' == '' and
'%(ResolvedFileToPublish.NuGetPackageId)' != '' and
'%(ResolvedFileToPublish.PathInPackage)' != ''">
<FrameworkFilename>$([System.IO.Path]::GetFileName($([System.IO.Path]::GetDirectoryName(%(ResolvedFileToPublish.PathInPackage)))))</FrameworkFilename>
<DirectoryName>$([System.IO.Path]::GetDirectoryName(%(ResolvedFileToPublish.FullPath)))</DirectoryName>
</_PossibleNativeFramework>
<NativeReference Include="%(_PossibleNativeFramework.DirectoryName)" Condition="'%(FrameworkFilename)' == '%(Filename).framework'">
<Kind>Framework</Kind>
<NuGetPackageId>%(NuGetPackageId)</NuGetPackageId>
<NuGetPackageVersion>%(NuGetPackageVersion)</NuGetPackageVersion>
<AssetType>%(AssetType)</AssetType>
<RuntimeIdentifier>$([System.Text.RegularExpressions.Regex]::Match('%(_PossibleNativeFramework.PathInPackage)', 'runtimes/([^/]+)/native/.*').Groups[1].Value)</RuntimeIdentifier>
</NativeReference>
<_PossibleNativeFramework Remove="@(_PossibleNativeFramework)" />
</ItemGroup>
</Target>
</Project>

Просмотреть файл

@ -0,0 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<!-- if ShouldIncludeNativeHarfBuzzSharp == False then don't include the native libHarfBuzzSharp -->
<PropertyGroup>
<ShouldIncludeNativeHarfBuzzSharp Condition=" '$(ShouldIncludeNativeHarfBuzzSharp)' == '' ">True</ShouldIncludeNativeHarfBuzzSharp>
</PropertyGroup>
<ItemGroup Condition=" '$(ShouldIncludeNativeHarfBuzzSharp)' != 'False' ">
<NativeReference Include="$(MSBuildThisFileDirectory)..\..\runtimes\ios\native\libHarfBuzzSharp.framework" Kind="Framework" />
</ItemGroup>
</Project>

Просмотреть файл

@ -0,0 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<!-- if ShouldIncludeNativeHarfBuzzSharp == False then don't include the native libHarfBuzzSharp -->
<PropertyGroup>
<ShouldIncludeNativeHarfBuzzSharp Condition=" '$(ShouldIncludeNativeHarfBuzzSharp)' == '' ">True</ShouldIncludeNativeHarfBuzzSharp>
</PropertyGroup>
<ItemGroup Condition=" '$(ShouldIncludeNativeHarfBuzzSharp)' != 'False' ">
<NativeReference Include="$(MSBuildThisFileDirectory)..\..\runtimes\tvos\native\libHarfBuzzSharp.framework" Kind="Framework" />
</ItemGroup>
</Project>

Просмотреть файл

@ -0,0 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<!-- if ShouldIncludeNativeHarfBuzzSharp == False then don't include the native libHarfBuzzSharp -->
<PropertyGroup>
<ShouldIncludeNativeHarfBuzzSharp Condition=" '$(ShouldIncludeNativeHarfBuzzSharp)' == '' ">True</ShouldIncludeNativeHarfBuzzSharp>
</PropertyGroup>
<ItemGroup Condition=" '$(ShouldIncludeNativeHarfBuzzSharp)' != 'False' ">
<NativeReference Include="$(MSBuildThisFileDirectory)..\..\runtimes\watchos\native\libHarfBuzzSharp.framework" Kind="Framework" />
</ItemGroup>
</Project>

Просмотреть файл

@ -7,13 +7,13 @@
<PackagingPlatform>monoandroid1.0</PackagingPlatform>
</PropertyGroup>
<ItemGroup>
<None Include="..\..\output\native\android\x86\libSkiaSharp.so" Link="nuget\build\$(PackagingPlatform)\x86\libSkiaSharp.so" />
<None Include="..\..\output\native\android\x86_64\libSkiaSharp.so" Link="nuget\build\$(PackagingPlatform)\x64\libSkiaSharp.so" />
<None Include="..\..\output\native\android\armeabi-v7a\libSkiaSharp.so" Link="nuget\build\$(PackagingPlatform)\arm\libSkiaSharp.so" />
<None Include="..\..\output\native\android\arm64-v8a\libSkiaSharp.so" Link="nuget\build\$(PackagingPlatform)\arm64\libSkiaSharp.so" />
<None Include="..\..\output\native\android\x86\libSkiaSharp*" Link="nuget\runtimes\android-x86\native\%(Filename)%(Extension)" />
<None Include="..\..\output\native\android\x86_64\libSkiaSharp*" Link="nuget\runtimes\android-x64\native\%(Filename)%(Extension)" />
<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)" />
</ItemGroup>
<ItemGroup>
<None Include="nuget\build\monoandroid1.0\SkiaSharp.targets" Link="nuget\build\$(PackagingPlatform)\SkiaSharp.targets" />
<None Include="..\SkiaSharp\nuget\build\monoandroid\SkiaSharp.targets" Link="nuget\build\$(PackagingPlatform)\SkiaSharp.targets" />
</ItemGroup>
<ItemGroup>
<Compile Include="..\Binding.Shared\**\*.cs" Link="%(RecursiveDir)%(Filename)%(Extension)" />

Просмотреть файл

@ -1,22 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<!-- if ShouldIncludeNativeSkiaSharp == False then don't include the native libSkiaSharp -->
<PropertyGroup>
<ShouldIncludeNativeSkiaSharp Condition=" '$(ShouldIncludeNativeSkiaSharp)' == '' ">True</ShouldIncludeNativeSkiaSharp>
</PropertyGroup>
<PropertyGroup>
<_SkiaSharpNativeLibraryCurrPath>$([System.IO.Path]::GetDirectoryName('$(MSBuildThisFileDirectory)'))</_SkiaSharpNativeLibraryCurrPath>
<_SkiaSharpNativeLibraryDirName>$([System.IO.Path]::GetFileName('$(_SkiaSharpNativeLibraryCurrPath)'))</_SkiaSharpNativeLibraryDirName>
<_SkiaSharpNativeLibraryRootDir>$(MSBuildThisFileDirectory)..\..\build\$(_SkiaSharpNativeLibraryDirName)\</_SkiaSharpNativeLibraryRootDir>
</PropertyGroup>
<ItemGroup Condition=" '$(ShouldIncludeNativeSkiaSharp)' != 'False' ">
<AndroidNativeLibrary Include="$(_SkiaSharpNativeLibraryRootDir)x86\libSkiaSharp.so" Abi="x86" />
<AndroidNativeLibrary Include="$(_SkiaSharpNativeLibraryRootDir)x64\libSkiaSharp.so" Abi="x86_64" />
<AndroidNativeLibrary Include="$(_SkiaSharpNativeLibraryRootDir)arm\libSkiaSharp.so" Abi="armeabi-v7a" />
<AndroidNativeLibrary Include="$(_SkiaSharpNativeLibraryRootDir)arm64\libSkiaSharp.so" Abi="arm64-v8a" />
</ItemGroup>
</Project>

Просмотреть файл

@ -1,7 +0,0 @@
using Foundation;
// This attribute allows you to mark your assemblies as “safe to link”.
// When the attribute is present, the linker—if enabled—will process the assembly
// even if youre using the “Link SDK assemblies only” option, which is the default for device builds.
[assembly: LinkerSafe]

Просмотреть файл

@ -9,10 +9,9 @@
<None Include="..\..\output\native\osx\libSkiaSharp.dylib" Link="nuget\runtimes\osx\native\libSkiaSharp.dylib" />
</ItemGroup>
<ItemGroup>
<None Include="nuget\build\xamarinmac2.0\SkiaSharp.targets" Link="nuget\build\$(TargetFramework)\SkiaSharp.targets" />
<None Include="..\SkiaSharp\nuget\build\xamarinmac\SkiaSharp.targets" Link="nuget\build\$(TargetFramework)\SkiaSharp.targets" />
</ItemGroup>
<ItemGroup>
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="..\Binding.Shared\**\*.cs" Link="%(RecursiveDir)%(Filename)%(Extension)" />
<Compile Include="..\Binding\**\*.cs" Link="%(RecursiveDir)%(Filename)%(Extension)" />
</ItemGroup>

Просмотреть файл

@ -1,7 +0,0 @@
using Foundation;
// This attribute allows you to mark your assemblies as “safe to link”.
// When the attribute is present, the linker—if enabled—will process the assembly
// even if youre using the “Link SDK assemblies only” option, which is the default for device builds.
[assembly: LinkerSafe]

Просмотреть файл

@ -6,13 +6,12 @@
<PackagingGroup>SkiaSharp</PackagingGroup>
</PropertyGroup>
<ItemGroup>
<None Include="..\..\output\native\ios\libSkiaSharp.framework\**" Link="nuget\build\$(TargetFramework)\libSkiaSharp.framework\%(RecursiveDir)%(Filename)%(Extension)" />
<None Include="..\..\output\native\ios\libSkiaSharp.framework\**" Link="nuget\runtimes\ios\native\libSkiaSharp.framework\%(RecursiveDir)%(Filename)%(Extension)" />
</ItemGroup>
<ItemGroup>
<None Include="nuget\build\xamarinios1.0\SkiaSharp.targets" Link="nuget\build\$(TargetFramework)\SkiaSharp.targets" />
<None Include="..\SkiaSharp\nuget\build\xamarinios\SkiaSharp.targets" Link="nuget\build\$(TargetFramework)\SkiaSharp.targets" />
</ItemGroup>
<ItemGroup>
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="..\Binding.Shared\**\*.cs" Link="%(RecursiveDir)%(Filename)%(Extension)" />
<Compile Include="..\Binding\**\*.cs" Link="%(RecursiveDir)%(Filename)%(Extension)" />
</ItemGroup>

Просмотреть файл

@ -1,19 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<!-- if ShouldIncludeNativeSkiaSharp == False then don't include the native libSkiaSharp -->
<PropertyGroup>
<ShouldIncludeNativeSkiaSharp Condition=" '$(ShouldIncludeNativeSkiaSharp)' == '' ">True</ShouldIncludeNativeSkiaSharp>
</PropertyGroup>
<PropertyGroup>
<_SkiaSharpNativeLibraryCurrPath>$([System.IO.Path]::GetDirectoryName('$(MSBuildThisFileDirectory)'))</_SkiaSharpNativeLibraryCurrPath>
<_SkiaSharpNativeLibraryDirName>$([System.IO.Path]::GetFileName('$(_SkiaSharpNativeLibraryCurrPath)'))</_SkiaSharpNativeLibraryDirName>
<_SkiaSharpNativeLibraryRootDir>$(MSBuildThisFileDirectory)..\..\build\$(_SkiaSharpNativeLibraryDirName)\</_SkiaSharpNativeLibraryRootDir>
</PropertyGroup>
<ItemGroup Condition=" '$(ShouldIncludeNativeSkiaSharp)' != 'False' ">
<NativeReference Include="$(_SkiaSharpNativeLibraryRootDir)libSkiaSharp.framework" Kind="Framework" />
</ItemGroup>
</Project>

Просмотреть файл

@ -1,7 +0,0 @@
using Foundation;
// This attribute allows you to mark your assemblies as “safe to link”.
// When the attribute is present, the linker—if enabled—will process the assembly
// even if youre using the “Link SDK assemblies only” option, which is the default for device builds.
[assembly: LinkerSafe]

Просмотреть файл

@ -6,13 +6,12 @@
<PackagingGroup>SkiaSharp</PackagingGroup>
</PropertyGroup>
<ItemGroup>
<None Include="..\..\output\native\tvos\libSkiaSharp.framework\**" Link="nuget\build\$(TargetFramework)\libSkiaSharp.framework\%(RecursiveDir)%(Filename)%(Extension)" />
<None Include="..\..\output\native\tvos\libSkiaSharp.framework\**" Link="nuget\runtimes\tvos\native\libSkiaSharp.framework\%(RecursiveDir)%(Filename)%(Extension)" />
</ItemGroup>
<ItemGroup>
<None Include="nuget\build\xamarintvos1.0\SkiaSharp.targets" Link="nuget\build\$(TargetFramework)\SkiaSharp.targets" />
<None Include="..\SkiaSharp\nuget\build\xamarintvos\SkiaSharp.targets" Link="nuget\build\$(TargetFramework)\SkiaSharp.targets" />
</ItemGroup>
<ItemGroup>
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="..\Binding.Shared\**\*.cs" Link="%(RecursiveDir)%(Filename)%(Extension)" />
<Compile Include="..\Binding\**\*.cs" Link="%(RecursiveDir)%(Filename)%(Extension)" />
</ItemGroup>

Просмотреть файл

@ -1,19 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<!-- if ShouldIncludeNativeSkiaSharp == False then don't include the native libSkiaSharp -->
<PropertyGroup>
<ShouldIncludeNativeSkiaSharp Condition=" '$(ShouldIncludeNativeSkiaSharp)' == '' ">True</ShouldIncludeNativeSkiaSharp>
</PropertyGroup>
<PropertyGroup>
<_SkiaSharpNativeLibraryCurrPath>$([System.IO.Path]::GetDirectoryName('$(MSBuildThisFileDirectory)'))</_SkiaSharpNativeLibraryCurrPath>
<_SkiaSharpNativeLibraryDirName>$([System.IO.Path]::GetFileName('$(_SkiaSharpNativeLibraryCurrPath)'))</_SkiaSharpNativeLibraryDirName>
<_SkiaSharpNativeLibraryRootDir>$(MSBuildThisFileDirectory)..\..\build\$(_SkiaSharpNativeLibraryDirName)\</_SkiaSharpNativeLibraryRootDir>
</PropertyGroup>
<ItemGroup Condition=" '$(ShouldIncludeNativeSkiaSharp)' != 'False' ">
<NativeReference Include="$(_SkiaSharpNativeLibraryRootDir)libSkiaSharp.framework" Kind="Framework" />
</ItemGroup>
</Project>

Просмотреть файл

@ -1,7 +0,0 @@
using Foundation;
// This attribute allows you to mark your assemblies as “safe to link”.
// When the attribute is present, the linker—if enabled—will process the assembly
// even if youre using the “Link SDK assemblies only” option, which is the default for device builds.
[assembly: LinkerSafe]

Просмотреть файл

@ -6,13 +6,12 @@
<PackagingGroup>SkiaSharp</PackagingGroup>
</PropertyGroup>
<ItemGroup>
<None Include="..\..\output\native\watchos\libSkiaSharp.framework\**" Link="nuget\build\$(TargetFramework)\libSkiaSharp.framework\%(RecursiveDir)%(Filename)%(Extension)" />
<None Include="..\..\output\native\watchos\libSkiaSharp.framework\**" Link="nuget\runtimes\watchos\native\libSkiaSharp.framework\%(RecursiveDir)%(Filename)%(Extension)" />
</ItemGroup>
<ItemGroup>
<None Include="nuget\build\xamarinwatchos1.0\SkiaSharp.targets" Link="nuget\build\$(TargetFramework)\SkiaSharp.targets" />
<None Include="..\SkiaSharp\nuget\build\xamarinwatchos\SkiaSharp.targets" Link="nuget\build\$(TargetFramework)\SkiaSharp.targets" />
</ItemGroup>
<ItemGroup>
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="..\Binding.Shared\**\*.cs" Link="%(RecursiveDir)%(Filename)%(Extension)" />
<Compile Include="..\Binding\**\*.cs" Link="%(RecursiveDir)%(Filename)%(Extension)" />
</ItemGroup>

Просмотреть файл

@ -1,19 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<!-- if ShouldIncludeNativeSkiaSharp == False then don't include the native libSkiaSharp -->
<PropertyGroup>
<ShouldIncludeNativeSkiaSharp Condition=" '$(ShouldIncludeNativeSkiaSharp)' == '' ">True</ShouldIncludeNativeSkiaSharp>
</PropertyGroup>
<PropertyGroup>
<_SkiaSharpNativeLibraryCurrPath>$([System.IO.Path]::GetDirectoryName('$(MSBuildThisFileDirectory)'))</_SkiaSharpNativeLibraryCurrPath>
<_SkiaSharpNativeLibraryDirName>$([System.IO.Path]::GetFileName('$(_SkiaSharpNativeLibraryCurrPath)'))</_SkiaSharpNativeLibraryDirName>
<_SkiaSharpNativeLibraryRootDir>$(MSBuildThisFileDirectory)..\..\build\$(_SkiaSharpNativeLibraryDirName)\</_SkiaSharpNativeLibraryRootDir>
</PropertyGroup>
<ItemGroup Condition=" '$(ShouldIncludeNativeSkiaSharp)' != 'False' ">
<NativeReference Include="$(_SkiaSharpNativeLibraryRootDir)libSkiaSharp.framework" Kind="Framework" />
</ItemGroup>
</Project>

Просмотреть файл

@ -1,6 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFrameworks>netstandard1.3;netstandard2.0;net462</TargetFrameworks>
<TargetFrameworks Condition="$(BuildingForNet6)">$(TargetFrameworks);net6.0-ios;net6.0-maccatalyst;net6.0-tvos;net6.0-macos;net6.0-android</TargetFrameworks>
<RootNamespace>SkiaSharp</RootNamespace>
<AssemblyName>SkiaSharp</AssemblyName>
<PackagingGroup>SkiaSharp</PackagingGroup>
@ -14,7 +15,7 @@
<ItemGroup>
<PackageReference Include="System.Memory" Version="4.5.3" />
</ItemGroup>
<ItemGroup>
<ItemGroup Condition="$(TargetFramework.StartsWith('netstandard2'))">
<!-- macOS -->
<None Include="..\..\output\native\osx\libSkiaSharp*" Link="nuget\runtimes\osx\native\%(Filename)%(Extension)" />
<!-- Windows -->
@ -44,13 +45,48 @@
<None Include="..\..\output\native\alpinenodeps\arm64\libSkiaSharp*" Link="nuget\runtimes\linuxnodeps-musl-arm64\native\%(Filename)%(Extension)" />
<None Include="..\..\output\native\alpinenodeps\arm\libSkiaSharp*" Link="nuget\runtimes\linuxnodeps-musl-arm\native\%(Filename)%(Extension)" />
<!-- WASM -->
<None Include="..\..\output\native\wasm\**\*.a" Link="nuget\build\wasm\%(RecursiveDir)%(Filename)%(Extension)" />
<None Include="..\..\output\native\wasm\**\libSkiaSharp*.a" Link="nuget\build\wasm\%(RecursiveDir)%(Filename)%(Extension)" />
<None Include="nuget\build\wasm\SkiaSharp.props" Link="nuget\build\wasm\SkiaSharp.props" />
<None Include="nuget\build\wasm\SkiaSharp.targets" Link="nuget\build\wasm\SkiaSharp.targets" />
</ItemGroup>
<ItemGroup Condition="$(TargetFramework.StartsWith('net4'))">
<!-- .NET Framework -->
<None Include="nuget\build\net462\SkiaSharp.targets" Link="nuget\build\$(TargetFramework)\SkiaSharp.targets" />
</ItemGroup>
<ItemGroup Condition="$(TargetFramework.Contains('-android'))">
<!-- Android -->
<None Include="..\..\output\native\android\x86\libSkiaSharp*" Link="nuget\runtimes\android-x86\native\%(Filename)%(Extension)" />
<None Include="..\..\output\native\android\x86_64\libSkiaSharp*" Link="nuget\runtimes\android-x64\native\%(Filename)%(Extension)" />
<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" />
</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" />
</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)" />
</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)" />
</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" />
</ItemGroup>
<ItemGroup>
<Compile Include="..\Binding.Shared\**\*.cs" Link="%(RecursiveDir)%(Filename)%(Extension)" />
<Compile Include="..\Binding\**\*.cs" Link="%(RecursiveDir)%(Filename)%(Extension)" />

Просмотреть файл

@ -0,0 +1,23 @@
<?xml version="1.0" encoding="utf-8"?>
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<!-- temporarily work around https://github.com/xamarin/xamarin-android/issues/5432 -->
<Target Name="_SkiaSharpIncludeNativeSystemLibrariesFixes" BeforeTargets="_IncludeNativeSystemLibraries">
<ItemGroup>
<_FixedResolvedFileToPublish
Include="@(ResolvedFileToPublish)"
Condition="
'%(ResolvedFileToPublish.AssetType)' == 'native' and
'%(ResolvedFileToPublish.Filename)' == 'libSkiaSharp' and
'%(ResolvedFileToPublish.Extension)' == '.so' and
'%(ResolvedFileToPublish.NuGetPackageId)' != '' and
'%(ResolvedFileToPublish.RuntimeIdentifier)' == '' and
'%(ResolvedFileToPublish.PathInPackage)' != '' " />
<ResolvedFileToPublish Update="@(_FixedResolvedFileToPublish)">
<RuntimeIdentifier>$([System.Text.RegularExpressions.Regex]::Match('%(_FixedResolvedFileToPublish.PathInPackage)', 'runtimes/([^/]+)/native/.*').Groups[1].Value)</RuntimeIdentifier>
</ResolvedFileToPublish>
<_FixedResolvedFileToPublish Remove="@(_FixedResolvedFileToPublish)" />
</ItemGroup>
</Target>
</Project>

Просмотреть файл

@ -0,0 +1,29 @@
<?xml version="1.0" encoding="utf-8"?>
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<!-- temporarily work around https://github.com/xamarin/xamarin-macios/issues/11667 -->
<Target Name="_SkiaSharpExpandNativeReferencesFixes" BeforeTargets="_ExpandNativeReferences">
<ItemGroup>
<_PossibleNativeFramework
Include="@(ResolvedFileToPublish)"
Condition="
'%(ResolvedFileToPublish.AssetType)' == 'native' and
'%(ResolvedFileToPublish.Filename)' == 'libSkiaSharp' and
'%(ResolvedFileToPublish.Extension)' == '' and
'%(ResolvedFileToPublish.NuGetPackageId)' != '' and
'%(ResolvedFileToPublish.PathInPackage)' != ''">
<FrameworkFilename>$([System.IO.Path]::GetFileName($([System.IO.Path]::GetDirectoryName(%(ResolvedFileToPublish.PathInPackage)))))</FrameworkFilename>
<DirectoryName>$([System.IO.Path]::GetDirectoryName(%(ResolvedFileToPublish.FullPath)))</DirectoryName>
</_PossibleNativeFramework>
<NativeReference Include="%(_PossibleNativeFramework.DirectoryName)" Condition="'%(FrameworkFilename)' == '%(Filename).framework'">
<Kind>Framework</Kind>
<NuGetPackageId>%(NuGetPackageId)</NuGetPackageId>
<NuGetPackageVersion>%(NuGetPackageVersion)</NuGetPackageVersion>
<AssetType>%(AssetType)</AssetType>
<RuntimeIdentifier>$([System.Text.RegularExpressions.Regex]::Match('%(_PossibleNativeFramework.PathInPackage)', 'runtimes/([^/]+)/native/.*').Groups[1].Value)</RuntimeIdentifier>
</NativeReference>
<_PossibleNativeFramework Remove="@(_PossibleNativeFramework)" />
</ItemGroup>
</Target>
</Project>

Просмотреть файл

@ -0,0 +1,23 @@
<?xml version="1.0" encoding="utf-8"?>
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<!-- temporarily work around https://github.com/xamarin/xamarin-macios/issues/11667 -->
<Target Name="_SkiaSharpExpandNativeReferencesFixes" BeforeTargets="_ExpandNativeReferences">
<ItemGroup>
<_PossibleNativeReference
Include="@(ResolvedFileToPublish)"
Condition="
'%(ResolvedFileToPublish.AssetType)' == 'native' and
'%(ResolvedFileToPublish.Filename)' == 'libSkiaSharp' and
'%(ResolvedFileToPublish.Extension)' == '.dylib' and
'%(ResolvedFileToPublish.NuGetPackageId)' != '' and
'%(ResolvedFileToPublish.PathInPackage)' != ''" />
<NativeReference Include="@(_PossibleNativeReference)">
<Kind>Dynamic</Kind>
<RuntimeIdentifier>$([System.Text.RegularExpressions.Regex]::Match('%(_PossibleNativeReference.PathInPackage)', 'runtimes/([^/]+)/native/.*').Groups[1].Value)</RuntimeIdentifier>
</NativeReference>
<_PossibleNativeReference Remove="@(_PossibleNativeReference)" />
</ItemGroup>
</Target>
</Project>

Просмотреть файл

@ -0,0 +1,16 @@
<?xml version="1.0" encoding="utf-8"?>
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<!-- if ShouldIncludeNativeSkiaSharp == False then don't include the native libSkiaSharp -->
<PropertyGroup>
<ShouldIncludeNativeSkiaSharp Condition=" '$(ShouldIncludeNativeSkiaSharp)' == '' ">True</ShouldIncludeNativeSkiaSharp>
</PropertyGroup>
<ItemGroup Condition=" '$(ShouldIncludeNativeSkiaSharp)' != 'False' ">
<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>

Просмотреть файл

@ -0,0 +1,29 @@
<?xml version="1.0" encoding="utf-8"?>
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<!-- temporarily work around https://github.com/xamarin/xamarin-macios/issues/11667 -->
<Target Name="_SkiaSharpExpandNativeReferencesFixes" BeforeTargets="_ExpandNativeReferences">
<ItemGroup>
<_PossibleNativeFramework
Include="@(ResolvedFileToPublish)"
Condition="
'%(ResolvedFileToPublish.AssetType)' == 'native' and
'%(ResolvedFileToPublish.Filename)' == 'libSkiaSharp' and
'%(ResolvedFileToPublish.Extension)' == '' and
'%(ResolvedFileToPublish.NuGetPackageId)' != '' and
'%(ResolvedFileToPublish.PathInPackage)' != ''">
<FrameworkFilename>$([System.IO.Path]::GetFileName($([System.IO.Path]::GetDirectoryName(%(ResolvedFileToPublish.PathInPackage)))))</FrameworkFilename>
<DirectoryName>$([System.IO.Path]::GetDirectoryName(%(ResolvedFileToPublish.FullPath)))</DirectoryName>
</_PossibleNativeFramework>
<NativeReference Include="%(_PossibleNativeFramework.DirectoryName)" Condition="'%(FrameworkFilename)' == '%(Filename).framework'">
<Kind>Framework</Kind>
<NuGetPackageId>%(NuGetPackageId)</NuGetPackageId>
<NuGetPackageVersion>%(NuGetPackageVersion)</NuGetPackageVersion>
<AssetType>%(AssetType)</AssetType>
<RuntimeIdentifier>$([System.Text.RegularExpressions.Regex]::Match('%(_PossibleNativeFramework.PathInPackage)', 'runtimes/([^/]+)/native/.*').Groups[1].Value)</RuntimeIdentifier>
</NativeReference>
<_PossibleNativeFramework Remove="@(_PossibleNativeFramework)" />
</ItemGroup>
</Target>
</Project>

Просмотреть файл

@ -0,0 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<!-- if ShouldIncludeNativeSkiaSharp == False then don't include the native libSkiaSharp -->
<PropertyGroup>
<ShouldIncludeNativeSkiaSharp Condition=" '$(ShouldIncludeNativeSkiaSharp)' == '' ">True</ShouldIncludeNativeSkiaSharp>
</PropertyGroup>
<ItemGroup Condition=" '$(ShouldIncludeNativeSkiaSharp)' != 'False' ">
<NativeReference Include="$(MSBuildThisFileDirectory)..\..\runtimes\ios\native\libSkiaSharp.framework" Kind="Framework" />
</ItemGroup>
</Project>

Просмотреть файл

@ -0,0 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<!-- if ShouldIncludeNativeSkiaSharp == False then don't include the native libSkiaSharp -->
<PropertyGroup>
<ShouldIncludeNativeSkiaSharp Condition=" '$(ShouldIncludeNativeSkiaSharp)' == '' ">True</ShouldIncludeNativeSkiaSharp>
</PropertyGroup>
<ItemGroup Condition=" '$(ShouldIncludeNativeSkiaSharp)' != 'False' ">
<NativeReference Include="$(MSBuildThisFileDirectory)..\..\runtimes\tvos\native\libSkiaSharp.framework" Kind="Framework" />
</ItemGroup>
</Project>

Просмотреть файл

@ -0,0 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<!-- if ShouldIncludeNativeSkiaSharp == False then don't include the native libSkiaSharp -->
<PropertyGroup>
<ShouldIncludeNativeSkiaSharp Condition=" '$(ShouldIncludeNativeSkiaSharp)' == '' ">True</ShouldIncludeNativeSkiaSharp>
</PropertyGroup>
<ItemGroup Condition=" '$(ShouldIncludeNativeSkiaSharp)' != 'False' ">
<NativeReference Include="$(MSBuildThisFileDirectory)..\..\runtimes\watchos\native\libSkiaSharp.framework" Kind="Framework" />
</ItemGroup>
</Project>

Просмотреть файл

@ -49,7 +49,8 @@
"gr_backend_t": {
"cs": "GRBackendNative",
"members": {
"OPENGL_GR_BACKEND": "OpenGL"
"OPENGL_GR_BACKEND": "OpenGL",
"DIRECT3D_GR_BACKEND": "Direct3D"
},
"internal": true
},

Просмотреть файл

@ -54,6 +54,10 @@ var BUILD_NUMBER = Argument ("buildNumber", EnvironmentVariable ("BUILD_NUMBER")
var GIT_SHA = Argument ("gitSha", EnvironmentVariable ("GIT_SHA") ?? "");
var GIT_BRANCH_NAME = Argument ("gitBranch", EnvironmentVariable ("GIT_BRANCH_NAME") ?? "");
var PREVIEW_NUGET_SUFFIX = string.IsNullOrEmpty (BUILD_NUMBER)
? $"{PREVIEW_LABEL}"
: $"{PREVIEW_LABEL}.{BUILD_NUMBER}";
var PREVIEW_FEED_URL = "https://pkgs.dev.azure.com/xamarin/public/_packaging/SkiaSharp/nuget/v3/index.json";
var TRACKED_NUGETS = new Dictionary<string, Version> {
@ -73,6 +77,9 @@ var TRACKED_NUGETS = new Dictionary<string, Version> {
{ "SkiaSharp.Views.Forms.GTK", new Version (1, 57, 0) },
{ "SkiaSharp.Views.Uno", new Version (1, 57, 0) },
{ "SkiaSharp.Views.WinUI", new Version (1, 57, 0) },
{ "SkiaSharp.Views.Maui.Core", new Version (1, 57, 0) },
{ "SkiaSharp.Views.Maui.Controls", new Version (1, 57, 0) },
{ "SkiaSharp.Views.Maui.Controls.Compatibility", new Version (1, 57, 0) },
{ "HarfBuzzSharp", new Version (1, 0, 0) },
{ "HarfBuzzSharp.NativeAssets.Linux", new Version (1, 0, 0) },
{ "HarfBuzzSharp.NativeAssets.WebAssembly", new Version (1, 0, 0) },
@ -80,6 +87,13 @@ var TRACKED_NUGETS = new Dictionary<string, Version> {
{ "SkiaSharp.Vulkan.SharpVk", new Version (1, 57, 0) },
};
var PREVIEW_ONLY_NUGETS = new List<string> {
"SkiaSharp.Views.WinUI",
"SkiaSharp.Views.Maui.Core",
"SkiaSharp.Views.Maui.Controls",
"SkiaSharp.Views.Maui.Controls.Compatibility",
};
Information("Arguments:");
foreach (var arg in CAKE_ARGUMENTS) {
Information($" {arg.Key.PadRight(30)} {{0}}", arg.Value);
@ -328,9 +342,10 @@ Task ("tests-wasm")
WorkingDirectory = pubDir,
});
DotNetCoreRun("./utils/WasmTestRunner/WasmTestRunner.csproj",
"http://localhost:8000/ " +
"-o ./tests/SkiaSharp.Wasm.Tests/TestResults/ " +
(string.IsNullOrEmpty(CHROMEWEBDRIVER) ? "" : $"-d {CHROMEWEBDRIVER}"));
"--output=\"./tests/SkiaSharp.Wasm.Tests/TestResults/\" " +
(string.IsNullOrEmpty(CHROMEWEBDRIVER) ? "" : $"--driver=\"{CHROMEWEBDRIVER}\" ") +
"--verbose " +
"\"http://127.0.0.1:8000/\" ");
} catch {
failedTests++;
} finally {
@ -363,10 +378,7 @@ Task ("samples-generate")
Zip ("./output/samples/", "./output/samples.zip");
// create the preview samples archive
var suffix = string.IsNullOrEmpty (BUILD_NUMBER)
? $"{PREVIEW_LABEL}"
: $"{PREVIEW_LABEL}.{BUILD_NUMBER}";
CreateSamplesDirectory ("./samples/", "./output/samples-preview/", suffix);
CreateSamplesDirectory ("./samples/", "./output/samples-preview/", PREVIEW_NUGET_SUFFIX);
Zip ("./output/samples-preview/", "./output/samples-preview.zip");
});
@ -448,8 +460,21 @@ Task ("samples")
// }
// build solutions locally
var solutions = GetFiles ("./output/samples/**/*.sln");
var actualSamples = PREVIEW_ONLY_NUGETS.Count > 0
? "samples-preview"
: "samples";
var solutions = GetFiles ($"./output/{actualSamples}/**/*.sln");
Information ("Solutions found:");
foreach (var sln in solutions) {
Information (" " + sln);
}
foreach (var sln in solutions) {
// might have been deleted due to a platform build and cleanup
if (!FileExists (sln))
continue;
var name = sln.GetFilenameWithoutExtension ();
var slnPlatform = name.GetExtension ();
@ -459,6 +484,8 @@ Task ("samples")
if (!variants.Any ()) {
// there is no platform variant
BuildSample (sln);
// delete the built sample
CleanDirectories (sln.GetDirectory ().FullPath);
} else {
// skip as there is a platform variant
}
@ -471,6 +498,8 @@ Task ("samples")
(isWin && slnPlatform == ".windows");
if (shouldBuild) {
BuildSample (sln);
// delete the built sample
CleanDirectories (sln.GetDirectory ().FullPath);
} else {
// skip this as this is not the correct platform
}
@ -570,6 +599,10 @@ Task ("nuget-normal")
if (depId.Value.StartsWith("SkiaSharp") || depId.Value.StartsWith("HarfBuzzSharp"))
v += suffix;
depVersion.Value = v;
} else {
v = GetVersion (depId.Value, "release");
if (!string.IsNullOrEmpty (v))
depVersion.Value = v;
}
}
}
@ -602,8 +635,10 @@ Task ("nuget-normal")
var outDir = $"./output/{dir}/nuget";
EnsureDirectoryExists (outDir);
SetVersion (xdoc, "");
xdoc.Save ($"{outDir}/{id}.nuspec");
if (!PREVIEW_ONLY_NUGETS.Contains (id)) {
SetVersion (xdoc, "");
xdoc.Save ($"{outDir}/{id}.nuspec");
}
SetVersion (xdoc, $"{preview}");
xdoc.Save ($"{outDir}/{id}.prerelease.nuspec");

Просмотреть файл

@ -70,8 +70,9 @@ Task ("docs-api-diff")
comparer.SaveAssemblyApiInfo = true;
comparer.SaveAssemblyMarkdownDiff = true;
// some libraries depend in SkiaSharp
// some libraries depend on SkiaSharp
comparer.SearchPaths.Add($"./output/SkiaSharp/nuget/lib/netstandard2.0");
comparer.SearchPaths.Add($"./output/SkiaSharp.Views.Maui.Core/nuget/lib/netstandard2.0");
var filter = new NuGetVersions.Filter {
IncludePrerelease = NUGET_DIFF_PRERELEASE
@ -81,6 +82,10 @@ Task ("docs-api-diff")
Information ($"Comparing the assemblies in '{id}'...");
var version = GetVersion (id);
var localNugetVersion = PREVIEW_ONLY_NUGETS.Contains(id)
? $"{version}-{PREVIEW_NUGET_SUFFIX}"
: version;
var latestVersion = (await NuGetVersions.GetLatestAsync (id, filter))?.ToNormalizedString ();
Debug ($"Version '{latestVersion}' is the latest version of '{id}'...");
@ -91,9 +96,9 @@ Task ("docs-api-diff")
}
// generate the diff and copy to the changelogs
Debug ($"Running a diff on '{latestVersion}' vs '{version}' of '{id}'...");
Debug ($"Running a diff on '{latestVersion}' vs '{localNugetVersion}' of '{id}'...");
var diffRoot = $"{baseDir}/{id}";
using (var reader = new PackageArchiveReader ($"{OUTPUT_NUGETS_PATH}/{id.ToLower ()}.{version}.nupkg")) {
using (var reader = new PackageArchiveReader ($"{OUTPUT_NUGETS_PATH}/{id.ToLower ()}.{localNugetVersion}.nupkg")) {
// run the diff with just the breaking changes
comparer.MarkdownDiffFileExtension = ".breaking.md";
comparer.IgnoreNonBreakingChanges = true;

Просмотреть файл

@ -203,9 +203,31 @@ string[] GetReferenceSearchPaths()
return refs.ToArray();
}
string[] GetDotNetPacksSearchPaths()
{
var refs = new List<string>();
RunProcess("dotnet", "--list-sdks", out var sdks);
var last = sdks.Last();
var start = last.IndexOf("[") + 1;
var latestSdk = (DirectoryPath)(last.Substring(start, last.Length - start - 1));
var dotnetRoot = latestSdk.Combine("..");
var packs = GetDirectories(dotnetRoot.Combine("packs").FullPath + "/*.Ref");
foreach(var pack in packs) {
var latestPath = GetDirectories(pack.FullPath + "/*").Last();
refs.AddRange(GetDirectories(latestPath.FullPath + "/ref/net*").Select(d => d.FullPath));
}
return refs.ToArray();
}
async Task<NuGetDiff> CreateNuGetDiffAsync()
{
var comparer = new NuGetDiff();
comparer.SearchPaths.AddRange(GetDotNetPacksSearchPaths());
comparer.SearchPaths.AddRange(GetReferenceSearchPaths());
comparer.PackageCache = PACKAGE_CACHE_PATH.FullPath;
@ -232,6 +254,21 @@ async Task<NuGetDiff> CreateNuGetDiffAsync()
await AddDep("Microsoft.ProjectReunion.Foundation", "net5.0-windows");
await AddDep("Microsoft.ProjectReunion.WinUI", "net5.0-windows10.0.18362.0");
await AddDep("Microsoft.Windows.SDK.NET.Ref", "");
await AddDep("Microsoft.Maui.Core", "net6.0-android30.0");
await AddDep("Microsoft.Maui.Core", "net6.0-ios13.6");
await AddDep("Microsoft.Maui.Core", "net6.0-maccatalyst13.5");
await AddDep("Microsoft.Maui.Core", "net6.0-windows10.0.18362");
await AddDep("Microsoft.Maui.Core", "netstandard2.0");
await AddDep("Microsoft.Maui.Controls", "net6.0-android30.0");
await AddDep("Microsoft.Maui.Controls", "net6.0-ios13.6");
await AddDep("Microsoft.Maui.Controls", "net6.0-maccatalyst13.5");
await AddDep("Microsoft.Maui.Controls", "net6.0-windows10.0.18362");
await AddDep("Microsoft.Maui.Controls", "netstandard2.0");
await AddDep("Microsoft.Maui.Controls.Compatibility", "net6.0-android30.0");
await AddDep("Microsoft.Maui.Controls.Compatibility", "net6.0-ios13.6");
await AddDep("Microsoft.Maui.Controls.Compatibility", "net6.0-maccatalyst13.5");
await AddDep("Microsoft.Maui.Controls.Compatibility", "net6.0-windows10.0.18362");
await AddDep("Microsoft.Maui.Controls.Compatibility.Android.FormsViewGroup", "net6.0-android30.0");
await AddDep("OpenTK.GLControl", "NET40", "reference");
await AddDep("Xamarin.Forms", "Xamarin.iOS10", "reference");

Просмотреть файл

@ -21,6 +21,9 @@ foreach (var cake in GetFiles("native/*/build.cake"))
Task("externals-osx")
.IsDependentOn("externals-macos");
Task("externals-catalyst")
.IsDependentOn("externals-maccatalyst");
////////////////////////////////////////////////////////////////////////////////////////////////////
// EXTERNALS DOWNLOAD - download any externals that are needed
////////////////////////////////////////////////////////////////////////////////////////////////////
@ -67,8 +70,11 @@ bool ShouldBuildExternal(string platform)
switch (platform) {
case "mac":
case "macos":
platform = "osx";
case "osx":
platform = "macos";
break;
case "catalyst":
platform = "maccatalyst";
break;
case "win":
platform = "windows";

Просмотреть файл

@ -80,42 +80,6 @@ void GnNinja(DirectoryPath outDir, string target, string skiaArgs)
});
}
void StripSign(FilePath target)
{
if (!IsRunningOnMac())
throw new InvalidOperationException("lipo is only available on macOS.");
target = MakeAbsolute(target);
var archive = target;
if (target.FullPath.EndsWith(".framework")) {
archive = $"{target}/{target.GetFilenameWithoutExtension()}";
}
// strip anything we can
RunProcess("strip", new ProcessSettings {
Arguments = $"-x -S {archive}",
});
// re-sign with empty
RunProcess("codesign", new ProcessSettings {
Arguments = $"--force --sign - --timestamp=none {target}",
});
}
void RunLipo(DirectoryPath directory, FilePath output, FilePath[] inputs)
{
if (!IsRunningOnMac())
throw new InvalidOperationException("lipo is only available on macOS.");
EnsureDirectoryExists(directory.CombineWithFilePath(output).GetDirectory());
var inputString = string.Join(" ", inputs.Select(i => string.Format("\"{0}\"", i)));
RunProcess("lipo", new ProcessSettings {
Arguments = string.Format("-create -output \"{0}\" {1}", output, inputString),
WorkingDirectory = directory,
});
}
bool Skip(string arch)
{
arch = arch?.ToLower() ?? "";

Просмотреть файл

@ -1,25 +1,118 @@
#addin nuget:?package=Cake.XCode&version=4.2.0
void RunXCodeBuild(FilePath project, string target, string sdk, string arch)
void RunXCodeBuild(FilePath project, string scheme, string sdk, string arch, string platform = null)
{
var dir = project.GetDirectory();
if (DirectoryExists(dir.Combine($"bin/{CONFIGURATION}/{arch}"))) {
if (DirectoryExists(dir.Combine("build")))
DeleteDirectory(dir.Combine("build"), true);
MoveDirectory(dir.Combine($"bin/{CONFIGURATION}/{arch}"), dir.Combine("build"));
}
XCodeBuild(new XCodeBuildSettings {
var settings = new XCodeBuildSettings {
Project = project.FullPath,
Target = target,
Scheme = scheme,
Sdk = sdk,
Arch = arch,
Archive = true,
Configuration = CONFIGURATION,
DerivedDataPath = dir.Combine($"obj/{CONFIGURATION}/{sdk}/{arch}"),
ArchivePath = dir.Combine($"bin/{CONFIGURATION}/{sdk}/{arch}"),
BuildSettings = new Dictionary<string, string> {
{ "SKIP_INSTALL", "NO" },
{ "BUILD_LIBRARIES_FOR_DISTRIBUTION", "YES" },
},
};
if (platform != null) {
settings.BuildSettings["PLATFORM"] = platform;
}
XCodeBuild(settings);
}
void StripSign(FilePath target)
{
if (!IsRunningOnMac())
throw new InvalidOperationException("strip and codesign are only available on macOS.");
target = MakeAbsolute(target);
var archive = target;
if (target.FullPath.EndsWith(".framework")) {
archive = $"{target}/{target.GetFilenameWithoutExtension()}";
}
// strip anything we can
RunProcess("strip", new ProcessSettings {
Arguments = $"-x -S {archive}",
});
if (DirectoryExists(dir.Combine($"bin/{CONFIGURATION}/{arch}")))
DeleteDirectory(dir.Combine($"bin/{CONFIGURATION}/{arch}"), true);
EnsureDirectoryExists(dir.Combine($"bin/{CONFIGURATION}"));
MoveDirectory(dir.Combine("build"), dir.Combine($"bin/{CONFIGURATION}/{arch}"));
// re-sign with empty
RunProcess("codesign", new ProcessSettings {
Arguments = $"--force --sign - --timestamp=none {target}",
});
}
void RunLipo(DirectoryPath directory, FilePath output, FilePath[] inputs)
{
if (!IsRunningOnMac())
throw new InvalidOperationException("lipo is only available on macOS.");
EnsureDirectoryExists(directory.CombineWithFilePath(output).GetDirectory());
var inputString = string.Join(" ", inputs.Select(i => string.Format("\"{0}\"", i)));
RunProcess("lipo", new ProcessSettings {
Arguments = string.Format("-create -output \"{0}\" {1}", output, inputString),
WorkingDirectory = directory,
});
}
void RunLipo(FilePath output, FilePath[] inputs)
{
if (!IsRunningOnMac())
throw new InvalidOperationException("lipo is only available on macOS.");
var inputString = string.Join(" ", inputs.Select(i => string.Format("\"{0}\"", i)));
RunProcess("lipo", new ProcessSettings {
Arguments = string.Format("-create -output \"{0}\" {1}", output, inputString),
});
}
void CreateFatDylib(DirectoryPath archives)
{
var libName = archives.GetDirectoryName();
var binaries = GetFiles($"{archives}/*.xcarchive/Products/@rpath/{libName}.dylib").ToArray();
RunLipo($"{archives}.dylib", binaries);
StripSign($"{archives}.dylib");
}
void CreateFatFramework(DirectoryPath archives)
{
var libName = archives.GetDirectoryName();
var frameworks = GetDirectories($"{archives}/*.xcarchive/Products/Library/Frameworks/{libName}.framework").ToArray();
SafeCopy(frameworks[0], $"{archives}.framework");
DeleteFile($"{archives}.framework/{libName}");
var binaries = GetFiles($"{archives}/*.xcarchive/Products/Library/Frameworks/{libName}.framework/{libName}").ToArray();
RunLipo($"{archives}.framework/{libName}", binaries);
StripSign($"{archives}.framework");
}
void CreateFatVersionedFramework(DirectoryPath archives)
{
var libName = archives.GetDirectoryName();
var frameworks = GetDirectories($"{archives}/*.xcarchive/Products/Library/Frameworks/{libName}.framework").ToArray();
SafeCopy(frameworks[0], $"{archives}.framework");
DeleteFile($"{archives}.framework/Versions/A/{libName}");
var binaries = GetFiles($"{archives}/*.xcarchive/Products/Library/Frameworks/{libName}.framework/Versions/A/{libName}").ToArray();
RunLipo($"{archives}.framework/Versions/A/{libName}", binaries);
StripSign($"{archives}.framework");
}
void SafeCopy(DirectoryPath src, DirectoryPath dst)
{
EnsureDirectoryExists(dst);
DeleteDirectory(dst, new DeleteDirectorySettings { Recursive = true, Force = true });
RunProcess("cp", $"-R {src} {dst}");
}

2
externals/skia поставляемый

@ -1 +1 @@
Subproject commit 173debd238b1a55ab12f5994c5dc074fd141ccd6
Subproject commit bc345769d2cc7e1dd8e4e603725d41de68043ef5

Двоичные данные
images/forground.png Normal file

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 96 KiB

Просмотреть файл

@ -1,37 +1,39 @@
DirectoryPath ROOT_PATH = MakeAbsolute(Directory("../.."));
DirectoryPath OUTPUT_PATH = MakeAbsolute(ROOT_PATH.Combine("output/native/ios"));
DirectoryPath OUTPUT_PATH = MakeAbsolute(ROOT_PATH.Combine("output/native"));
#load "../../cake/native-shared.cake"
#load "../../cake/xcode.cake"
string VARIANT = BUILD_VARIANT ?? "ios";
Task("libSkiaSharp")
.IsDependentOn("git-sync-deps")
.WithCriteria(IsRunningOnMac())
.Does(() =>
{
Build("iphonesimulator", "i386", "x86");
Build("iphonesimulator", "x86_64", "x64");
Build("iphoneos", "armv7", "arm");
Build("iphoneos", "arm64", "arm64");
if (VARIANT.ToLower() == "ios") {
Build("iphonesimulator", "i386", "x86");
Build("iphonesimulator", "x86_64", "x64");
Build("iphoneos", "armv7", "arm");
Build("iphoneos", "arm64", "arm64");
CopyDirectory(OUTPUT_PATH.Combine("armv7/libSkiaSharp.framework"), OUTPUT_PATH.Combine("libSkiaSharp.framework"));
DeleteFile(OUTPUT_PATH.CombineWithFilePath("libSkiaSharp.framework/libSkiaSharp"));
RunLipo(OUTPUT_PATH, "libSkiaSharp.framework/libSkiaSharp", new [] {
(FilePath) "i386/libSkiaSharp.framework/libSkiaSharp",
(FilePath) "x86_64/libSkiaSharp.framework/libSkiaSharp",
(FilePath) "armv7/libSkiaSharp.framework/libSkiaSharp",
(FilePath) "arm64/libSkiaSharp.framework/libSkiaSharp"
});
CreateFatFramework(OUTPUT_PATH.Combine("ios/libSkiaSharp"));
} else if (VARIANT.ToLower() == "maccatalyst") {
Build("macosx", "x86_64", "x64");
Build("macosx", "arm64", "arm64");
CreateFatVersionedFramework(OUTPUT_PATH.Combine("maccatalyst/libSkiaSharp"));
}
void Build(string sdk, string arch, string skiaArch)
{
if (Skip(arch)) return;
GnNinja($"ios/{arch}", "skia",
GnNinja($"{VARIANT}/{arch}", "skia",
$"target_cpu='{skiaArch}' " +
$"target_os='ios' " +
$"target_os='{VARIANT}' " +
$"skia_use_icu=false " +
$"skia_use_metal=true " +
$"skia_use_metal={(sdk == "macosx" ? "false" : "true")} " +
$"skia_use_piex=true " +
$"skia_use_sfntly=false " +
$"skia_use_system_expat=false " +
@ -39,16 +41,13 @@ Task("libSkiaSharp")
$"skia_use_system_libpng=false " +
$"skia_use_system_libwebp=false " +
$"skia_use_system_zlib=false " +
$"extra_cflags=[ '-DSKIA_C_DLL', '-DHAVE_ARC4RANDOM_BUF', '-mios-version-min=8.0' ] " +
$"extra_ldflags=[ '-Wl,ios_version_min=8.0' ]");
$"extra_cflags=[ '-DSKIA_C_DLL', '-DHAVE_ARC4RANDOM_BUF' ] ");
RunXCodeBuild("libSkiaSharp/libSkiaSharp.xcodeproj", "libSkiaSharp", sdk, arch);
RunXCodeBuild("libSkiaSharp/libSkiaSharp.xcodeproj", "libSkiaSharp", sdk, arch, platform: VARIANT);
var outDir = OUTPUT_PATH.Combine(arch);
EnsureDirectoryExists(outDir);
CopyDirectory($"libSkiaSharp/bin/{CONFIGURATION}/{arch}/{CONFIGURATION}-{sdk}", outDir);
StripSign(outDir.CombineWithFilePath("libSkiaSharp.framework"));
SafeCopy(
$"libSkiaSharp/bin/{CONFIGURATION}/{sdk}/{arch}.xcarchive",
OUTPUT_PATH.Combine($"{VARIANT}/libSkiaSharp/{arch}.xcarchive"));
}
});
@ -56,29 +55,29 @@ Task("libHarfBuzzSharp")
.WithCriteria(IsRunningOnMac())
.Does(() =>
{
Build("iphonesimulator", "i386");
Build("iphonesimulator", "x86_64");
Build("iphoneos", "armv7");
Build("iphoneos", "arm64");
if (VARIANT.ToLower() == "ios") {
Build("iphonesimulator", "i386");
Build("iphonesimulator", "x86_64");
Build("iphoneos", "armv7");
Build("iphoneos", "arm64");
RunLipo(OUTPUT_PATH, "libHarfBuzzSharp.a", new [] {
(FilePath) "i386/libHarfBuzzSharp.a",
(FilePath) "x86_64/libHarfBuzzSharp.a",
(FilePath) "armv7/libHarfBuzzSharp.a",
(FilePath) "arm64/libHarfBuzzSharp.a"
});
CreateFatFramework(OUTPUT_PATH.Combine("ios/libHarfBuzzSharp"));
} else if (VARIANT.ToLower() == "maccatalyst") {
Build("macosx", "x86_64");
Build("macosx", "arm64");
CreateFatVersionedFramework(OUTPUT_PATH.Combine("maccatalyst/libHarfBuzzSharp"));
}
void Build(string sdk, string arch)
{
if (Skip(arch)) return;
RunXCodeBuild("libHarfBuzzSharp/libHarfBuzzSharp.xcodeproj", "libHarfBuzzSharp", sdk, arch);
RunXCodeBuild("libHarfBuzzSharp/libHarfBuzzSharp.xcodeproj", "libHarfBuzzSharp", sdk, arch, platform: VARIANT);
var outDir = OUTPUT_PATH.Combine(arch);
EnsureDirectoryExists(outDir);
CopyDirectory($"libHarfBuzzSharp/bin/{CONFIGURATION}/{arch}/{CONFIGURATION}-{sdk}", outDir);
StripSign(outDir.CombineWithFilePath("libHarfBuzzSharp.a"));
SafeCopy(
$"libHarfBuzzSharp/bin/{CONFIGURATION}/{sdk}/{arch}.xcarchive",
OUTPUT_PATH.Combine($"{VARIANT}/libHarfBuzzSharp/{arch}.xcarchive"));
}
});

Просмотреть файл

@ -7,73 +7,71 @@
objects = {
/* Begin PBXBuildFile section */
34B817C222BD8F6F00508F73 /* hb-subset-cff2.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34B817BB22BD8F6F00508F73 /* hb-subset-cff2.cc */; };
34B817C322BD8F6F00508F73 /* hb-subset-cff-common.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34B817BC22BD8F6F00508F73 /* hb-subset-cff-common.cc */; };
34B817C422BD8F6F00508F73 /* hb-subset-plan.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34B817BD22BD8F6F00508F73 /* hb-subset-plan.cc */; };
34B817C522BD8F6F00508F73 /* hb-ucd.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34B817BE22BD8F6F00508F73 /* hb-ucd.cc */; };
34B817C622BD8F6F00508F73 /* hb-subset.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34B817BF22BD8F6F00508F73 /* hb-subset.cc */; };
34B817C722BD8F6F00508F73 /* hb-subset-input.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34B817C022BD8F6F00508F73 /* hb-subset-input.cc */; };
34B817C822BD8F6F00508F73 /* hb-subset-cff1.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34B817C122BD8F6F00508F73 /* hb-subset-cff1.cc */; };
34C9309E21FA5A77002D729C /* hb-shape-plan.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34C9307121FA5A76002D729C /* hb-shape-plan.cc */; };
34C930A021FA5A77002D729C /* hb-ot-shape-complex-indic-table.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34C9307321FA5A76002D729C /* hb-ot-shape-complex-indic-table.cc */; };
34C930A121FA5A77002D729C /* hb-ot-shape-complex-myanmar.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34C9307421FA5A76002D729C /* hb-ot-shape-complex-myanmar.cc */; };
34C930A221FA5A77002D729C /* hb-ot-map.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34C9307521FA5A76002D729C /* hb-ot-map.cc */; };
34C930A321FA5A77002D729C /* hb-buffer.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34C9307621FA5A76002D729C /* hb-buffer.cc */; };
34C930A421FA5A77002D729C /* hb-aat-layout.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34C9307721FA5A76002D729C /* hb-aat-layout.cc */; };
34C930A521FA5A77002D729C /* hb-ot-color.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34C9307821FA5A76002D729C /* hb-ot-color.cc */; };
34C930A621FA5A77002D729C /* hb-common.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34C9307921FA5A76002D729C /* hb-common.cc */; };
34C930A721FA5A77002D729C /* hb-ot-font.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34C9307A21FA5A76002D729C /* hb-ot-font.cc */; };
34C930A821FA5A77002D729C /* hb-ot-shape-complex-hebrew.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34C9307B21FA5A76002D729C /* hb-ot-shape-complex-hebrew.cc */; };
34C930A921FA5A77002D729C /* hb-ot-cff1-table.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34C9307C21FA5A76002D729C /* hb-ot-cff1-table.cc */; };
34C930AA21FA5A77002D729C /* hb-ot-cff2-table.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34C9307D21FA5A76002D729C /* hb-ot-cff2-table.cc */; };
34C930AB21FA5A77002D729C /* hb-aat-map.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34C9307E21FA5A76002D729C /* hb-aat-map.cc */; };
34C930AC21FA5A77002D729C /* hb-ot-shape-complex-khmer.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34C9307F21FA5A76002D729C /* hb-ot-shape-complex-khmer.cc */; };
34C930AD21FA5A77002D729C /* hb-ot-shape-complex-default.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34C9308021FA5A76002D729C /* hb-ot-shape-complex-default.cc */; };
34C930AE21FA5A77002D729C /* hb-ot-shape-complex-use.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34C9308121FA5A76002D729C /* hb-ot-shape-complex-use.cc */; };
34C930AF21FA5A77002D729C /* hb-shaper.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34C9308221FA5A76002D729C /* hb-shaper.cc */; };
34C930B021FA5A77002D729C /* hb-buffer-serialize.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34C9308321FA5A76002D729C /* hb-buffer-serialize.cc */; };
34C930B121FA5A77002D729C /* hb-ot-shape-fallback.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34C9308421FA5A76002D729C /* hb-ot-shape-fallback.cc */; };
34C930B221FA5A77002D729C /* hb-blob.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34C9308521FA5A76002D729C /* hb-blob.cc */; };
34C930B321FA5A77002D729C /* hb-ot-layout.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34C9308621FA5A76002D729C /* hb-ot-layout.cc */; };
34C930B421FA5A77002D729C /* hb-ot-face.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34C9308721FA5A76002D729C /* hb-ot-face.cc */; };
34C930B521FA5A77002D729C /* hb-ot-shape-complex-indic.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34C9308821FA5A76002D729C /* hb-ot-shape-complex-indic.cc */; };
34C930B621FA5A77002D729C /* hb-ot-shape-complex-thai.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34C9308921FA5A76002D729C /* hb-ot-shape-complex-thai.cc */; };
34C930B721FA5A77002D729C /* hb-ot-shape-normalize.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34C9308A21FA5A76002D729C /* hb-ot-shape-normalize.cc */; };
34C930B821FA5A77002D729C /* hb-ot-shape-complex-vowel-constraints.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34C9308B21FA5A76002D729C /* hb-ot-shape-complex-vowel-constraints.cc */; };
34C930B921FA5A77002D729C /* hb-ot-shape-complex-arabic.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34C9308C21FA5A76002D729C /* hb-ot-shape-complex-arabic.cc */; };
34C930BA21FA5A77002D729C /* hb-static.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34C9308D21FA5A76002D729C /* hb-static.cc */; };
34C930BB21FA5A77002D729C /* hb-unicode.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34C9308E21FA5A76002D729C /* hb-unicode.cc */; };
34C930BC21FA5A77002D729C /* hb-ot-name.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34C9308F21FA5A77002D729C /* hb-ot-name.cc */; };
34C930BD21FA5A77002D729C /* hb-ot-shape.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34C9309021FA5A77002D729C /* hb-ot-shape.cc */; };
34C930BE21FA5A77002D729C /* hb-ot-shape-complex-hangul.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34C9309121FA5A77002D729C /* hb-ot-shape-complex-hangul.cc */; };
34C930BF21FA5A77002D729C /* hb-face.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34C9309221FA5A77002D729C /* hb-face.cc */; };
34C930C021FA5A77002D729C /* hb-ot-math.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34C9309321FA5A77002D729C /* hb-ot-math.cc */; };
34C930C121FA5A77002D729C /* hb-map.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34C9309421FA5A77002D729C /* hb-map.cc */; };
34C930C221FA5A77002D729C /* hb-font.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34C9309521FA5A77002D729C /* hb-font.cc */; };
34C930C321FA5A77002D729C /* hb-set.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34C9309621FA5A77002D729C /* hb-set.cc */; };
34C930C521FA5A77002D729C /* hb-ot-shape-complex-use-table.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34C9309821FA5A77002D729C /* hb-ot-shape-complex-use-table.cc */; };
34C930C621FA5A77002D729C /* hb-ot-tag.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34C9309921FA5A77002D729C /* hb-ot-tag.cc */; };
34C930C721FA5A77002D729C /* hb-shape.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34C9309A21FA5A77002D729C /* hb-shape.cc */; };
34C930C821FA5A77002D729C /* hb-warning.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34C9309B21FA5A77002D729C /* hb-warning.cc */; };
34C930C921FA5A77002D729C /* hb-fallback-shape.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34C9309C21FA5A77002D729C /* hb-fallback-shape.cc */; };
34C930CA21FA5A77002D729C /* hb-ot-var.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34C9309D21FA5A77002D729C /* hb-ot-var.cc */; };
34F68011233ED0F70091C30D /* hb-ot-meta.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34F6800B233ED0F70091C30D /* hb-ot-meta.cc */; };
34F68012233ED0F70091C30D /* hb-ot-metrics.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34F68010233ED0F70091C30D /* hb-ot-metrics.cc */; };
345637C92614B133007E2D90 /* libHarfBuzzSharp.h in Headers */ = {isa = PBXBuildFile; fileRef = 345637C72614B133007E2D90 /* libHarfBuzzSharp.h */; settings = {ATTRIBUTES = (Public, ); }; };
345637CE2614B15E007E2D90 /* hb-aat-layout.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34C9307721FA5A76002D729C /* hb-aat-layout.cc */; };
345637CF2614B15E007E2D90 /* hb-aat-map.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34C9307E21FA5A76002D729C /* hb-aat-map.cc */; };
345637D02614B15E007E2D90 /* hb-blob.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34C9308521FA5A76002D729C /* hb-blob.cc */; };
345637D12614B15E007E2D90 /* hb-buffer-serialize.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34C9308321FA5A76002D729C /* hb-buffer-serialize.cc */; };
345637D22614B15E007E2D90 /* hb-buffer.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34C9307621FA5A76002D729C /* hb-buffer.cc */; };
345637D32614B15E007E2D90 /* hb-common.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34C9307921FA5A76002D729C /* hb-common.cc */; };
345637D42614B15E007E2D90 /* hb-face.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34C9309221FA5A77002D729C /* hb-face.cc */; };
345637D52614B15E007E2D90 /* hb-fallback-shape.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34C9309C21FA5A77002D729C /* hb-fallback-shape.cc */; };
345637D62614B15E007E2D90 /* hb-font.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34C9309521FA5A77002D729C /* hb-font.cc */; };
345637D72614B15E007E2D90 /* hb-map.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34C9309421FA5A77002D729C /* hb-map.cc */; };
345637D82614B15E007E2D90 /* hb-ot-cff1-table.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34C9307C21FA5A76002D729C /* hb-ot-cff1-table.cc */; };
345637D92614B15E007E2D90 /* hb-ot-cff2-table.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34C9307D21FA5A76002D729C /* hb-ot-cff2-table.cc */; };
345637DA2614B15E007E2D90 /* hb-ot-color.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34C9307821FA5A76002D729C /* hb-ot-color.cc */; };
345637DB2614B15E007E2D90 /* hb-ot-face.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34C9308721FA5A76002D729C /* hb-ot-face.cc */; };
345637DC2614B15E007E2D90 /* hb-ot-font.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34C9307A21FA5A76002D729C /* hb-ot-font.cc */; };
345637DD2614B15E007E2D90 /* hb-ot-layout.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34C9308621FA5A76002D729C /* hb-ot-layout.cc */; };
345637DE2614B15E007E2D90 /* hb-ot-map.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34C9307521FA5A76002D729C /* hb-ot-map.cc */; };
345637DF2614B15E007E2D90 /* hb-ot-math.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34C9309321FA5A77002D729C /* hb-ot-math.cc */; };
345637E02614B15E007E2D90 /* hb-ot-meta-table.hh in Sources */ = {isa = PBXBuildFile; fileRef = 34F6800D233ED0F70091C30D /* hb-ot-meta-table.hh */; };
345637E12614B15E007E2D90 /* hb-ot-meta.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34F6800B233ED0F70091C30D /* hb-ot-meta.cc */; };
345637E22614B15E007E2D90 /* hb-ot-meta.h in Sources */ = {isa = PBXBuildFile; fileRef = 34F6800E233ED0F70091C30D /* hb-ot-meta.h */; };
345637E32614B15E007E2D90 /* hb-ot-metrics.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34F68010233ED0F70091C30D /* hb-ot-metrics.cc */; };
345637E42614B15E007E2D90 /* hb-ot-metrics.h in Sources */ = {isa = PBXBuildFile; fileRef = 34F6800F233ED0F70091C30D /* hb-ot-metrics.h */; };
345637E52614B15E007E2D90 /* hb-ot-metrics.hh in Sources */ = {isa = PBXBuildFile; fileRef = 34F6800C233ED0F70091C30D /* hb-ot-metrics.hh */; };
345637E62614B15E007E2D90 /* hb-ot-name.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34C9308F21FA5A77002D729C /* hb-ot-name.cc */; };
345637E72614B15E007E2D90 /* hb-ot-shape-complex-arabic.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34C9308C21FA5A76002D729C /* hb-ot-shape-complex-arabic.cc */; };
345637E82614B15E007E2D90 /* hb-ot-shape-complex-default.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34C9308021FA5A76002D729C /* hb-ot-shape-complex-default.cc */; };
345637E92614B15E007E2D90 /* hb-ot-shape-complex-hangul.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34C9309121FA5A77002D729C /* hb-ot-shape-complex-hangul.cc */; };
345637EA2614B15E007E2D90 /* hb-ot-shape-complex-hebrew.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34C9307B21FA5A76002D729C /* hb-ot-shape-complex-hebrew.cc */; };
345637EB2614B15E007E2D90 /* hb-ot-shape-complex-indic-table.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34C9307321FA5A76002D729C /* hb-ot-shape-complex-indic-table.cc */; };
345637EC2614B15E007E2D90 /* hb-ot-shape-complex-indic.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34C9308821FA5A76002D729C /* hb-ot-shape-complex-indic.cc */; };
345637ED2614B15E007E2D90 /* hb-ot-shape-complex-khmer.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34C9307F21FA5A76002D729C /* hb-ot-shape-complex-khmer.cc */; };
345637EE2614B15E007E2D90 /* hb-ot-shape-complex-myanmar.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34C9307421FA5A76002D729C /* hb-ot-shape-complex-myanmar.cc */; };
345637EF2614B15E007E2D90 /* hb-ot-shape-complex-thai.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34C9308921FA5A76002D729C /* hb-ot-shape-complex-thai.cc */; };
345637F02614B15E007E2D90 /* hb-ot-shape-complex-use-table.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34C9309821FA5A77002D729C /* hb-ot-shape-complex-use-table.cc */; };
345637F12614B15E007E2D90 /* hb-ot-shape-complex-use.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34C9308121FA5A76002D729C /* hb-ot-shape-complex-use.cc */; };
345637F22614B15E007E2D90 /* hb-ot-shape-complex-vowel-constraints.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34C9308B21FA5A76002D729C /* hb-ot-shape-complex-vowel-constraints.cc */; };
345637F32614B15E007E2D90 /* hb-ot-shape-fallback.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34C9308421FA5A76002D729C /* hb-ot-shape-fallback.cc */; };
345637F42614B15E007E2D90 /* hb-ot-shape-normalize.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34C9308A21FA5A76002D729C /* hb-ot-shape-normalize.cc */; };
345637F52614B15E007E2D90 /* hb-ot-shape.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34C9309021FA5A77002D729C /* hb-ot-shape.cc */; };
345637F62614B15E007E2D90 /* hb-ot-tag.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34C9309921FA5A77002D729C /* hb-ot-tag.cc */; };
345637F72614B15E007E2D90 /* hb-ot-var.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34C9309D21FA5A77002D729C /* hb-ot-var.cc */; };
345637F82614B15E007E2D90 /* hb-set.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34C9309621FA5A77002D729C /* hb-set.cc */; };
345637F92614B15E007E2D90 /* hb-shape-plan.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34C9307121FA5A76002D729C /* hb-shape-plan.cc */; };
345637FA2614B15E007E2D90 /* hb-shape.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34C9309A21FA5A77002D729C /* hb-shape.cc */; };
345637FB2614B15E007E2D90 /* hb-shaper.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34C9308221FA5A76002D729C /* hb-shaper.cc */; };
345637FC2614B15E007E2D90 /* hb-static.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34C9308D21FA5A76002D729C /* hb-static.cc */; };
345637FD2614B15E007E2D90 /* hb-subset-cff-common.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34B817BC22BD8F6F00508F73 /* hb-subset-cff-common.cc */; };
345637FE2614B15E007E2D90 /* hb-subset-cff1.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34B817C122BD8F6F00508F73 /* hb-subset-cff1.cc */; };
345637FF2614B15E007E2D90 /* hb-subset-cff2.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34B817BB22BD8F6F00508F73 /* hb-subset-cff2.cc */; };
345638002614B15E007E2D90 /* hb-subset-input.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34B817C022BD8F6F00508F73 /* hb-subset-input.cc */; };
345638012614B15E007E2D90 /* hb-subset-plan.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34B817BD22BD8F6F00508F73 /* hb-subset-plan.cc */; };
345638022614B15E007E2D90 /* hb-subset.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34B817BF22BD8F6F00508F73 /* hb-subset.cc */; };
345638032614B15E007E2D90 /* hb-ucd.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34B817BE22BD8F6F00508F73 /* hb-ucd.cc */; };
345638042614B15E007E2D90 /* hb-unicode.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34C9308E21FA5A76002D729C /* hb-unicode.cc */; };
345638052614B15E007E2D90 /* hb-warning.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34C9309B21FA5A77002D729C /* hb-warning.cc */; };
345638062614B15E007E2D90 /* config.h in Sources */ = {isa = PBXBuildFile; fileRef = 34C92F8D21FA593F002D729C /* config.h */; };
345638072614B15E007E2D90 /* libHarfBuzzSharp.h in Sources */ = {isa = PBXBuildFile; fileRef = 345637C72614B133007E2D90 /* libHarfBuzzSharp.h */; };
/* End PBXBuildFile section */
/* Begin PBXCopyFilesBuildPhase section */
34D723401EB385E800E6210E /* CopyFiles */ = {
isa = PBXCopyFilesBuildPhase;
buildActionMask = 2147483647;
dstPath = "include/$(PRODUCT_NAME)";
dstSubfolderSpec = 16;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXCopyFilesBuildPhase section */
/* Begin PBXFileReference section */
345637C52614B133007E2D90 /* libHarfBuzzSharp.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = libHarfBuzzSharp.framework; sourceTree = BUILT_PRODUCTS_DIR; };
345637C72614B133007E2D90 /* libHarfBuzzSharp.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = libHarfBuzzSharp.h; sourceTree = "<group>"; };
345637C82614B133007E2D90 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
34B817BB22BD8F6F00508F73 /* hb-subset-cff2.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = "hb-subset-cff2.cc"; path = "../../../externals/skia/third_party/externals/harfbuzz/src/hb-subset-cff2.cc"; sourceTree = "<group>"; };
34B817BC22BD8F6F00508F73 /* hb-subset-cff-common.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = "hb-subset-cff-common.cc"; path = "../../../externals/skia/third_party/externals/harfbuzz/src/hb-subset-cff-common.cc"; sourceTree = "<group>"; };
34B817BD22BD8F6F00508F73 /* hb-subset-plan.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = "hb-subset-plan.cc"; path = "../../../externals/skia/third_party/externals/harfbuzz/src/hb-subset-plan.cc"; sourceTree = "<group>"; };
@ -125,7 +123,6 @@
34C9309B21FA5A77002D729C /* hb-warning.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = "hb-warning.cc"; path = "../../../externals/skia/third_party/externals/harfbuzz/src/hb-warning.cc"; sourceTree = "<group>"; };
34C9309C21FA5A77002D729C /* hb-fallback-shape.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = "hb-fallback-shape.cc"; path = "../../../externals/skia/third_party/externals/harfbuzz/src/hb-fallback-shape.cc"; sourceTree = "<group>"; };
34C9309D21FA5A77002D729C /* hb-ot-var.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = "hb-ot-var.cc"; path = "../../../externals/skia/third_party/externals/harfbuzz/src/hb-ot-var.cc"; sourceTree = "<group>"; };
34D723421EB385E900E6210E /* libHarfBuzzSharp.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libHarfBuzzSharp.a; sourceTree = BUILT_PRODUCTS_DIR; };
34F6800B233ED0F70091C30D /* hb-ot-meta.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = "hb-ot-meta.cc"; path = "../../../externals/skia/third_party/externals/harfbuzz/src/hb-ot-meta.cc"; sourceTree = "<group>"; };
34F6800C233ED0F70091C30D /* hb-ot-metrics.hh */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = "hb-ot-metrics.hh"; path = "../../../externals/skia/third_party/externals/harfbuzz/src/hb-ot-metrics.hh"; sourceTree = "<group>"; };
34F6800D233ED0F70091C30D /* hb-ot-meta-table.hh */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = "hb-ot-meta-table.hh"; path = "../../../externals/skia/third_party/externals/harfbuzz/src/hb-ot-meta-table.hh"; sourceTree = "<group>"; };
@ -135,7 +132,7 @@
/* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */
34D7233F1EB385E800E6210E /* Frameworks */ = {
345637C22614B133007E2D90 /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
@ -145,6 +142,15 @@
/* End PBXFrameworksBuildPhase section */
/* Begin PBXGroup section */
345637C62614B133007E2D90 /* libHarfBuzzSharp */ = {
isa = PBXGroup;
children = (
345637C72614B133007E2D90 /* libHarfBuzzSharp.h */,
345637C82614B133007E2D90 /* Info.plist */,
);
path = libHarfBuzzSharp;
sourceTree = "<group>";
};
34C9307021FA5A6D002D729C /* src */ = {
isa = PBXGroup;
children = (
@ -213,6 +219,7 @@
children = (
34C9307021FA5A6D002D729C /* src */,
34C92F8D21FA593F002D729C /* config.h */,
345637C62614B133007E2D90 /* libHarfBuzzSharp */,
34D723431EB385E900E6210E /* Products */,
);
sourceTree = "<group>";
@ -220,21 +227,33 @@
34D723431EB385E900E6210E /* Products */ = {
isa = PBXGroup;
children = (
34D723421EB385E900E6210E /* libHarfBuzzSharp.a */,
345637C52614B133007E2D90 /* libHarfBuzzSharp.framework */,
);
name = Products;
sourceTree = "<group>";
};
/* End PBXGroup section */
/* Begin PBXHeadersBuildPhase section */
345637C02614B133007E2D90 /* Headers */ = {
isa = PBXHeadersBuildPhase;
buildActionMask = 2147483647;
files = (
345637C92614B133007E2D90 /* libHarfBuzzSharp.h in Headers */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXHeadersBuildPhase section */
/* Begin PBXNativeTarget section */
34D723411EB385E800E6210E /* libHarfBuzzSharp */ = {
345637C42614B133007E2D90 /* libHarfBuzzSharp */ = {
isa = PBXNativeTarget;
buildConfigurationList = 34D7234B1EB385E900E6210E /* Build configuration list for PBXNativeTarget "libHarfBuzzSharp" */;
buildConfigurationList = 345637CA2614B133007E2D90 /* Build configuration list for PBXNativeTarget "libHarfBuzzSharp" */;
buildPhases = (
34D7233E1EB385E800E6210E /* Sources */,
34D7233F1EB385E800E6210E /* Frameworks */,
34D723401EB385E800E6210E /* CopyFiles */,
345637C02614B133007E2D90 /* Headers */,
345637C12614B133007E2D90 /* Sources */,
345637C22614B133007E2D90 /* Frameworks */,
345637C32614B133007E2D90 /* Resources */,
);
buildRules = (
);
@ -242,8 +261,8 @@
);
name = libHarfBuzzSharp;
productName = libHarfBuzzSharp;
productReference = 34D723421EB385E900E6210E /* libHarfBuzzSharp.a */;
productType = "com.apple.product-type.library.static";
productReference = 345637C52614B133007E2D90 /* libHarfBuzzSharp.framework */;
productType = "com.apple.product-type.framework";
};
/* End PBXNativeTarget section */
@ -251,90 +270,106 @@
34D7233A1EB385E800E6210E /* Project object */ = {
isa = PBXProject;
attributes = {
LastUpgradeCheck = 1010;
LastUpgradeCheck = 1240;
ORGANIZATIONNAME = "Matthew Leibowitz";
TargetAttributes = {
34D723411EB385E800E6210E = {
CreatedOnToolsVersion = 8.0;
345637C42614B133007E2D90 = {
CreatedOnToolsVersion = 12.4;
ProvisioningStyle = Automatic;
};
};
};
buildConfigurationList = 34D7233D1EB385E800E6210E /* Build configuration list for PBXProject "libHarfBuzzSharp" */;
compatibilityVersion = "Xcode 3.2";
developmentRegion = English;
developmentRegion = en;
hasScannedForEncodings = 0;
knownRegions = (
English,
en,
Base,
);
mainGroup = 34D723391EB385E800E6210E;
productRefGroup = 34D723431EB385E900E6210E /* Products */;
projectDirPath = "";
projectRoot = "";
targets = (
34D723411EB385E800E6210E /* libHarfBuzzSharp */,
345637C42614B133007E2D90 /* libHarfBuzzSharp */,
);
};
/* End PBXProject section */
/* Begin PBXResourcesBuildPhase section */
345637C32614B133007E2D90 /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXResourcesBuildPhase section */
/* Begin PBXSourcesBuildPhase section */
34D7233E1EB385E800E6210E /* Sources */ = {
345637C12614B133007E2D90 /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
34C930C521FA5A77002D729C /* hb-ot-shape-complex-use-table.cc in Sources */,
34C930B421FA5A77002D729C /* hb-ot-face.cc in Sources */,
34C930A521FA5A77002D729C /* hb-ot-color.cc in Sources */,
34C930AD21FA5A77002D729C /* hb-ot-shape-complex-default.cc in Sources */,
34C930AE21FA5A77002D729C /* hb-ot-shape-complex-use.cc in Sources */,
34C930B621FA5A77002D729C /* hb-ot-shape-complex-thai.cc in Sources */,
34C930A621FA5A77002D729C /* hb-common.cc in Sources */,
34C9309E21FA5A77002D729C /* hb-shape-plan.cc in Sources */,
34B817C422BD8F6F00508F73 /* hb-subset-plan.cc in Sources */,
34B817C222BD8F6F00508F73 /* hb-subset-cff2.cc in Sources */,
34C930A121FA5A77002D729C /* hb-ot-shape-complex-myanmar.cc in Sources */,
34B817C322BD8F6F00508F73 /* hb-subset-cff-common.cc in Sources */,
34C930BC21FA5A77002D729C /* hb-ot-name.cc in Sources */,
34C930B721FA5A77002D729C /* hb-ot-shape-normalize.cc in Sources */,
34C930A221FA5A77002D729C /* hb-ot-map.cc in Sources */,
34C930B521FA5A77002D729C /* hb-ot-shape-complex-indic.cc in Sources */,
34C930C221FA5A77002D729C /* hb-font.cc in Sources */,
34B817C522BD8F6F00508F73 /* hb-ucd.cc in Sources */,
34F68012233ED0F70091C30D /* hb-ot-metrics.cc in Sources */,
34C930C321FA5A77002D729C /* hb-set.cc in Sources */,
34C930A021FA5A77002D729C /* hb-ot-shape-complex-indic-table.cc in Sources */,
34C930AA21FA5A77002D729C /* hb-ot-cff2-table.cc in Sources */,
34C930B021FA5A77002D729C /* hb-buffer-serialize.cc in Sources */,
34C930CA21FA5A77002D729C /* hb-ot-var.cc in Sources */,
34C930C821FA5A77002D729C /* hb-warning.cc in Sources */,
34C930A921FA5A77002D729C /* hb-ot-cff1-table.cc in Sources */,
34B817C822BD8F6F00508F73 /* hb-subset-cff1.cc in Sources */,
34C930B321FA5A77002D729C /* hb-ot-layout.cc in Sources */,
34C930A821FA5A77002D729C /* hb-ot-shape-complex-hebrew.cc in Sources */,
34F68011233ED0F70091C30D /* hb-ot-meta.cc in Sources */,
34C930AF21FA5A77002D729C /* hb-shaper.cc in Sources */,
34C930A721FA5A77002D729C /* hb-ot-font.cc in Sources */,
34B817C622BD8F6F00508F73 /* hb-subset.cc in Sources */,
34C930A321FA5A77002D729C /* hb-buffer.cc in Sources */,
34C930C621FA5A77002D729C /* hb-ot-tag.cc in Sources */,
34C930C021FA5A77002D729C /* hb-ot-math.cc in Sources */,
34C930BF21FA5A77002D729C /* hb-face.cc in Sources */,
34C930B921FA5A77002D729C /* hb-ot-shape-complex-arabic.cc in Sources */,
34C930B121FA5A77002D729C /* hb-ot-shape-fallback.cc in Sources */,
34B817C722BD8F6F00508F73 /* hb-subset-input.cc in Sources */,
34C930C121FA5A77002D729C /* hb-map.cc in Sources */,
34C930BE21FA5A77002D729C /* hb-ot-shape-complex-hangul.cc in Sources */,
34C930C921FA5A77002D729C /* hb-fallback-shape.cc in Sources */,
34C930B821FA5A77002D729C /* hb-ot-shape-complex-vowel-constraints.cc in Sources */,
34C930B221FA5A77002D729C /* hb-blob.cc in Sources */,
34C930BD21FA5A77002D729C /* hb-ot-shape.cc in Sources */,
34C930BB21FA5A77002D729C /* hb-unicode.cc in Sources */,
34C930C721FA5A77002D729C /* hb-shape.cc in Sources */,
34C930BA21FA5A77002D729C /* hb-static.cc in Sources */,
34C930AC21FA5A77002D729C /* hb-ot-shape-complex-khmer.cc in Sources */,
34C930A421FA5A77002D729C /* hb-aat-layout.cc in Sources */,
34C930AB21FA5A77002D729C /* hb-aat-map.cc in Sources */,
345637CE2614B15E007E2D90 /* hb-aat-layout.cc in Sources */,
345637CF2614B15E007E2D90 /* hb-aat-map.cc in Sources */,
345637D02614B15E007E2D90 /* hb-blob.cc in Sources */,
345637D12614B15E007E2D90 /* hb-buffer-serialize.cc in Sources */,
345637D22614B15E007E2D90 /* hb-buffer.cc in Sources */,
345637D32614B15E007E2D90 /* hb-common.cc in Sources */,
345637D42614B15E007E2D90 /* hb-face.cc in Sources */,
345637D52614B15E007E2D90 /* hb-fallback-shape.cc in Sources */,
345637D62614B15E007E2D90 /* hb-font.cc in Sources */,
345637D72614B15E007E2D90 /* hb-map.cc in Sources */,
345637D82614B15E007E2D90 /* hb-ot-cff1-table.cc in Sources */,
345637D92614B15E007E2D90 /* hb-ot-cff2-table.cc in Sources */,
345637DA2614B15E007E2D90 /* hb-ot-color.cc in Sources */,
345637DB2614B15E007E2D90 /* hb-ot-face.cc in Sources */,
345637DC2614B15E007E2D90 /* hb-ot-font.cc in Sources */,
345637DD2614B15E007E2D90 /* hb-ot-layout.cc in Sources */,
345637DE2614B15E007E2D90 /* hb-ot-map.cc in Sources */,
345637DF2614B15E007E2D90 /* hb-ot-math.cc in Sources */,
345637E02614B15E007E2D90 /* hb-ot-meta-table.hh in Sources */,
345637E12614B15E007E2D90 /* hb-ot-meta.cc in Sources */,
345637E22614B15E007E2D90 /* hb-ot-meta.h in Sources */,
345637E32614B15E007E2D90 /* hb-ot-metrics.cc in Sources */,
345637E42614B15E007E2D90 /* hb-ot-metrics.h in Sources */,
345637E52614B15E007E2D90 /* hb-ot-metrics.hh in Sources */,
345637E62614B15E007E2D90 /* hb-ot-name.cc in Sources */,
345637E72614B15E007E2D90 /* hb-ot-shape-complex-arabic.cc in Sources */,
345637E82614B15E007E2D90 /* hb-ot-shape-complex-default.cc in Sources */,
345637E92614B15E007E2D90 /* hb-ot-shape-complex-hangul.cc in Sources */,
345637EA2614B15E007E2D90 /* hb-ot-shape-complex-hebrew.cc in Sources */,
345637EB2614B15E007E2D90 /* hb-ot-shape-complex-indic-table.cc in Sources */,
345637EC2614B15E007E2D90 /* hb-ot-shape-complex-indic.cc in Sources */,
345637ED2614B15E007E2D90 /* hb-ot-shape-complex-khmer.cc in Sources */,
345637EE2614B15E007E2D90 /* hb-ot-shape-complex-myanmar.cc in Sources */,
345637EF2614B15E007E2D90 /* hb-ot-shape-complex-thai.cc in Sources */,
345637F02614B15E007E2D90 /* hb-ot-shape-complex-use-table.cc in Sources */,
345637F12614B15E007E2D90 /* hb-ot-shape-complex-use.cc in Sources */,
345637F22614B15E007E2D90 /* hb-ot-shape-complex-vowel-constraints.cc in Sources */,
345637F32614B15E007E2D90 /* hb-ot-shape-fallback.cc in Sources */,
345637F42614B15E007E2D90 /* hb-ot-shape-normalize.cc in Sources */,
345637F52614B15E007E2D90 /* hb-ot-shape.cc in Sources */,
345637F62614B15E007E2D90 /* hb-ot-tag.cc in Sources */,
345637F72614B15E007E2D90 /* hb-ot-var.cc in Sources */,
345637F82614B15E007E2D90 /* hb-set.cc in Sources */,
345637F92614B15E007E2D90 /* hb-shape-plan.cc in Sources */,
345637FA2614B15E007E2D90 /* hb-shape.cc in Sources */,
345637FB2614B15E007E2D90 /* hb-shaper.cc in Sources */,
345637FC2614B15E007E2D90 /* hb-static.cc in Sources */,
345637FD2614B15E007E2D90 /* hb-subset-cff-common.cc in Sources */,
345637FE2614B15E007E2D90 /* hb-subset-cff1.cc in Sources */,
345637FF2614B15E007E2D90 /* hb-subset-cff2.cc in Sources */,
345638002614B15E007E2D90 /* hb-subset-input.cc in Sources */,
345638012614B15E007E2D90 /* hb-subset-plan.cc in Sources */,
345638022614B15E007E2D90 /* hb-subset.cc in Sources */,
345638032614B15E007E2D90 /* hb-ucd.cc in Sources */,
345638042614B15E007E2D90 /* hb-unicode.cc in Sources */,
345638052614B15E007E2D90 /* hb-warning.cc in Sources */,
345638062614B15E007E2D90 /* config.h in Sources */,
345638072614B15E007E2D90 /* libHarfBuzzSharp.h in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@ -365,15 +400,16 @@
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
CLANG_WARN_STRICT_PROTOTYPES = YES;
CLANG_WARN_SUSPICIOUS_MOVE = YES;
CLANG_WARN_SUSPICIOUS_MOVES = YES;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
COPY_PHASE_STRIP = NO;
CURRENT_PROJECT_VERSION = 1;
DEBUG_INFORMATION_FORMAT = dwarf;
ENABLE_BITCODE = NO;
ENABLE_STRICT_OBJC_MSGSEND = YES;
ENABLE_TESTABILITY = YES;
GCC_C_LANGUAGE_STANDARD = gnu99;
@ -394,7 +430,12 @@
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
MTL_ENABLE_DEBUG_INFO = YES;
ONLY_ACTIVE_ARCH = YES;
OTHER_LDFLAGS = "-all_load";
SDKROOT = iphoneos;
PLATFORM = ios;
TARGETED_DEVICE_FAMILY = "1,2";
VERSIONING_SYSTEM = "apple-generic";
VERSION_INFO_PREFIX = "";
};
name = Debug;
};
@ -422,15 +463,16 @@
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
CLANG_WARN_STRICT_PROTOTYPES = YES;
CLANG_WARN_SUSPICIOUS_MOVE = YES;
CLANG_WARN_SUSPICIOUS_MOVES = YES;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
COPY_PHASE_STRIP = NO;
CURRENT_PROJECT_VERSION = 1;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
ENABLE_BITCODE = NO;
ENABLE_NS_ASSERTIONS = NO;
ENABLE_STRICT_OBJC_MSGSEND = YES;
GCC_C_LANGUAGE_STANDARD = gnu99;
@ -447,42 +489,86 @@
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
MTL_ENABLE_DEBUG_INFO = NO;
OTHER_LDFLAGS = "-all_load";
SDKROOT = iphoneos;
PLATFORM = ios;
VALIDATE_PRODUCT = YES;
TARGETED_DEVICE_FAMILY = "1,2";
VERSIONING_SYSTEM = "apple-generic";
VERSION_INFO_PREFIX = "";
};
name = Release;
};
34D7234C1EB385E900E6210E /* Debug */ = {
345637CB2614B133007E2D90 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
EXECUTABLE_PREFIX = "";
GCC_WARN_64_TO_32_BIT_CONVERSION = NO;
DEAD_CODE_STRIPPING = YES;
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
CLANG_ENABLE_OBJC_WEAK = YES;
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
DEFINES_MODULE = YES;
DYLIB_COMPATIBILITY_VERSION = 1;
DYLIB_CURRENT_VERSION = 1;
DYLIB_INSTALL_NAME_BASE = "@rpath";
INFOPLIST_FILE = libHarfBuzzSharp/Info.plist;
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
"IPHONEOS_DEPLOYMENT_TARGET[sdk=macosx*]" = 13.0;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
PRODUCT_BUNDLE_IDENTIFIER = com.microsoft.libHarfBuzzSharp;
PRODUCT_NAME = "$(TARGET_NAME)";
SKIP_INSTALL = YES;
WARNING_CFLAGS = (
"-Wno-comma",
"-Wno-conditional-uninitialized",
"-Wno-documentation",
);
SUPPORTS_MACCATALYST = YES;
};
name = Debug;
};
34D7234D1EB385E900E6210E /* Release */ = {
345637CC2614B133007E2D90 /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
EXECUTABLE_PREFIX = "";
GCC_WARN_64_TO_32_BIT_CONVERSION = NO;
DEAD_CODE_STRIPPING = YES;
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
CLANG_ENABLE_OBJC_WEAK = YES;
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
DEFINES_MODULE = YES;
DYLIB_COMPATIBILITY_VERSION = 1;
DYLIB_CURRENT_VERSION = 1;
DYLIB_INSTALL_NAME_BASE = "@rpath";
INFOPLIST_FILE = libHarfBuzzSharp/Info.plist;
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
"IPHONEOS_DEPLOYMENT_TARGET[sdk=macosx*]" = 13.0;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
PRODUCT_BUNDLE_IDENTIFIER = com.microsoft.libHarfBuzzSharp;
PRODUCT_NAME = "$(TARGET_NAME)";
SKIP_INSTALL = YES;
WARNING_CFLAGS = (
"-Wno-comma",
"-Wno-conditional-uninitialized",
"-Wno-documentation",
);
SUPPORTS_MACCATALYST = YES;
};
name = Release;
};
/* End XCBuildConfiguration section */
/* Begin XCConfigurationList section */
345637CA2614B133007E2D90 /* Build configuration list for PBXNativeTarget "libHarfBuzzSharp" */ = {
isa = XCConfigurationList;
buildConfigurations = (
345637CB2614B133007E2D90 /* Debug */,
345637CC2614B133007E2D90 /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
34D7233D1EB385E800E6210E /* Build configuration list for PBXProject "libHarfBuzzSharp" */ = {
isa = XCConfigurationList;
buildConfigurations = (
@ -492,15 +578,6 @@
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
34D7234B1EB385E900E6210E /* Build configuration list for PBXNativeTarget "libHarfBuzzSharp" */ = {
isa = XCConfigurationList;
buildConfigurations = (
34D7234C1EB385E900E6210E /* Debug */,
34D7234D1EB385E900E6210E /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
/* End XCConfigurationList section */
};
rootObject = 34D7233A1EB385E800E6210E /* Project object */;

Просмотреть файл

@ -0,0 +1,22 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>$(DEVELOPMENT_LANGUAGE)</string>
<key>CFBundleExecutable</key>
<string>$(EXECUTABLE_NAME)</string>
<key>CFBundleIdentifier</key>
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>$(PRODUCT_NAME)</string>
<key>CFBundlePackageType</key>
<string>$(PRODUCT_BUNDLE_PACKAGE_TYPE)</string>
<key>CFBundleShortVersionString</key>
<string>1.0</string>
<key>CFBundleVersion</key>
<string>$(CURRENT_PROJECT_VERSION)</string>
</dict>
</plist>

Просмотреть файл

@ -0,0 +1 @@

Просмотреть файл

@ -293,16 +293,21 @@
GCC_OPTIMIZATION_LEVEL = 0;
GCC_PREPROCESSOR_DEFINITIONS = (
"SK_ASSUME_GL_ES=1",
SK_GAMMA_APPLY_TO_A8,
"SKIA_IMPLEMENTATION=1",
SKIA_C_DLL,
GR_OP_ALLOCATE_USE_NEW,
SK_CODEC_DECODES_JPEG,
SK_CODEC_DECODES_PNG,
SK_CODEC_DECODES_RAW,
SK_CODEC_DECODES_WEBP,
SK_ENCODE_JPEG,
SK_ENCODE_PNG,
SK_ENCODE_WEBP,
SK_GAMMA_APPLY_TO_A8,
SK_GL,
SK_SUPPORT_PDF,
SK_HAS_JPEG_LIBRARY,
SK_HAS_PNG_LIBRARY,
SK_CODEC_DECODES_RAW,
SK_HAS_WEBP_LIBRARY,
SK_USE_LIBGIFCODEC,
SK_XML,
SKIA_C_DLL,
);
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
@ -315,6 +320,7 @@
ONLY_ACTIVE_ARCH = YES;
OTHER_LDFLAGS = "-all_load";
SDKROOT = iphoneos;
PLATFORM = ios;
TARGETED_DEVICE_FAMILY = "1,2";
VERSIONING_SYSTEM = "apple-generic";
VERSION_INFO_PREFIX = "";
@ -359,16 +365,21 @@
GCC_PREPROCESSOR_DEFINITIONS = (
NDEBUG,
"SK_ASSUME_GL_ES=1",
SK_GAMMA_APPLY_TO_A8,
"SKIA_IMPLEMENTATION=1",
SKIA_C_DLL,
GR_OP_ALLOCATE_USE_NEW,
SK_CODEC_DECODES_JPEG,
SK_CODEC_DECODES_PNG,
SK_CODEC_DECODES_RAW,
SK_CODEC_DECODES_WEBP,
SK_ENCODE_JPEG,
SK_ENCODE_PNG,
SK_ENCODE_WEBP,
SK_GAMMA_APPLY_TO_A8,
SK_GL,
SK_SUPPORT_PDF,
SK_HAS_JPEG_LIBRARY,
SK_HAS_PNG_LIBRARY,
SK_CODEC_DECODES_RAW,
SK_HAS_WEBP_LIBRARY,
SK_USE_LIBGIFCODEC,
SK_XML,
SKIA_C_DLL,
);
GCC_SYMBOLS_PRIVATE_EXTERN = YES;
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
@ -381,8 +392,9 @@
MTL_ENABLE_DEBUG_INFO = NO;
OTHER_LDFLAGS = "-all_load";
SDKROOT = iphoneos;
TARGETED_DEVICE_FAMILY = "1,2";
PLATFORM = ios;
VALIDATE_PRODUCT = YES;
TARGETED_DEVICE_FAMILY = "1,2";
VERSIONING_SYSTEM = "apple-generic";
VERSION_INFO_PREFIX = "";
};
@ -400,15 +412,17 @@
HEADER_SEARCH_PATHS = ../../../externals/skia;
INFOPLIST_FILE = libSkiaSharp/Info.plist;
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
"IPHONEOS_DEPLOYMENT_TARGET[sdk=macosx*]" = 13.0;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
LIBRARY_SEARCH_PATHS = "../../../externals/skia/out/ios/$(ARCHS)";
LIBRARY_SEARCH_PATHS = "../../../externals/skia/out/$(PLATFORM)/$(ARCHS)";
OTHER_LDFLAGS = (
"-all_load",
"-lskia",
);
PRODUCT_BUNDLE_IDENTIFIER = "xamarin.libskia-ios";
PRODUCT_BUNDLE_IDENTIFIER = "com.microsoft.libSkiaSharp";
PRODUCT_NAME = "$(TARGET_NAME)";
SKIP_INSTALL = YES;
SUPPORTS_MACCATALYST = YES;
};
name = Debug;
};
@ -424,15 +438,17 @@
HEADER_SEARCH_PATHS = ../../../externals/skia;
INFOPLIST_FILE = libSkiaSharp/Info.plist;
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
"IPHONEOS_DEPLOYMENT_TARGET[sdk=macosx*]" = 13.0;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
LIBRARY_SEARCH_PATHS = "../../../externals/skia/out/ios/$(ARCHS)";
LIBRARY_SEARCH_PATHS = "../../../externals/skia/out/$(PLATFORM)/$(ARCHS)";
OTHER_LDFLAGS = (
"-all_load",
"-lskia",
);
PRODUCT_BUNDLE_IDENTIFIER = "xamarin.libskia-ios";
PRODUCT_BUNDLE_IDENTIFIER = "com.microsoft.libSkiaSharp";
PRODUCT_NAME = "$(TARGET_NAME)";
SKIP_INSTALL = YES;
SUPPORTS_MACCATALYST = YES;
};
name = Release;
};

Просмотреть файл

@ -1,8 +0,0 @@
//
// libSkiaSharp.h
// libSkiaSharp
//
// Created by Bill Holmes on 11/21/15.
// Copyright © 2015 Xamarin. All rights reserved.
//

Просмотреть файл

@ -0,0 +1,28 @@
DirectoryPath ROOT_PATH = MakeAbsolute(Directory("../.."));
DirectoryPath OUTPUT_PATH = MakeAbsolute(ROOT_PATH.Combine("output/native"));
#load "../../cake/shared.cake"
Task("libSkiaSharp")
.WithCriteria(IsRunningOnMac())
.Does(() =>
{
RunCake("../ios/build.cake", "libSkiaSharp", new Dictionary<string, string> {
{ "variant", "maccatalyst" },
});
});
Task("libHarfBuzzSharp")
.WithCriteria(IsRunningOnMac())
.Does(() =>
{
RunCake("../ios/build.cake", "libHarfBuzzSharp", new Dictionary<string, string> {
{ "variant", "maccatalyst" },
});
});
Task("Default")
.IsDependentOn("libSkiaSharp")
.IsDependentOn("libHarfBuzzSharp");
RunTarget(TARGET);

Просмотреть файл

@ -10,18 +10,22 @@ Task("libSkiaSharp")
.Does(() =>
{
Build("x86_64", "x64");
Build("arm64", "arm64");
RunLipo(OUTPUT_PATH, "libSkiaSharp.dylib", new [] {
(FilePath) "x86_64/libSkiaSharp.dylib"
});
CreateFatDylib(OUTPUT_PATH.Combine("libSkiaSharp"));
void Build(string arch, string skiaArch)
{
if (Skip(arch)) return;
var minVersion = skiaArch.ToLower() == "arm64"
? "11.0"
: "10.8";
GnNinja($"macos/{arch}", "skia",
$"target_os='mac' " +
$"target_cpu='{skiaArch}' " +
$"min_macos_version='{minVersion}' " +
$"skia_use_icu=false " +
$"skia_use_metal=true " +
$"skia_use_piex=true " +
@ -31,16 +35,14 @@ Task("libSkiaSharp")
$"skia_use_system_libpng=false " +
$"skia_use_system_libwebp=false " +
$"skia_use_system_zlib=false " +
$"extra_cflags=[ '-DSKIA_C_DLL', '-DHAVE_ARC4RANDOM_BUF', '-mmacosx-version-min=10.8', '-stdlib=libc++' ] " +
$"extra_ldflags=[ '-Wl,macosx_version_min=10.8', '-stdlib=libc++' ]");
$"extra_cflags=[ '-DSKIA_C_DLL', '-DHAVE_ARC4RANDOM_BUF', '-stdlib=libc++' ] " +
$"extra_ldflags=[ '-stdlib=libc++' ]");
RunXCodeBuild("libSkiaSharp/libSkiaSharp.xcodeproj", "libSkiaSharp", "macosx", arch);
var outDir = OUTPUT_PATH.Combine(arch);
EnsureDirectoryExists(outDir);
CopyDirectory($"libSkiaSharp/bin/{CONFIGURATION}/{arch}/{CONFIGURATION}/", outDir);
StripSign(outDir.CombineWithFilePath("libSkiaSharp.dylib"));
SafeCopy(
$"libSkiaSharp/bin/{CONFIGURATION}/macosx/{arch}.xcarchive",
OUTPUT_PATH.Combine($"libSkiaSharp/{arch}.xcarchive"));
}
});
@ -49,10 +51,9 @@ Task("libHarfBuzzSharp")
.Does(() =>
{
Build("x86_64");
Build("arm64");
RunLipo(OUTPUT_PATH, "libHarfBuzzSharp.dylib", new [] {
(FilePath) "x86_64/libHarfBuzzSharp.dylib"
});
CreateFatDylib(OUTPUT_PATH.Combine("libHarfBuzzSharp"));
void Build(string arch)
{
@ -60,11 +61,9 @@ Task("libHarfBuzzSharp")
RunXCodeBuild("libHarfBuzzSharp/libHarfBuzzSharp.xcodeproj", "libHarfBuzzSharp", "macosx", arch);
var outDir = OUTPUT_PATH.Combine(arch);
EnsureDirectoryExists(outDir);
CopyDirectory($"libHarfBuzzSharp/bin/{CONFIGURATION}/{arch}/{CONFIGURATION}/", outDir);
StripSign(outDir.CombineWithFilePath("libHarfBuzzSharp.dylib"));
SafeCopy(
$"libHarfBuzzSharp/bin/{CONFIGURATION}/macosx/{arch}.xcarchive",
OUTPUT_PATH.Combine($"libHarfBuzzSharp/{arch}.xcarchive"));
}
});

Просмотреть файл

@ -470,6 +470,7 @@
WARNING_CFLAGS = (
"-Wno-comma",
"-Wno-conditional-uninitialized",
"-Wno-documentation",
);
};
name = Debug;
@ -485,6 +486,7 @@
WARNING_CFLAGS = (
"-Wno-comma",
"-Wno-conditional-uninitialized",
"-Wno-documentation",
);
};
name = Release;

Просмотреть файл

@ -276,17 +276,22 @@
GCC_NO_COMMON_BLOCKS = YES;
GCC_PREPROCESSOR_DEFINITIONS = (
"SK_ASSUME_GL=1",
SK_GAMMA_APPLY_TO_A8,
"SKIA_IMPLEMENTATION=1",
SKIA_C_DLL,
SK_GL,
SK_SUPPORT_PDF,
SK_HAS_JPEG_LIBRARY,
SK_HAS_PNG_LIBRARY,
GR_OP_ALLOCATE_USE_NEW,
SK_CODEC_DECODES_JPEG,
SK_CODEC_DECODES_PNG,
SK_CODEC_DECODES_RAW,
SK_HAS_WEBP_LIBRARY,
SK_XML,
SK_CODEC_DECODES_WEBP,
SK_ENCODE_JPEG,
SK_ENCODE_PNG,
SK_ENCODE_WEBP,
SK_GAMMA_APPLY_TO_A8,
SK_GL,
SK_METAL,
SK_SUPPORT_PDF,
SK_USE_LIBGIFCODEC,
SK_XML,
SKIA_C_DLL,
);
GCC_SYMBOLS_PRIVATE_EXTERN = YES;
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
@ -334,17 +339,22 @@
GCC_PREPROCESSOR_DEFINITIONS = (
NDEBUG,
"SK_ASSUME_GL=1",
SK_GAMMA_APPLY_TO_A8,
"SKIA_IMPLEMENTATION=1",
SKIA_C_DLL,
SK_GL,
SK_SUPPORT_PDF,
SK_HAS_JPEG_LIBRARY,
SK_HAS_PNG_LIBRARY,
GR_OP_ALLOCATE_USE_NEW,
SK_CODEC_DECODES_JPEG,
SK_CODEC_DECODES_PNG,
SK_CODEC_DECODES_RAW,
SK_HAS_WEBP_LIBRARY,
SK_XML,
SK_CODEC_DECODES_WEBP,
SK_ENCODE_JPEG,
SK_ENCODE_PNG,
SK_ENCODE_WEBP,
SK_GAMMA_APPLY_TO_A8,
SK_GL,
SK_METAL,
SK_SUPPORT_PDF,
SK_USE_LIBGIFCODEC,
SK_XML,
SKIA_C_DLL,
);
GCC_SYMBOLS_PRIVATE_EXTERN = YES;
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;

Просмотреть файл

@ -34,7 +34,7 @@ Task("libSkiaSharp")
$"skia_use_system_libpng=false " +
$"skia_use_system_libwebp=false " +
$"skia_use_system_zlib=true " +
$"extra_cflags=[ '-DSKIA_C_DLL', '-DSK_BUILD_FOR_TIZEN', '-DXML_DEV_URANDOM' ] " +
$"extra_cflags=[ '-DSKIA_C_DLL', '-DXML_DEV_URANDOM' ] " +
$"ncli='{TIZEN_STUDIO_HOME}' " +
$"ncli_version='4.0'");

Просмотреть файл

@ -1,7 +1,7 @@
type = sharedLib
profile = mobile-4.0
harfbuzz_root = ../../../externals/skia/third_party/externals/harfbuzz
harfbuzz_root = $(abspath ../../../externals/skia/third_party/externals/harfbuzz)
APPNAME = HarfBuzzSharp

Просмотреть файл

@ -1,7 +1,7 @@
type = sharedLib
profile = mobile-4.0
skia_root = ../../../externals/skia
skia_root = $(abspath ../../../externals/skia)
USER_LIB_DIRS = $(skia_root)/out/tizen/$(BUILD_ARCH)
@ -13,9 +13,25 @@ APPNAME = SkiaSharp
USER_INC_DIRS = $(skia_root)
USER_DEFS = NDEBUG SK_R32_SHIFT=16 SK_GAMMA_APPLY_TO_A8 SKIA_IMPLEMENTATION=1 \
SKIA_C_DLL SK_GL SK_SUPPORT_PDF SK_HAS_JPEG_LIBRARY SK_HAS_PNG_LIBRARY \
SK_CODEC_DECODES_RAW SK_HAS_WEBP_LIBRARY SK_XML SK_BUILD_FOR_TIZEN
USER_DEFS = NDEBUG \
GR_OP_ALLOCATE_USE_NEW \
SK_BUILD_FOR_TIZEN \
SK_CODEC_DECODES_JPEG \
SK_CODEC_DECODES_PNG \
SK_CODEC_DECODES_RAW \
SK_CODEC_DECODES_WEBP \
SK_ENCODE_JPEG \
SK_ENCODE_PNG \
SK_ENCODE_WEBP \
SK_GAMMA_APPLY_TO_A8 \
SK_GL \
SK_R32_SHIFT=16 \
SK_SUPPORT_PDF \
SK_USE_LIBGIFCODEC \
SK_XML \
SKIA_C_DLL \
SKIA_IMPLEMENTATION=1 \
XML_DEV_URANDOM
USER_CPP_DEFS = $(USER_DEFS)

Просмотреть файл

@ -12,12 +12,7 @@ Task("libSkiaSharp")
Build("appletvsimulator", "x86_64", "x64");
Build("appletvos", "arm64", "arm64");
CopyDirectory(OUTPUT_PATH.Combine("arm64/libSkiaSharp.framework"), OUTPUT_PATH.Combine("libSkiaSharp.framework"));
DeleteFile(OUTPUT_PATH.CombineWithFilePath("libSkiaSharp.framework/libSkiaSharp"));
RunLipo(OUTPUT_PATH, "libSkiaSharp.framework/libSkiaSharp", new [] {
(FilePath) "x86_64/libSkiaSharp.framework/libSkiaSharp",
(FilePath) "arm64/libSkiaSharp.framework/libSkiaSharp"
});
CreateFatFramework(OUTPUT_PATH.Combine("libSkiaSharp"));
void Build(string sdk, string arch, string skiaArch)
{
@ -27,6 +22,7 @@ Task("libSkiaSharp")
$"target_os='tvos' " +
$"target_cpu='{skiaArch}' " +
$"skia_use_icu=false " +
$"skia_use_metal=false " +
$"skia_use_piex=true " +
$"skia_use_sfntly=false " +
$"skia_use_system_expat=false " +
@ -34,16 +30,13 @@ Task("libSkiaSharp")
$"skia_use_system_libpng=false " +
$"skia_use_system_libwebp=false " +
$"skia_use_system_zlib=false " +
$"extra_cflags=[ '-DSK_BUILD_FOR_TVOS', '-DSKIA_C_DLL', '-DHAVE_ARC4RANDOM_BUF', '-mtvos-version-min=9.0' ] " +
$"extra_ldflags=[ '-Wl,tvos_version_min=9.0' ]");
$"extra_cflags=[ '-DSKIA_C_DLL', '-DHAVE_ARC4RANDOM_BUF' ] ");
RunXCodeBuild("libSkiaSharp/libSkiaSharp.xcodeproj", "libSkiaSharp", sdk, arch);
var outDir = OUTPUT_PATH.Combine(arch);
EnsureDirectoryExists(outDir);
CopyDirectory($"libSkiaSharp/bin/{CONFIGURATION}/{arch}/{CONFIGURATION}-{sdk}", outDir);
StripSign(outDir.CombineWithFilePath("libSkiaSharp.framework"));
SafeCopy(
$"libSkiaSharp/bin/{CONFIGURATION}/{sdk}/{arch}.xcarchive",
OUTPUT_PATH.Combine($"libSkiaSharp/{arch}.xcarchive"));
}
});
@ -54,10 +47,7 @@ Task("libHarfBuzzSharp")
Build("appletvsimulator", "x86_64");
Build("appletvos", "arm64");
RunLipo(OUTPUT_PATH, "libHarfBuzzSharp.a", new [] {
(FilePath) "x86_64/libHarfBuzzSharp.a",
(FilePath) "arm64/libHarfBuzzSharp.a"
});
CreateFatFramework(OUTPUT_PATH.Combine("libHarfBuzzSharp"));
void Build(string sdk, string arch)
{
@ -65,11 +55,9 @@ Task("libHarfBuzzSharp")
RunXCodeBuild("libHarfBuzzSharp/libHarfBuzzSharp.xcodeproj", "libHarfBuzzSharp", sdk, arch);
var outDir = OUTPUT_PATH.Combine(arch);
EnsureDirectoryExists(outDir);
CopyDirectory($"libHarfBuzzSharp/bin/{CONFIGURATION}/{arch}/{CONFIGURATION}-{sdk}", outDir);
StripSign(outDir.CombineWithFilePath("libHarfBuzzSharp.a"));
SafeCopy(
$"libHarfBuzzSharp/bin/{CONFIGURATION}/{sdk}/{arch}.xcarchive",
OUTPUT_PATH.Combine($"libHarfBuzzSharp/{arch}.xcarchive"));
}
});

Просмотреть файл

@ -7,74 +7,68 @@
objects = {
/* Begin PBXBuildFile section */
3460E11422BD90090022F04C /* hb-subset-input.cc in Sources */ = {isa = PBXBuildFile; fileRef = 3460E10D22BD90080022F04C /* hb-subset-input.cc */; };
3460E11522BD90090022F04C /* hb-subset-plan.cc in Sources */ = {isa = PBXBuildFile; fileRef = 3460E10E22BD90080022F04C /* hb-subset-plan.cc */; };
3460E11622BD90090022F04C /* hb-subset-cff-common.cc in Sources */ = {isa = PBXBuildFile; fileRef = 3460E10F22BD90090022F04C /* hb-subset-cff-common.cc */; };
3460E11722BD90090022F04C /* hb-subset.cc in Sources */ = {isa = PBXBuildFile; fileRef = 3460E11022BD90090022F04C /* hb-subset.cc */; };
3460E11822BD90090022F04C /* hb-ucd.cc in Sources */ = {isa = PBXBuildFile; fileRef = 3460E11122BD90090022F04C /* hb-ucd.cc */; };
3460E11922BD90090022F04C /* hb-subset-cff1.cc in Sources */ = {isa = PBXBuildFile; fileRef = 3460E11222BD90090022F04C /* hb-subset-cff1.cc */; };
3460E11A22BD90090022F04C /* hb-subset-cff2.cc in Sources */ = {isa = PBXBuildFile; fileRef = 3460E11322BD90090022F04C /* hb-subset-cff2.cc */; };
34F57ACB233ED12B00427BE9 /* hb-ot-metrics.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34F57AC7233ED12B00427BE9 /* hb-ot-metrics.cc */; };
34F57ACC233ED12B00427BE9 /* hb-ot-meta.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34F57AC8233ED12B00427BE9 /* hb-ot-meta.cc */; };
34F64BCE21FA5F51008FBDBD /* hb-ot-cff1-table.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34F64BA121FA5F4F008FBDBD /* hb-ot-cff1-table.cc */; };
34F64BCF21FA5F51008FBDBD /* hb-ot-shape-complex-indic-table.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34F64BA221FA5F4F008FBDBD /* hb-ot-shape-complex-indic-table.cc */; };
34F64BD021FA5F51008FBDBD /* hb-ot-font.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34F64BA321FA5F4F008FBDBD /* hb-ot-font.cc */; };
34F64BD121FA5F51008FBDBD /* hb-ot-color.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34F64BA421FA5F4F008FBDBD /* hb-ot-color.cc */; };
34F64BD321FA5F51008FBDBD /* hb-ot-shape-complex-thai.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34F64BA621FA5F4F008FBDBD /* hb-ot-shape-complex-thai.cc */; };
34F64BD421FA5F51008FBDBD /* hb-blob.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34F64BA721FA5F4F008FBDBD /* hb-blob.cc */; };
34F64BD521FA5F51008FBDBD /* hb-map.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34F64BA821FA5F4F008FBDBD /* hb-map.cc */; };
34F64BD621FA5F51008FBDBD /* hb-ot-shape-complex-use-table.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34F64BA921FA5F4F008FBDBD /* hb-ot-shape-complex-use-table.cc */; };
34F64BD721FA5F51008FBDBD /* hb-ot-shape-complex-use.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34F64BAA21FA5F4F008FBDBD /* hb-ot-shape-complex-use.cc */; };
34F64BD821FA5F51008FBDBD /* hb-buffer-serialize.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34F64BAB21FA5F4F008FBDBD /* hb-buffer-serialize.cc */; };
34F64BD921FA5F51008FBDBD /* hb-ot-shape-complex-vowel-constraints.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34F64BAC21FA5F4F008FBDBD /* hb-ot-shape-complex-vowel-constraints.cc */; };
34F64BDA21FA5F51008FBDBD /* hb-aat-map.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34F64BAD21FA5F4F008FBDBD /* hb-aat-map.cc */; };
34F64BDB21FA5F51008FBDBD /* hb-ot-shape-normalize.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34F64BAE21FA5F4F008FBDBD /* hb-ot-shape-normalize.cc */; };
34F64BDC21FA5F51008FBDBD /* hb-unicode.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34F64BAF21FA5F4F008FBDBD /* hb-unicode.cc */; };
34F64BDD21FA5F51008FBDBD /* hb-warning.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34F64BB021FA5F4F008FBDBD /* hb-warning.cc */; };
34F64BDE21FA5F51008FBDBD /* hb-ot-shape-complex-myanmar.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34F64BB121FA5F4F008FBDBD /* hb-ot-shape-complex-myanmar.cc */; };
34F64BDF21FA5F51008FBDBD /* hb-ot-shape-complex-hangul.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34F64BB221FA5F4F008FBDBD /* hb-ot-shape-complex-hangul.cc */; };
34F64BE021FA5F51008FBDBD /* hb-ot-shape-fallback.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34F64BB321FA5F4F008FBDBD /* hb-ot-shape-fallback.cc */; };
34F64BE121FA5F51008FBDBD /* hb-ot-cff2-table.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34F64BB421FA5F4F008FBDBD /* hb-ot-cff2-table.cc */; };
34F64BE221FA5F51008FBDBD /* hb-ot-shape-complex-hebrew.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34F64BB521FA5F4F008FBDBD /* hb-ot-shape-complex-hebrew.cc */; };
34F64BE321FA5F51008FBDBD /* hb-ot-shape-complex-arabic.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34F64BB621FA5F4F008FBDBD /* hb-ot-shape-complex-arabic.cc */; };
34F64BE421FA5F51008FBDBD /* hb-ot-shape.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34F64BB721FA5F50008FBDBD /* hb-ot-shape.cc */; };
34F64BE521FA5F51008FBDBD /* hb-ot-var.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34F64BB821FA5F50008FBDBD /* hb-ot-var.cc */; };
34F64BE621FA5F51008FBDBD /* hb-shape.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34F64BB921FA5F50008FBDBD /* hb-shape.cc */; };
34F64BE721FA5F51008FBDBD /* hb-ot-shape-complex-khmer.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34F64BBA21FA5F50008FBDBD /* hb-ot-shape-complex-khmer.cc */; };
34F64BE821FA5F51008FBDBD /* hb-set.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34F64BBB21FA5F50008FBDBD /* hb-set.cc */; };
34F64BE921FA5F51008FBDBD /* hb-face.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34F64BBC21FA5F50008FBDBD /* hb-face.cc */; };
34F64BEA21FA5F51008FBDBD /* hb-shaper.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34F64BBD21FA5F50008FBDBD /* hb-shaper.cc */; };
34F64BEB21FA5F51008FBDBD /* hb-ot-shape-complex-indic.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34F64BBE21FA5F50008FBDBD /* hb-ot-shape-complex-indic.cc */; };
34F64BEC21FA5F51008FBDBD /* hb-common.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34F64BBF21FA5F50008FBDBD /* hb-common.cc */; };
34F64BED21FA5F51008FBDBD /* hb-ot-layout.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34F64BC021FA5F50008FBDBD /* hb-ot-layout.cc */; };
34F64BEE21FA5F51008FBDBD /* hb-aat-layout.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34F64BC121FA5F50008FBDBD /* hb-aat-layout.cc */; };
34F64BEF21FA5F51008FBDBD /* hb-ot-face.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34F64BC221FA5F50008FBDBD /* hb-ot-face.cc */; };
34F64BF121FA5F51008FBDBD /* hb-fallback-shape.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34F64BC421FA5F50008FBDBD /* hb-fallback-shape.cc */; };
34F64BF221FA5F51008FBDBD /* hb-shape-plan.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34F64BC521FA5F50008FBDBD /* hb-shape-plan.cc */; };
34F64BF321FA5F51008FBDBD /* hb-ot-math.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34F64BC621FA5F50008FBDBD /* hb-ot-math.cc */; };
34F64BF421FA5F51008FBDBD /* hb-ot-tag.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34F64BC721FA5F50008FBDBD /* hb-ot-tag.cc */; };
34F64BF521FA5F51008FBDBD /* hb-ot-shape-complex-default.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34F64BC821FA5F50008FBDBD /* hb-ot-shape-complex-default.cc */; };
34F64BF621FA5F51008FBDBD /* hb-static.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34F64BC921FA5F51008FBDBD /* hb-static.cc */; };
34F64BF721FA5F51008FBDBD /* hb-ot-map.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34F64BCA21FA5F51008FBDBD /* hb-ot-map.cc */; };
34F64BF821FA5F51008FBDBD /* hb-ot-name.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34F64BCB21FA5F51008FBDBD /* hb-ot-name.cc */; };
34F64BF921FA5F51008FBDBD /* hb-buffer.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34F64BCC21FA5F51008FBDBD /* hb-buffer.cc */; };
34F64BFA21FA5F51008FBDBD /* hb-font.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34F64BCD21FA5F51008FBDBD /* hb-font.cc */; };
34E064B22614BBE500CC0EDF /* libHarfBuzzSharp.h in Headers */ = {isa = PBXBuildFile; fileRef = 34E064B02614BBE500CC0EDF /* libHarfBuzzSharp.h */; settings = {ATTRIBUTES = (Public, ); }; };
34E064B72614BC4000CC0EDF /* hb-aat-layout.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34F64BC121FA5F50008FBDBD /* hb-aat-layout.cc */; };
34E064B82614BC4000CC0EDF /* hb-aat-map.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34F64BAD21FA5F4F008FBDBD /* hb-aat-map.cc */; };
34E064B92614BC4000CC0EDF /* hb-blob.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34F64BA721FA5F4F008FBDBD /* hb-blob.cc */; };
34E064BA2614BC4000CC0EDF /* hb-buffer-serialize.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34F64BAB21FA5F4F008FBDBD /* hb-buffer-serialize.cc */; };
34E064BB2614BC4000CC0EDF /* hb-buffer.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34F64BCC21FA5F51008FBDBD /* hb-buffer.cc */; };
34E064BC2614BC4000CC0EDF /* hb-common.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34F64BBF21FA5F50008FBDBD /* hb-common.cc */; };
34E064BD2614BC4000CC0EDF /* hb-face.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34F64BBC21FA5F50008FBDBD /* hb-face.cc */; };
34E064BE2614BC4000CC0EDF /* hb-fallback-shape.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34F64BC421FA5F50008FBDBD /* hb-fallback-shape.cc */; };
34E064BF2614BC4000CC0EDF /* hb-font.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34F64BCD21FA5F51008FBDBD /* hb-font.cc */; };
34E064C02614BC4000CC0EDF /* hb-map.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34F64BA821FA5F4F008FBDBD /* hb-map.cc */; };
34E064C12614BC4000CC0EDF /* hb-ot-cff1-table.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34F64BA121FA5F4F008FBDBD /* hb-ot-cff1-table.cc */; };
34E064C22614BC4000CC0EDF /* hb-ot-cff2-table.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34F64BB421FA5F4F008FBDBD /* hb-ot-cff2-table.cc */; };
34E064C32614BC4000CC0EDF /* hb-ot-color.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34F64BA421FA5F4F008FBDBD /* hb-ot-color.cc */; };
34E064C42614BC4000CC0EDF /* hb-ot-face.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34F64BC221FA5F50008FBDBD /* hb-ot-face.cc */; };
34E064C52614BC4000CC0EDF /* hb-ot-font.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34F64BA321FA5F4F008FBDBD /* hb-ot-font.cc */; };
34E064C62614BC4000CC0EDF /* hb-ot-layout.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34F64BC021FA5F50008FBDBD /* hb-ot-layout.cc */; };
34E064C72614BC4000CC0EDF /* hb-ot-map.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34F64BCA21FA5F51008FBDBD /* hb-ot-map.cc */; };
34E064C82614BC4000CC0EDF /* hb-ot-math.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34F64BC621FA5F50008FBDBD /* hb-ot-math.cc */; };
34E064C92614BC4000CC0EDF /* hb-ot-meta-table.hh in Sources */ = {isa = PBXBuildFile; fileRef = 34F57AC9233ED12B00427BE9 /* hb-ot-meta-table.hh */; };
34E064CA2614BC4000CC0EDF /* hb-ot-meta.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34F57AC8233ED12B00427BE9 /* hb-ot-meta.cc */; };
34E064CB2614BC4000CC0EDF /* hb-ot-meta.h in Sources */ = {isa = PBXBuildFile; fileRef = 34F57ACA233ED12B00427BE9 /* hb-ot-meta.h */; };
34E064CC2614BC4000CC0EDF /* hb-ot-metrics.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34F57AC7233ED12B00427BE9 /* hb-ot-metrics.cc */; };
34E064CD2614BC4000CC0EDF /* hb-ot-metrics.h in Sources */ = {isa = PBXBuildFile; fileRef = 34F57AC5233ED12B00427BE9 /* hb-ot-metrics.h */; };
34E064CE2614BC4000CC0EDF /* hb-ot-metrics.hh in Sources */ = {isa = PBXBuildFile; fileRef = 34F57AC6233ED12B00427BE9 /* hb-ot-metrics.hh */; };
34E064CF2614BC4000CC0EDF /* hb-ot-name.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34F64BCB21FA5F51008FBDBD /* hb-ot-name.cc */; };
34E064D02614BC4000CC0EDF /* hb-ot-shape-complex-arabic.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34F64BB621FA5F4F008FBDBD /* hb-ot-shape-complex-arabic.cc */; };
34E064D12614BC4000CC0EDF /* hb-ot-shape-complex-default.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34F64BC821FA5F50008FBDBD /* hb-ot-shape-complex-default.cc */; };
34E064D22614BC4000CC0EDF /* hb-ot-shape-complex-hangul.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34F64BB221FA5F4F008FBDBD /* hb-ot-shape-complex-hangul.cc */; };
34E064D32614BC4000CC0EDF /* hb-ot-shape-complex-hebrew.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34F64BB521FA5F4F008FBDBD /* hb-ot-shape-complex-hebrew.cc */; };
34E064D42614BC4000CC0EDF /* hb-ot-shape-complex-indic-table.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34F64BA221FA5F4F008FBDBD /* hb-ot-shape-complex-indic-table.cc */; };
34E064D52614BC4000CC0EDF /* hb-ot-shape-complex-indic.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34F64BBE21FA5F50008FBDBD /* hb-ot-shape-complex-indic.cc */; };
34E064D62614BC4000CC0EDF /* hb-ot-shape-complex-khmer.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34F64BBA21FA5F50008FBDBD /* hb-ot-shape-complex-khmer.cc */; };
34E064D72614BC4000CC0EDF /* hb-ot-shape-complex-myanmar.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34F64BB121FA5F4F008FBDBD /* hb-ot-shape-complex-myanmar.cc */; };
34E064D82614BC4000CC0EDF /* hb-ot-shape-complex-thai.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34F64BA621FA5F4F008FBDBD /* hb-ot-shape-complex-thai.cc */; };
34E064D92614BC4000CC0EDF /* hb-ot-shape-complex-use-table.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34F64BA921FA5F4F008FBDBD /* hb-ot-shape-complex-use-table.cc */; };
34E064DA2614BC4000CC0EDF /* hb-ot-shape-complex-use.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34F64BAA21FA5F4F008FBDBD /* hb-ot-shape-complex-use.cc */; };
34E064DB2614BC4000CC0EDF /* hb-ot-shape-complex-vowel-constraints.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34F64BAC21FA5F4F008FBDBD /* hb-ot-shape-complex-vowel-constraints.cc */; };
34E064DC2614BC4000CC0EDF /* hb-ot-shape-fallback.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34F64BB321FA5F4F008FBDBD /* hb-ot-shape-fallback.cc */; };
34E064DD2614BC4000CC0EDF /* hb-ot-shape-normalize.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34F64BAE21FA5F4F008FBDBD /* hb-ot-shape-normalize.cc */; };
34E064DE2614BC4000CC0EDF /* hb-ot-shape.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34F64BB721FA5F50008FBDBD /* hb-ot-shape.cc */; };
34E064DF2614BC4000CC0EDF /* hb-ot-tag.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34F64BC721FA5F50008FBDBD /* hb-ot-tag.cc */; };
34E064E02614BC4000CC0EDF /* hb-ot-var.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34F64BB821FA5F50008FBDBD /* hb-ot-var.cc */; };
34E064E12614BC4000CC0EDF /* hb-set.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34F64BBB21FA5F50008FBDBD /* hb-set.cc */; };
34E064E22614BC4000CC0EDF /* hb-shape-plan.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34F64BC521FA5F50008FBDBD /* hb-shape-plan.cc */; };
34E064E32614BC4000CC0EDF /* hb-shape.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34F64BB921FA5F50008FBDBD /* hb-shape.cc */; };
34E064E42614BC4000CC0EDF /* hb-shaper.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34F64BBD21FA5F50008FBDBD /* hb-shaper.cc */; };
34E064E52614BC4000CC0EDF /* hb-static.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34F64BC921FA5F51008FBDBD /* hb-static.cc */; };
34E064E62614BC4000CC0EDF /* hb-subset-cff-common.cc in Sources */ = {isa = PBXBuildFile; fileRef = 3460E10F22BD90090022F04C /* hb-subset-cff-common.cc */; };
34E064E72614BC4000CC0EDF /* hb-subset-cff1.cc in Sources */ = {isa = PBXBuildFile; fileRef = 3460E11222BD90090022F04C /* hb-subset-cff1.cc */; };
34E064E82614BC4000CC0EDF /* hb-subset-cff2.cc in Sources */ = {isa = PBXBuildFile; fileRef = 3460E11322BD90090022F04C /* hb-subset-cff2.cc */; };
34E064E92614BC4000CC0EDF /* hb-subset-input.cc in Sources */ = {isa = PBXBuildFile; fileRef = 3460E10D22BD90080022F04C /* hb-subset-input.cc */; };
34E064EA2614BC4000CC0EDF /* hb-subset-plan.cc in Sources */ = {isa = PBXBuildFile; fileRef = 3460E10E22BD90080022F04C /* hb-subset-plan.cc */; };
34E064EB2614BC4000CC0EDF /* hb-subset.cc in Sources */ = {isa = PBXBuildFile; fileRef = 3460E11022BD90090022F04C /* hb-subset.cc */; };
34E064EC2614BC4000CC0EDF /* hb-ucd.cc in Sources */ = {isa = PBXBuildFile; fileRef = 3460E11122BD90090022F04C /* hb-ucd.cc */; };
34E064ED2614BC4000CC0EDF /* hb-unicode.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34F64BAF21FA5F4F008FBDBD /* hb-unicode.cc */; };
34E064EE2614BC4000CC0EDF /* hb-warning.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34F64BB021FA5F4F008FBDBD /* hb-warning.cc */; };
34E064EF2614BC4000CC0EDF /* config.h in Sources */ = {isa = PBXBuildFile; fileRef = 34F64BFF21FA5F81008FBDBD /* config.h */; };
34E064F02614BC4000CC0EDF /* libHarfBuzzSharp.h in Sources */ = {isa = PBXBuildFile; fileRef = 34E064B02614BBE500CC0EDF /* libHarfBuzzSharp.h */; };
/* End PBXBuildFile section */
/* Begin PBXCopyFilesBuildPhase section */
341E97BA1EB3CE10008E2876 /* CopyFiles */ = {
isa = PBXCopyFilesBuildPhase;
buildActionMask = 2147483647;
dstPath = "include/$(PRODUCT_NAME)";
dstSubfolderSpec = 16;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXCopyFilesBuildPhase section */
/* Begin PBXFileReference section */
341E97BC1EB3CE10008E2876 /* libHarfBuzzSharp.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libHarfBuzzSharp.a; sourceTree = BUILT_PRODUCTS_DIR; };
3460E10D22BD90080022F04C /* hb-subset-input.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = "hb-subset-input.cc"; path = "../../../externals/skia/third_party/externals/harfbuzz/src/hb-subset-input.cc"; sourceTree = "<group>"; };
3460E10E22BD90080022F04C /* hb-subset-plan.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = "hb-subset-plan.cc"; path = "../../../externals/skia/third_party/externals/harfbuzz/src/hb-subset-plan.cc"; sourceTree = "<group>"; };
3460E10F22BD90090022F04C /* hb-subset-cff-common.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = "hb-subset-cff-common.cc"; path = "../../../externals/skia/third_party/externals/harfbuzz/src/hb-subset-cff-common.cc"; sourceTree = "<group>"; };
@ -82,6 +76,9 @@
3460E11122BD90090022F04C /* hb-ucd.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = "hb-ucd.cc"; path = "../../../externals/skia/third_party/externals/harfbuzz/src/hb-ucd.cc"; sourceTree = "<group>"; };
3460E11222BD90090022F04C /* hb-subset-cff1.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = "hb-subset-cff1.cc"; path = "../../../externals/skia/third_party/externals/harfbuzz/src/hb-subset-cff1.cc"; sourceTree = "<group>"; };
3460E11322BD90090022F04C /* hb-subset-cff2.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = "hb-subset-cff2.cc"; path = "../../../externals/skia/third_party/externals/harfbuzz/src/hb-subset-cff2.cc"; sourceTree = "<group>"; };
34E064AE2614BBE500CC0EDF /* libHarfBuzzSharp.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = libHarfBuzzSharp.framework; sourceTree = BUILT_PRODUCTS_DIR; };
34E064B02614BBE500CC0EDF /* libHarfBuzzSharp.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = libHarfBuzzSharp.h; sourceTree = "<group>"; };
34E064B12614BBE500CC0EDF /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
34F57AC5233ED12B00427BE9 /* hb-ot-metrics.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = "hb-ot-metrics.h"; path = "../../../externals/skia/third_party/externals/harfbuzz/src/hb-ot-metrics.h"; sourceTree = "<group>"; };
34F57AC6233ED12B00427BE9 /* hb-ot-metrics.hh */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = "hb-ot-metrics.hh"; path = "../../../externals/skia/third_party/externals/harfbuzz/src/hb-ot-metrics.hh"; sourceTree = "<group>"; };
34F57AC7233ED12B00427BE9 /* hb-ot-metrics.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = "hb-ot-metrics.cc"; path = "../../../externals/skia/third_party/externals/harfbuzz/src/hb-ot-metrics.cc"; sourceTree = "<group>"; };
@ -135,7 +132,7 @@
/* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */
341E97B91EB3CE10008E2876 /* Frameworks */ = {
34E064AB2614BBE500CC0EDF /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
@ -150,14 +147,24 @@
children = (
34F64BA021FA5F43008FBDBD /* src */,
34F64BFF21FA5F81008FBDBD /* config.h */,
34E064AF2614BBE500CC0EDF /* libHarfBuzzSharp */,
341E97BD1EB3CE10008E2876 /* Products */,
);
sourceTree = "<group>";
};
34E064AF2614BBE500CC0EDF /* libHarfBuzzSharp */ = {
isa = PBXGroup;
children = (
34E064B12614BBE500CC0EDF /* Info.plist */,
34E064B02614BBE500CC0EDF /* libHarfBuzzSharp.h */,
);
path = libHarfBuzzSharp;
sourceTree = "<group>";
};
341E97BD1EB3CE10008E2876 /* Products */ = {
isa = PBXGroup;
children = (
341E97BC1EB3CE10008E2876 /* libHarfBuzzSharp.a */,
34E064AE2614BBE500CC0EDF /* libHarfBuzzSharp.framework */,
);
name = Products;
sourceTree = "<group>";
@ -227,14 +234,26 @@
};
/* End PBXGroup section */
/* Begin PBXHeadersBuildPhase section */
34E064A92614BBE500CC0EDF /* Headers */ = {
isa = PBXHeadersBuildPhase;
buildActionMask = 2147483647;
files = (
34E064B22614BBE500CC0EDF /* libHarfBuzzSharp.h in Headers */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXHeadersBuildPhase section */
/* Begin PBXNativeTarget section */
341E97BB1EB3CE10008E2876 /* libHarfBuzzSharp */ = {
34E064AD2614BBE500CC0EDF /* libHarfBuzzSharp */ = {
isa = PBXNativeTarget;
buildConfigurationList = 341E97C51EB3CE10008E2876 /* Build configuration list for PBXNativeTarget "libHarfBuzzSharp" */;
buildConfigurationList = 34E064B32614BBE500CC0EDF /* Build configuration list for PBXNativeTarget "libHarfBuzzSharp" */;
buildPhases = (
341E97B81EB3CE10008E2876 /* Sources */,
341E97B91EB3CE10008E2876 /* Frameworks */,
341E97BA1EB3CE10008E2876 /* CopyFiles */,
34E064A92614BBE500CC0EDF /* Headers */,
34E064AA2614BBE500CC0EDF /* Sources */,
34E064AB2614BBE500CC0EDF /* Frameworks */,
34E064AC2614BBE500CC0EDF /* Resources */,
);
buildRules = (
);
@ -242,8 +261,8 @@
);
name = libHarfBuzzSharp;
productName = libHarfBuzzSharp;
productReference = 341E97BC1EB3CE10008E2876 /* libHarfBuzzSharp.a */;
productType = "com.apple.product-type.library.static";
productReference = 34E064AE2614BBE500CC0EDF /* libHarfBuzzSharp.framework */;
productType = "com.apple.product-type.framework";
};
/* End PBXNativeTarget section */
@ -251,90 +270,106 @@
341E97B41EB3CE10008E2876 /* Project object */ = {
isa = PBXProject;
attributes = {
LastUpgradeCheck = 1010;
LastUpgradeCheck = 1240;
ORGANIZATIONNAME = "Matthew Leibowitz";
TargetAttributes = {
341E97BB1EB3CE10008E2876 = {
CreatedOnToolsVersion = 8.3.2;
34E064AD2614BBE500CC0EDF = {
CreatedOnToolsVersion = 12.4;
ProvisioningStyle = Automatic;
};
};
};
buildConfigurationList = 341E97B71EB3CE10008E2876 /* Build configuration list for PBXProject "libHarfBuzzSharp" */;
compatibilityVersion = "Xcode 3.2";
developmentRegion = English;
developmentRegion = en;
hasScannedForEncodings = 0;
knownRegions = (
English,
en,
Base,
);
mainGroup = 341E97B31EB3CE10008E2876;
productRefGroup = 341E97BD1EB3CE10008E2876 /* Products */;
projectDirPath = "";
projectRoot = "";
targets = (
341E97BB1EB3CE10008E2876 /* libHarfBuzzSharp */,
34E064AD2614BBE500CC0EDF /* libHarfBuzzSharp */,
);
};
/* End PBXProject section */
/* Begin PBXResourcesBuildPhase section */
34E064AC2614BBE500CC0EDF /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXResourcesBuildPhase section */
/* Begin PBXSourcesBuildPhase section */
341E97B81EB3CE10008E2876 /* Sources */ = {
34E064AA2614BBE500CC0EDF /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
34F64BE921FA5F51008FBDBD /* hb-face.cc in Sources */,
34F64BF521FA5F51008FBDBD /* hb-ot-shape-complex-default.cc in Sources */,
34F64BDF21FA5F51008FBDBD /* hb-ot-shape-complex-hangul.cc in Sources */,
34F64BF621FA5F51008FBDBD /* hb-static.cc in Sources */,
3460E11422BD90090022F04C /* hb-subset-input.cc in Sources */,
34F64BD121FA5F51008FBDBD /* hb-ot-color.cc in Sources */,
34F64BEB21FA5F51008FBDBD /* hb-ot-shape-complex-indic.cc in Sources */,
34F64BF321FA5F51008FBDBD /* hb-ot-math.cc in Sources */,
34F64BD721FA5F51008FBDBD /* hb-ot-shape-complex-use.cc in Sources */,
34F64BD621FA5F51008FBDBD /* hb-ot-shape-complex-use-table.cc in Sources */,
34F64BCF21FA5F51008FBDBD /* hb-ot-shape-complex-indic-table.cc in Sources */,
34F64BF421FA5F51008FBDBD /* hb-ot-tag.cc in Sources */,
34F64BD921FA5F51008FBDBD /* hb-ot-shape-complex-vowel-constraints.cc in Sources */,
34F64BF221FA5F51008FBDBD /* hb-shape-plan.cc in Sources */,
3460E11A22BD90090022F04C /* hb-subset-cff2.cc in Sources */,
3460E11522BD90090022F04C /* hb-subset-plan.cc in Sources */,
34F64BEE21FA5F51008FBDBD /* hb-aat-layout.cc in Sources */,
34F64BEF21FA5F51008FBDBD /* hb-ot-face.cc in Sources */,
34F64BED21FA5F51008FBDBD /* hb-ot-layout.cc in Sources */,
34F64BD521FA5F51008FBDBD /* hb-map.cc in Sources */,
34F64BE021FA5F51008FBDBD /* hb-ot-shape-fallback.cc in Sources */,
34F64BE321FA5F51008FBDBD /* hb-ot-shape-complex-arabic.cc in Sources */,
34F64BD421FA5F51008FBDBD /* hb-blob.cc in Sources */,
3460E11622BD90090022F04C /* hb-subset-cff-common.cc in Sources */,
34F64BE721FA5F51008FBDBD /* hb-ot-shape-complex-khmer.cc in Sources */,
34F64BDB21FA5F51008FBDBD /* hb-ot-shape-normalize.cc in Sources */,
34F64BD321FA5F51008FBDBD /* hb-ot-shape-complex-thai.cc in Sources */,
34F57ACC233ED12B00427BE9 /* hb-ot-meta.cc in Sources */,
34F64BE121FA5F51008FBDBD /* hb-ot-cff2-table.cc in Sources */,
34F64BDE21FA5F51008FBDBD /* hb-ot-shape-complex-myanmar.cc in Sources */,
34F64BDC21FA5F51008FBDBD /* hb-unicode.cc in Sources */,
34F64BE521FA5F51008FBDBD /* hb-ot-var.cc in Sources */,
34F64BD021FA5F51008FBDBD /* hb-ot-font.cc in Sources */,
3460E11722BD90090022F04C /* hb-subset.cc in Sources */,
3460E11822BD90090022F04C /* hb-ucd.cc in Sources */,
34F64BFA21FA5F51008FBDBD /* hb-font.cc in Sources */,
34F64BF121FA5F51008FBDBD /* hb-fallback-shape.cc in Sources */,
34F64BE621FA5F51008FBDBD /* hb-shape.cc in Sources */,
34F64BEC21FA5F51008FBDBD /* hb-common.cc in Sources */,
34F64BF921FA5F51008FBDBD /* hb-buffer.cc in Sources */,
34F64BDA21FA5F51008FBDBD /* hb-aat-map.cc in Sources */,
34F64BD821FA5F51008FBDBD /* hb-buffer-serialize.cc in Sources */,
34F64BDD21FA5F51008FBDBD /* hb-warning.cc in Sources */,
34F64BE221FA5F51008FBDBD /* hb-ot-shape-complex-hebrew.cc in Sources */,
34F57ACB233ED12B00427BE9 /* hb-ot-metrics.cc in Sources */,
34F64BE421FA5F51008FBDBD /* hb-ot-shape.cc in Sources */,
34F64BEA21FA5F51008FBDBD /* hb-shaper.cc in Sources */,
34F64BCE21FA5F51008FBDBD /* hb-ot-cff1-table.cc in Sources */,
34F64BE821FA5F51008FBDBD /* hb-set.cc in Sources */,
34F64BF821FA5F51008FBDBD /* hb-ot-name.cc in Sources */,
34F64BF721FA5F51008FBDBD /* hb-ot-map.cc in Sources */,
3460E11922BD90090022F04C /* hb-subset-cff1.cc in Sources */,
34E064B72614BC4000CC0EDF /* hb-aat-layout.cc in Sources */,
34E064B82614BC4000CC0EDF /* hb-aat-map.cc in Sources */,
34E064B92614BC4000CC0EDF /* hb-blob.cc in Sources */,
34E064BA2614BC4000CC0EDF /* hb-buffer-serialize.cc in Sources */,
34E064BB2614BC4000CC0EDF /* hb-buffer.cc in Sources */,
34E064BC2614BC4000CC0EDF /* hb-common.cc in Sources */,
34E064BD2614BC4000CC0EDF /* hb-face.cc in Sources */,
34E064BE2614BC4000CC0EDF /* hb-fallback-shape.cc in Sources */,
34E064BF2614BC4000CC0EDF /* hb-font.cc in Sources */,
34E064C02614BC4000CC0EDF /* hb-map.cc in Sources */,
34E064C12614BC4000CC0EDF /* hb-ot-cff1-table.cc in Sources */,
34E064C22614BC4000CC0EDF /* hb-ot-cff2-table.cc in Sources */,
34E064C32614BC4000CC0EDF /* hb-ot-color.cc in Sources */,
34E064C42614BC4000CC0EDF /* hb-ot-face.cc in Sources */,
34E064C52614BC4000CC0EDF /* hb-ot-font.cc in Sources */,
34E064C62614BC4000CC0EDF /* hb-ot-layout.cc in Sources */,
34E064C72614BC4000CC0EDF /* hb-ot-map.cc in Sources */,
34E064C82614BC4000CC0EDF /* hb-ot-math.cc in Sources */,
34E064C92614BC4000CC0EDF /* hb-ot-meta-table.hh in Sources */,
34E064CA2614BC4000CC0EDF /* hb-ot-meta.cc in Sources */,
34E064CB2614BC4000CC0EDF /* hb-ot-meta.h in Sources */,
34E064CC2614BC4000CC0EDF /* hb-ot-metrics.cc in Sources */,
34E064CD2614BC4000CC0EDF /* hb-ot-metrics.h in Sources */,
34E064CE2614BC4000CC0EDF /* hb-ot-metrics.hh in Sources */,
34E064CF2614BC4000CC0EDF /* hb-ot-name.cc in Sources */,
34E064D02614BC4000CC0EDF /* hb-ot-shape-complex-arabic.cc in Sources */,
34E064D12614BC4000CC0EDF /* hb-ot-shape-complex-default.cc in Sources */,
34E064D22614BC4000CC0EDF /* hb-ot-shape-complex-hangul.cc in Sources */,
34E064D32614BC4000CC0EDF /* hb-ot-shape-complex-hebrew.cc in Sources */,
34E064D42614BC4000CC0EDF /* hb-ot-shape-complex-indic-table.cc in Sources */,
34E064D52614BC4000CC0EDF /* hb-ot-shape-complex-indic.cc in Sources */,
34E064D62614BC4000CC0EDF /* hb-ot-shape-complex-khmer.cc in Sources */,
34E064D72614BC4000CC0EDF /* hb-ot-shape-complex-myanmar.cc in Sources */,
34E064D82614BC4000CC0EDF /* hb-ot-shape-complex-thai.cc in Sources */,
34E064D92614BC4000CC0EDF /* hb-ot-shape-complex-use-table.cc in Sources */,
34E064DA2614BC4000CC0EDF /* hb-ot-shape-complex-use.cc in Sources */,
34E064DB2614BC4000CC0EDF /* hb-ot-shape-complex-vowel-constraints.cc in Sources */,
34E064DC2614BC4000CC0EDF /* hb-ot-shape-fallback.cc in Sources */,
34E064DD2614BC4000CC0EDF /* hb-ot-shape-normalize.cc in Sources */,
34E064DE2614BC4000CC0EDF /* hb-ot-shape.cc in Sources */,
34E064DF2614BC4000CC0EDF /* hb-ot-tag.cc in Sources */,
34E064E02614BC4000CC0EDF /* hb-ot-var.cc in Sources */,
34E064E12614BC4000CC0EDF /* hb-set.cc in Sources */,
34E064E22614BC4000CC0EDF /* hb-shape-plan.cc in Sources */,
34E064E32614BC4000CC0EDF /* hb-shape.cc in Sources */,
34E064E42614BC4000CC0EDF /* hb-shaper.cc in Sources */,
34E064E52614BC4000CC0EDF /* hb-static.cc in Sources */,
34E064E62614BC4000CC0EDF /* hb-subset-cff-common.cc in Sources */,
34E064E72614BC4000CC0EDF /* hb-subset-cff1.cc in Sources */,
34E064E82614BC4000CC0EDF /* hb-subset-cff2.cc in Sources */,
34E064E92614BC4000CC0EDF /* hb-subset-input.cc in Sources */,
34E064EA2614BC4000CC0EDF /* hb-subset-plan.cc in Sources */,
34E064EB2614BC4000CC0EDF /* hb-subset.cc in Sources */,
34E064EC2614BC4000CC0EDF /* hb-ucd.cc in Sources */,
34E064ED2614BC4000CC0EDF /* hb-unicode.cc in Sources */,
34E064EE2614BC4000CC0EDF /* hb-warning.cc in Sources */,
34E064EF2614BC4000CC0EDF /* config.h in Sources */,
34E064F02614BC4000CC0EDF /* libHarfBuzzSharp.h in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@ -346,6 +381,7 @@
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
BITCODE_GENERATION_MODE = bitcode;
CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES;
CLANG_ANALYZER_NONNULL = YES;
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
@ -367,6 +403,7 @@
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
CLANG_WARN_STRICT_PROTOTYPES = YES;
CLANG_WARN_SUSPICIOUS_MOVE = YES;
@ -396,6 +433,9 @@
ONLY_ACTIVE_ARCH = YES;
SDKROOT = appletvos;
TVOS_DEPLOYMENT_TARGET = 9.0;
TARGETED_DEVICE_FAMILY = 3;
VERSIONING_SYSTEM = "apple-generic";
VERSION_INFO_PREFIX = "";
};
name = Debug;
};
@ -404,6 +444,7 @@
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
BITCODE_GENERATION_MODE = bitcode;
CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES;
CLANG_ANALYZER_NONNULL = YES;
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
@ -425,6 +466,7 @@
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
CLANG_WARN_STRICT_PROTOTYPES = YES;
CLANG_WARN_SUSPICIOUS_MOVE = YES;
@ -451,33 +493,58 @@
SDKROOT = appletvos;
TVOS_DEPLOYMENT_TARGET = 9.0;
VALIDATE_PRODUCT = YES;
TARGETED_DEVICE_FAMILY = 3;
VERSIONING_SYSTEM = "apple-generic";
VERSION_INFO_PREFIX = "";
};
name = Release;
};
341E97C61EB3CE10008E2876 /* Debug */ = {
34E064B42614BBE500CC0EDF /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
EXECUTABLE_PREFIX = "";
GCC_WARN_64_TO_32_BIT_CONVERSION = NO;
CLANG_ENABLE_OBJC_WEAK = YES;
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
DEFINES_MODULE = YES;
DYLIB_COMPATIBILITY_VERSION = 1;
DYLIB_CURRENT_VERSION = 1;
DYLIB_INSTALL_NAME_BASE = "@rpath";
INFOPLIST_FILE = libHarfBuzzSharp/Info.plist;
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
PRODUCT_BUNDLE_IDENTIFIER = com.microsoft.libHarfBuzzSharp;
PRODUCT_NAME = "$(TARGET_NAME)";
SKIP_INSTALL = YES;
WARNING_CFLAGS = (
"-Wno-comma",
"-Wno-conditional-uninitialized",
"-Wno-documentation",
);
};
name = Debug;
};
341E97C71EB3CE10008E2876 /* Release */ = {
34E064B52614BBE500CC0EDF /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
EXECUTABLE_PREFIX = "";
GCC_WARN_64_TO_32_BIT_CONVERSION = NO;
CLANG_ENABLE_OBJC_WEAK = YES;
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
DEFINES_MODULE = YES;
DYLIB_COMPATIBILITY_VERSION = 1;
DYLIB_CURRENT_VERSION = 1;
DYLIB_INSTALL_NAME_BASE = "@rpath";
INFOPLIST_FILE = libHarfBuzzSharp/Info.plist;
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
PRODUCT_BUNDLE_IDENTIFIER = com.microsoft.libHarfBuzzSharp;
PRODUCT_NAME = "$(TARGET_NAME)";
SKIP_INSTALL = YES;
WARNING_CFLAGS = (
"-Wno-comma",
"-Wno-conditional-uninitialized",
"-Wno-documentation",
);
};
name = Release;
@ -494,11 +561,11 @@
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
341E97C51EB3CE10008E2876 /* Build configuration list for PBXNativeTarget "libHarfBuzzSharp" */ = {
34E064B32614BBE500CC0EDF /* Build configuration list for PBXNativeTarget "libHarfBuzzSharp" */ = {
isa = XCConfigurationList;
buildConfigurations = (
341E97C61EB3CE10008E2876 /* Debug */,
341E97C71EB3CE10008E2876 /* Release */,
34E064B42614BBE500CC0EDF /* Debug */,
34E064B52614BBE500CC0EDF /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;

Просмотреть файл

@ -0,0 +1,22 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>$(DEVELOPMENT_LANGUAGE)</string>
<key>CFBundleExecutable</key>
<string>$(EXECUTABLE_NAME)</string>
<key>CFBundleIdentifier</key>
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>$(PRODUCT_NAME)</string>
<key>CFBundlePackageType</key>
<string>$(PRODUCT_BUNDLE_PACKAGE_TYPE)</string>
<key>CFBundleShortVersionString</key>
<string>1.0</string>
<key>CFBundleVersion</key>
<string>$(CURRENT_PROJECT_VERSION)</string>
</dict>
</plist>

Просмотреть файл

Просмотреть файл

@ -283,17 +283,22 @@
GCC_OPTIMIZATION_LEVEL = 0;
GCC_PREPROCESSOR_DEFINITIONS = (
"SK_ASSUME_GL_ES=1",
SK_GAMMA_APPLY_TO_A8,
"SKIA_IMPLEMENTATION=1",
SKIA_C_DLL,
GR_OP_ALLOCATE_USE_NEW,
SK_BUILD_FOR_TVOS,
SK_CODEC_DECODES_JPEG,
SK_CODEC_DECODES_PNG,
SK_CODEC_DECODES_RAW,
SK_CODEC_DECODES_WEBP,
SK_ENCODE_JPEG,
SK_ENCODE_PNG,
SK_ENCODE_WEBP,
SK_GAMMA_APPLY_TO_A8,
SK_GL,
SK_SUPPORT_PDF,
SK_HAS_JPEG_LIBRARY,
SK_HAS_PNG_LIBRARY,
SK_CODEC_DECODES_RAW,
SK_HAS_WEBP_LIBRARY,
SK_USE_LIBGIFCODEC,
SK_XML,
SK_BUILD_FOR_TVOS,
SKIA_C_DLL,
);
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
@ -352,17 +357,22 @@
GCC_PREPROCESSOR_DEFINITIONS = (
NDEBUG,
"SK_ASSUME_GL_ES=1",
SK_GAMMA_APPLY_TO_A8,
"SKIA_IMPLEMENTATION=1",
SKIA_C_DLL,
GR_OP_ALLOCATE_USE_NEW,
SK_BUILD_FOR_TVOS,
SK_CODEC_DECODES_JPEG,
SK_CODEC_DECODES_PNG,
SK_CODEC_DECODES_RAW,
SK_CODEC_DECODES_WEBP,
SK_ENCODE_JPEG,
SK_ENCODE_PNG,
SK_ENCODE_WEBP,
SK_GAMMA_APPLY_TO_A8,
SK_GL,
SK_SUPPORT_PDF,
SK_HAS_JPEG_LIBRARY,
SK_HAS_PNG_LIBRARY,
SK_CODEC_DECODES_RAW,
SK_HAS_WEBP_LIBRARY,
SK_USE_LIBGIFCODEC,
SK_XML,
SK_BUILD_FOR_TVOS,
SKIA_C_DLL,
);
GCC_SYMBOLS_PRIVATE_EXTERN = YES;
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
@ -399,7 +409,7 @@
"-all_load",
"-lskia",
);
PRODUCT_BUNDLE_IDENTIFIER = "xamarin.libskia-tvos";
PRODUCT_BUNDLE_IDENTIFIER = "com.microsoft.libSkiaSharp";
PRODUCT_NAME = "$(TARGET_NAME)";
SKIP_INSTALL = YES;
};
@ -423,7 +433,7 @@
"-all_load",
"-lskia",
);
PRODUCT_BUNDLE_IDENTIFIER = "xamarin.libskia-tvos";
PRODUCT_BUNDLE_IDENTIFIER = "com.microsoft.libSkiaSharp";
PRODUCT_NAME = "$(TARGET_NAME)";
SKIP_INSTALL = YES;
};

Просмотреть файл

@ -1,7 +0,0 @@
//
// libSkiaSharp.h
// libSkiaSharp
//
// Created by Bill Holmes on 11/21/15.
// Copyright © 2015 Xamarin. All rights reserved.
//

Просмотреть файл

@ -37,8 +37,8 @@ Task("libSkiaSharp")
$"skia_use_system_zlib=false " +
$"extra_cflags=[ " +
$" '-DSKIA_C_DLL', '/MD{d}', '/EHsc', '/Z7', " +
$" '-DWINAPI_FAMILY=WINAPI_FAMILY_APP', '-DSK_BUILD_FOR_WINRT', '-DSK_HAS_DWRITE_1_H', '-DSK_HAS_DWRITE_2_H', '-DNO_GETENV', '-D_HAS_AUTO_PTR_ETC=1' ] " +
$"extra_ldflags=[ '/DEBUG:FULL', '/APPCONTAINER', 'WindowsApp.lib' ]");
$" '-DSK_HAS_DWRITE_1_H', '-DSK_HAS_DWRITE_2_H', '-DNO_GETENV', '-D_HAS_AUTO_PTR_ETC=1' ] " +
$"extra_ldflags=[ '/DEBUG:FULL' ]");
var outDir = OUTPUT_PATH.Combine(dir);
EnsureDirectoryExists(outDir);

Просмотреть файл

@ -23,14 +23,16 @@ Task("libSkiaSharp")
$"target_cpu='wasm' " +
$"is_static_skiasharp=true " +
$"skia_enable_ccpr=false " +
$"skia_enable_fontmgr_custom_directory=false " +
$"skia_enable_fontmgr_custom_empty=false " +
$"skia_enable_fontmgr_custom_embedded=true " +
$"skia_enable_fontmgr_empty=false " +
$"skia_enable_gpu={(SUPPORT_GPU ? "true" : "false")} " +
(SUPPORT_GPU ? "skia_gl_standard='webgl'" : "") +
$"skia_enable_nvpr=false " +
$"skia_enable_pdf=true " +
$"skia_use_dng_sdk=false " +
$"skia_use_egl=true " +
$"skia_use_webgl=true " +
$"skia_use_fontconfig=false " +
$"skia_use_freetype=true " +
$"skia_use_harfbuzz=false " +
@ -47,8 +49,10 @@ Task("libSkiaSharp")
$"skia_use_wuffs=true " +
$"use_PIC=false " +
$"extra_cflags=[ " +
$" '-DSKIA_C_DLL', '-DXML_POOR_ENTROPY', '-DSK_BUILD_FOR_WASM', '-DSK_EMSCRIPTEN', " +
$" '-s', 'WARN_UNALIGNED=1', '-DSKNX_NO_SIMD', '-DSK_DISABLE_AAA', '-DGR_GL_CHECK_ALLOC_WITH_GET_ERROR=0' ] " +
$" '-DSKIA_C_DLL', '-DXML_POOR_ENTROPY', " +
$" '-DSKNX_NO_SIMD', '-DSK_DISABLE_AAA', '-DGR_GL_CHECK_ALLOC_WITH_GET_ERROR=0', " +
$" '-s', 'WARN_UNALIGNED=1' " + // '-s', 'USE_WEBGL2=1' (experimental)
$"] " +
$"extra_cflags_cc=[ '-frtti' ] " +
COMPILERS +
ADDITIONAL_GN_ARGS);

Просмотреть файл

@ -13,13 +13,7 @@ Task("libSkiaSharp")
Build("watchos", "armv7k", "arm");
Build("watchos", "arm64_32", "arm64");
CopyDirectory(OUTPUT_PATH.Combine("armv7k/libSkiaSharp.framework"), OUTPUT_PATH.Combine("libSkiaSharp.framework"));
DeleteFile(OUTPUT_PATH.CombineWithFilePath("libSkiaSharp.framework/libSkiaSharp"));
RunLipo(OUTPUT_PATH, "libSkiaSharp.framework/libSkiaSharp", new [] {
(FilePath) "i386/libSkiaSharp.framework/libSkiaSharp",
(FilePath) "armv7k/libSkiaSharp.framework/libSkiaSharp",
(FilePath) "arm64_32/libSkiaSharp.framework/libSkiaSharp"
});
CreateFatFramework(OUTPUT_PATH.Combine("libSkiaSharp"));
void Build(string sdk, string arch, string skiaArch)
{
@ -30,6 +24,7 @@ Task("libSkiaSharp")
$"target_cpu='{skiaArch}' " +
$"skia_enable_gpu=false " +
$"skia_use_icu=false " +
$"skia_use_metal=false " +
$"skia_use_piex=true " +
$"skia_use_sfntly=false " +
$"skia_use_system_expat=false " +
@ -37,16 +32,13 @@ Task("libSkiaSharp")
$"skia_use_system_libpng=false " +
$"skia_use_system_libwebp=false " +
$"skia_use_system_zlib=false " +
$"extra_cflags=[ '-DSK_BUILD_FOR_WATCHOS', '-DSKIA_C_DLL', '-DHAVE_ARC4RANDOM_BUF', '-mwatchos-version-min=2.0' ] " +
$"extra_ldflags=[ '-Wl,watchos_version_min=2.0' ]");
$"extra_cflags=[ '-DSKIA_C_DLL', '-DHAVE_ARC4RANDOM_BUF' ] ");
RunXCodeBuild("libSkiaSharp/libSkiaSharp.xcodeproj", "libSkiaSharp", sdk, arch);
var outDir = OUTPUT_PATH.Combine(arch);
EnsureDirectoryExists(outDir);
CopyDirectory($"libSkiaSharp/bin/{CONFIGURATION}/{arch}/{CONFIGURATION}-{sdk}", outDir);
StripSign(outDir.CombineWithFilePath("libSkiaSharp.framework"));
SafeCopy(
$"libSkiaSharp/bin/{CONFIGURATION}/{sdk}/{arch}.xcarchive",
OUTPUT_PATH.Combine($"libSkiaSharp/{arch}.xcarchive"));
}
});
@ -58,11 +50,7 @@ Task("libHarfBuzzSharp")
Build("watchos", "armv7k");
Build("watchos", "arm64_32");
RunLipo(OUTPUT_PATH, "libHarfBuzzSharp.a", new [] {
(FilePath) "i386/libHarfBuzzSharp.a",
(FilePath) "armv7k/libHarfBuzzSharp.a",
(FilePath) "arm64_32/libHarfBuzzSharp.a"
});
CreateFatFramework(OUTPUT_PATH.Combine("libHarfBuzzSharp"));
void Build(string sdk, string arch)
{
@ -70,11 +58,9 @@ Task("libHarfBuzzSharp")
RunXCodeBuild("libHarfBuzzSharp/libHarfBuzzSharp.xcodeproj", "libHarfBuzzSharp", sdk, arch);
var outDir = OUTPUT_PATH.Combine(arch);
EnsureDirectoryExists(outDir);
CopyDirectory($"libHarfBuzzSharp/bin/{CONFIGURATION}/{arch}/{CONFIGURATION}-{sdk}", outDir);
StripSign(outDir.CombineWithFilePath("libHarfBuzzSharp.a"));
SafeCopy(
$"libHarfBuzzSharp/bin/{CONFIGURATION}/{sdk}/{arch}.xcarchive",
OUTPUT_PATH.Combine($"libHarfBuzzSharp/{arch}.xcarchive"));
}
});

Просмотреть файл

@ -7,74 +7,71 @@
objects = {
/* Begin PBXBuildFile section */
34F57AD3233ED14400427BE9 /* hb-ot-meta.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34F57ACD233ED14300427BE9 /* hb-ot-meta.cc */; };
34F57AD4233ED14400427BE9 /* hb-ot-metrics.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34F57AD0233ED14400427BE9 /* hb-ot-metrics.cc */; };
34F64D3C21FA6048008FBDBD /* hb-ot-cff1-table.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34F64D0F21FA6047008FBDBD /* hb-ot-cff1-table.cc */; };
34F64D3D21FA6048008FBDBD /* hb-ot-shape-complex-indic-table.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34F64D1021FA6047008FBDBD /* hb-ot-shape-complex-indic-table.cc */; };
34F64D3E21FA6048008FBDBD /* hb-ot-font.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34F64D1121FA6047008FBDBD /* hb-ot-font.cc */; };
34F64D3F21FA6048008FBDBD /* hb-ot-color.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34F64D1221FA6047008FBDBD /* hb-ot-color.cc */; };
34F64D4121FA6048008FBDBD /* hb-ot-shape-complex-thai.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34F64D1421FA6047008FBDBD /* hb-ot-shape-complex-thai.cc */; };
34F64D4221FA6048008FBDBD /* hb-blob.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34F64D1521FA6047008FBDBD /* hb-blob.cc */; };
34F64D4321FA6048008FBDBD /* hb-map.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34F64D1621FA6047008FBDBD /* hb-map.cc */; };
34F64D4421FA6048008FBDBD /* hb-ot-shape-complex-use-table.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34F64D1721FA6047008FBDBD /* hb-ot-shape-complex-use-table.cc */; };
34F64D4521FA6048008FBDBD /* hb-ot-shape-complex-use.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34F64D1821FA6047008FBDBD /* hb-ot-shape-complex-use.cc */; };
34F64D4621FA6048008FBDBD /* hb-buffer-serialize.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34F64D1921FA6047008FBDBD /* hb-buffer-serialize.cc */; };
34F64D4721FA6048008FBDBD /* hb-ot-shape-complex-vowel-constraints.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34F64D1A21FA6047008FBDBD /* hb-ot-shape-complex-vowel-constraints.cc */; };
34F64D4821FA6048008FBDBD /* hb-aat-map.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34F64D1B21FA6047008FBDBD /* hb-aat-map.cc */; };
34F64D4921FA6048008FBDBD /* hb-ot-shape-normalize.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34F64D1C21FA6047008FBDBD /* hb-ot-shape-normalize.cc */; };
34F64D4A21FA6048008FBDBD /* hb-unicode.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34F64D1D21FA6047008FBDBD /* hb-unicode.cc */; };
34F64D4B21FA6048008FBDBD /* hb-warning.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34F64D1E21FA6047008FBDBD /* hb-warning.cc */; };
34F64D4C21FA6048008FBDBD /* hb-ot-shape-complex-myanmar.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34F64D1F21FA6047008FBDBD /* hb-ot-shape-complex-myanmar.cc */; };
34F64D4D21FA6048008FBDBD /* hb-ot-shape-complex-hangul.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34F64D2021FA6047008FBDBD /* hb-ot-shape-complex-hangul.cc */; };
34F64D4E21FA6048008FBDBD /* hb-ot-shape-fallback.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34F64D2121FA6047008FBDBD /* hb-ot-shape-fallback.cc */; };
34F64D4F21FA6048008FBDBD /* hb-ot-cff2-table.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34F64D2221FA6047008FBDBD /* hb-ot-cff2-table.cc */; };
34F64D5021FA6048008FBDBD /* hb-ot-shape-complex-hebrew.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34F64D2321FA6047008FBDBD /* hb-ot-shape-complex-hebrew.cc */; };
34F64D5121FA6048008FBDBD /* hb-ot-shape-complex-arabic.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34F64D2421FA6047008FBDBD /* hb-ot-shape-complex-arabic.cc */; };
34F64D5221FA6048008FBDBD /* hb-ot-shape.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34F64D2521FA6047008FBDBD /* hb-ot-shape.cc */; };
34F64D5321FA6048008FBDBD /* hb-ot-var.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34F64D2621FA6047008FBDBD /* hb-ot-var.cc */; };
34F64D5421FA6048008FBDBD /* hb-shape.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34F64D2721FA6047008FBDBD /* hb-shape.cc */; };
34F64D5521FA6048008FBDBD /* hb-ot-shape-complex-khmer.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34F64D2821FA6047008FBDBD /* hb-ot-shape-complex-khmer.cc */; };
34F64D5621FA6048008FBDBD /* hb-set.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34F64D2921FA6047008FBDBD /* hb-set.cc */; };
34F64D5721FA6048008FBDBD /* hb-face.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34F64D2A21FA6048008FBDBD /* hb-face.cc */; };
34F64D5821FA6048008FBDBD /* hb-shaper.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34F64D2B21FA6048008FBDBD /* hb-shaper.cc */; };
34F64D5921FA6048008FBDBD /* hb-ot-shape-complex-indic.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34F64D2C21FA6048008FBDBD /* hb-ot-shape-complex-indic.cc */; };
34F64D5A21FA6048008FBDBD /* hb-common.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34F64D2D21FA6048008FBDBD /* hb-common.cc */; };
34F64D5B21FA6048008FBDBD /* hb-ot-layout.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34F64D2E21FA6048008FBDBD /* hb-ot-layout.cc */; };
34F64D5C21FA6048008FBDBD /* hb-aat-layout.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34F64D2F21FA6048008FBDBD /* hb-aat-layout.cc */; };
34F64D5D21FA6048008FBDBD /* hb-ot-face.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34F64D3021FA6048008FBDBD /* hb-ot-face.cc */; };
34F64D5F21FA6048008FBDBD /* hb-fallback-shape.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34F64D3221FA6048008FBDBD /* hb-fallback-shape.cc */; };
34F64D6021FA6048008FBDBD /* hb-shape-plan.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34F64D3321FA6048008FBDBD /* hb-shape-plan.cc */; };
34F64D6121FA6048008FBDBD /* hb-ot-math.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34F64D3421FA6048008FBDBD /* hb-ot-math.cc */; };
34F64D6221FA6048008FBDBD /* hb-ot-tag.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34F64D3521FA6048008FBDBD /* hb-ot-tag.cc */; };
34F64D6321FA6048008FBDBD /* hb-ot-shape-complex-default.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34F64D3621FA6048008FBDBD /* hb-ot-shape-complex-default.cc */; };
34F64D6421FA6048008FBDBD /* hb-static.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34F64D3721FA6048008FBDBD /* hb-static.cc */; };
34F64D6521FA6048008FBDBD /* hb-ot-map.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34F64D3821FA6048008FBDBD /* hb-ot-map.cc */; };
34F64D6621FA6048008FBDBD /* hb-ot-name.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34F64D3921FA6048008FBDBD /* hb-ot-name.cc */; };
34F64D6721FA6048008FBDBD /* hb-buffer.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34F64D3A21FA6048008FBDBD /* hb-buffer.cc */; };
34F64D6821FA6048008FBDBD /* hb-font.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34F64D3B21FA6048008FBDBD /* hb-font.cc */; };
34FEAAFC22BD8FAC007299F0 /* hb-subset.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34FEAAF522BD8FAB007299F0 /* hb-subset.cc */; };
34FEAAFD22BD8FAC007299F0 /* hb-subset-input.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34FEAAF622BD8FAB007299F0 /* hb-subset-input.cc */; };
34FEAAFE22BD8FAC007299F0 /* hb-subset-cff1.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34FEAAF722BD8FAC007299F0 /* hb-subset-cff1.cc */; };
34FEAAFF22BD8FAC007299F0 /* hb-ucd.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34FEAAF822BD8FAC007299F0 /* hb-ucd.cc */; };
34FEAB0022BD8FAC007299F0 /* hb-subset-cff-common.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34FEAAF922BD8FAC007299F0 /* hb-subset-cff-common.cc */; };
34FEAB0122BD8FAC007299F0 /* hb-subset-cff2.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34FEAAFA22BD8FAC007299F0 /* hb-subset-cff2.cc */; };
34FEAB0222BD8FAC007299F0 /* hb-subset-plan.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34FEAAFB22BD8FAC007299F0 /* hb-subset-plan.cc */; };
342989962614C6A00019CB69 /* libHarfBuzzSharp.h in Headers */ = {isa = PBXBuildFile; fileRef = 342989942614C6A00019CB69 /* libHarfBuzzSharp.h */; settings = {ATTRIBUTES = (Public, ); }; };
3429899B2614C7390019CB69 /* hb-aat-layout.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34F64D2F21FA6048008FBDBD /* hb-aat-layout.cc */; };
3429899C2614C7390019CB69 /* hb-aat-map.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34F64D1B21FA6047008FBDBD /* hb-aat-map.cc */; };
3429899D2614C7390019CB69 /* hb-blob.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34F64D1521FA6047008FBDBD /* hb-blob.cc */; };
3429899E2614C7390019CB69 /* hb-buffer-serialize.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34F64D1921FA6047008FBDBD /* hb-buffer-serialize.cc */; };
3429899F2614C7390019CB69 /* hb-buffer.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34F64D3A21FA6048008FBDBD /* hb-buffer.cc */; };
342989A02614C7390019CB69 /* hb-common.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34F64D2D21FA6048008FBDBD /* hb-common.cc */; };
342989A12614C7390019CB69 /* hb-face.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34F64D2A21FA6048008FBDBD /* hb-face.cc */; };
342989A22614C7390019CB69 /* hb-fallback-shape.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34F64D3221FA6048008FBDBD /* hb-fallback-shape.cc */; };
342989A32614C7390019CB69 /* hb-font.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34F64D3B21FA6048008FBDBD /* hb-font.cc */; };
342989A42614C7390019CB69 /* hb-map.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34F64D1621FA6047008FBDBD /* hb-map.cc */; };
342989A52614C7390019CB69 /* hb-ot-cff1-table.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34F64D0F21FA6047008FBDBD /* hb-ot-cff1-table.cc */; };
342989A62614C7390019CB69 /* hb-ot-cff2-table.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34F64D2221FA6047008FBDBD /* hb-ot-cff2-table.cc */; };
342989A72614C7390019CB69 /* hb-ot-color.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34F64D1221FA6047008FBDBD /* hb-ot-color.cc */; };
342989A82614C7390019CB69 /* hb-ot-face.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34F64D3021FA6048008FBDBD /* hb-ot-face.cc */; };
342989A92614C7390019CB69 /* hb-ot-font.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34F64D1121FA6047008FBDBD /* hb-ot-font.cc */; };
342989AA2614C7390019CB69 /* hb-ot-layout.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34F64D2E21FA6048008FBDBD /* hb-ot-layout.cc */; };
342989AB2614C7390019CB69 /* hb-ot-map.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34F64D3821FA6048008FBDBD /* hb-ot-map.cc */; };
342989AC2614C7390019CB69 /* hb-ot-math.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34F64D3421FA6048008FBDBD /* hb-ot-math.cc */; };
342989AD2614C7390019CB69 /* hb-ot-meta-table.hh in Sources */ = {isa = PBXBuildFile; fileRef = 34F57AD1233ED14400427BE9 /* hb-ot-meta-table.hh */; };
342989AE2614C7390019CB69 /* hb-ot-meta.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34F57ACD233ED14300427BE9 /* hb-ot-meta.cc */; };
342989AF2614C7390019CB69 /* hb-ot-meta.h in Sources */ = {isa = PBXBuildFile; fileRef = 34F57AD2233ED14400427BE9 /* hb-ot-meta.h */; };
342989B02614C7390019CB69 /* hb-ot-metrics.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34F57AD0233ED14400427BE9 /* hb-ot-metrics.cc */; };
342989B12614C7390019CB69 /* hb-ot-metrics.h in Sources */ = {isa = PBXBuildFile; fileRef = 34F57ACF233ED14400427BE9 /* hb-ot-metrics.h */; };
342989B22614C7390019CB69 /* hb-ot-metrics.hh in Sources */ = {isa = PBXBuildFile; fileRef = 34F57ACE233ED14400427BE9 /* hb-ot-metrics.hh */; };
342989B32614C7390019CB69 /* hb-ot-name.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34F64D3921FA6048008FBDBD /* hb-ot-name.cc */; };
342989B42614C7390019CB69 /* hb-ot-shape-complex-arabic.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34F64D2421FA6047008FBDBD /* hb-ot-shape-complex-arabic.cc */; };
342989B52614C7390019CB69 /* hb-ot-shape-complex-default.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34F64D3621FA6048008FBDBD /* hb-ot-shape-complex-default.cc */; };
342989B62614C7390019CB69 /* hb-ot-shape-complex-hangul.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34F64D2021FA6047008FBDBD /* hb-ot-shape-complex-hangul.cc */; };
342989B72614C7390019CB69 /* hb-ot-shape-complex-hebrew.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34F64D2321FA6047008FBDBD /* hb-ot-shape-complex-hebrew.cc */; };
342989B82614C7390019CB69 /* hb-ot-shape-complex-indic-table.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34F64D1021FA6047008FBDBD /* hb-ot-shape-complex-indic-table.cc */; };
342989B92614C7390019CB69 /* hb-ot-shape-complex-indic.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34F64D2C21FA6048008FBDBD /* hb-ot-shape-complex-indic.cc */; };
342989BA2614C7390019CB69 /* hb-ot-shape-complex-khmer.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34F64D2821FA6047008FBDBD /* hb-ot-shape-complex-khmer.cc */; };
342989BB2614C7390019CB69 /* hb-ot-shape-complex-myanmar.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34F64D1F21FA6047008FBDBD /* hb-ot-shape-complex-myanmar.cc */; };
342989BC2614C7390019CB69 /* hb-ot-shape-complex-thai.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34F64D1421FA6047008FBDBD /* hb-ot-shape-complex-thai.cc */; };
342989BD2614C7390019CB69 /* hb-ot-shape-complex-use-table.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34F64D1721FA6047008FBDBD /* hb-ot-shape-complex-use-table.cc */; };
342989BE2614C7390019CB69 /* hb-ot-shape-complex-use.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34F64D1821FA6047008FBDBD /* hb-ot-shape-complex-use.cc */; };
342989BF2614C7390019CB69 /* hb-ot-shape-complex-vowel-constraints.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34F64D1A21FA6047008FBDBD /* hb-ot-shape-complex-vowel-constraints.cc */; };
342989C02614C7390019CB69 /* hb-ot-shape-fallback.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34F64D2121FA6047008FBDBD /* hb-ot-shape-fallback.cc */; };
342989C12614C7390019CB69 /* hb-ot-shape-normalize.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34F64D1C21FA6047008FBDBD /* hb-ot-shape-normalize.cc */; };
342989C22614C7390019CB69 /* hb-ot-shape.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34F64D2521FA6047008FBDBD /* hb-ot-shape.cc */; };
342989C32614C7390019CB69 /* hb-ot-tag.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34F64D3521FA6048008FBDBD /* hb-ot-tag.cc */; };
342989C42614C7390019CB69 /* hb-ot-var.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34F64D2621FA6047008FBDBD /* hb-ot-var.cc */; };
342989C52614C7390019CB69 /* hb-set.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34F64D2921FA6047008FBDBD /* hb-set.cc */; };
342989C62614C7390019CB69 /* hb-shape-plan.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34F64D3321FA6048008FBDBD /* hb-shape-plan.cc */; };
342989C72614C7390019CB69 /* hb-shape.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34F64D2721FA6047008FBDBD /* hb-shape.cc */; };
342989C82614C7390019CB69 /* hb-shaper.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34F64D2B21FA6048008FBDBD /* hb-shaper.cc */; };
342989C92614C7390019CB69 /* hb-static.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34F64D3721FA6048008FBDBD /* hb-static.cc */; };
342989CA2614C7390019CB69 /* hb-subset-cff-common.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34FEAAF922BD8FAC007299F0 /* hb-subset-cff-common.cc */; };
342989CB2614C7390019CB69 /* hb-subset-cff1.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34FEAAF722BD8FAC007299F0 /* hb-subset-cff1.cc */; };
342989CC2614C7390019CB69 /* hb-subset-cff2.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34FEAAFA22BD8FAC007299F0 /* hb-subset-cff2.cc */; };
342989CD2614C7390019CB69 /* hb-subset-input.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34FEAAF622BD8FAB007299F0 /* hb-subset-input.cc */; };
342989CE2614C7390019CB69 /* hb-subset-plan.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34FEAAFB22BD8FAC007299F0 /* hb-subset-plan.cc */; };
342989CF2614C7390019CB69 /* hb-subset.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34FEAAF522BD8FAB007299F0 /* hb-subset.cc */; };
342989D02614C7390019CB69 /* hb-ucd.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34FEAAF822BD8FAC007299F0 /* hb-ucd.cc */; };
342989D12614C7390019CB69 /* hb-unicode.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34F64D1D21FA6047008FBDBD /* hb-unicode.cc */; };
342989D22614C7390019CB69 /* hb-warning.cc in Sources */ = {isa = PBXBuildFile; fileRef = 34F64D1E21FA6047008FBDBD /* hb-warning.cc */; };
342989D32614C7390019CB69 /* config.h in Sources */ = {isa = PBXBuildFile; fileRef = 34F64C0521FA5FC6008FBDBD /* config.h */; };
342989D42614C7390019CB69 /* libHarfBuzzSharp.h in Sources */ = {isa = PBXBuildFile; fileRef = 342989942614C6A00019CB69 /* libHarfBuzzSharp.h */; };
/* End PBXBuildFile section */
/* Begin PBXCopyFilesBuildPhase section */
341E97BA1EB3CE10008E2876 /* CopyFiles */ = {
isa = PBXCopyFilesBuildPhase;
buildActionMask = 2147483647;
dstPath = "include/$(PRODUCT_NAME)";
dstSubfolderSpec = 16;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXCopyFilesBuildPhase section */
/* Begin PBXFileReference section */
341E97BC1EB3CE10008E2876 /* libHarfBuzzSharp.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libHarfBuzzSharp.a; sourceTree = BUILT_PRODUCTS_DIR; };
342989922614C6A00019CB69 /* libHarfBuzzSharp.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = libHarfBuzzSharp.framework; sourceTree = BUILT_PRODUCTS_DIR; };
342989942614C6A00019CB69 /* libHarfBuzzSharp.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = libHarfBuzzSharp.h; sourceTree = "<group>"; };
342989952614C6A00019CB69 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
34F57ACD233ED14300427BE9 /* hb-ot-meta.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = "hb-ot-meta.cc"; path = "../../../externals/skia/third_party/externals/harfbuzz/src/hb-ot-meta.cc"; sourceTree = "<group>"; };
34F57ACE233ED14400427BE9 /* hb-ot-metrics.hh */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = "hb-ot-metrics.hh"; path = "../../../externals/skia/third_party/externals/harfbuzz/src/hb-ot-metrics.hh"; sourceTree = "<group>"; };
34F57ACF233ED14400427BE9 /* hb-ot-metrics.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = "hb-ot-metrics.h"; path = "../../../externals/skia/third_party/externals/harfbuzz/src/hb-ot-metrics.h"; sourceTree = "<group>"; };
@ -135,7 +132,7 @@
/* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */
341E97B91EB3CE10008E2876 /* Frameworks */ = {
3429898F2614C6A00019CB69 /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
@ -150,6 +147,7 @@
children = (
34F64C0021FA5FA1008FBDBD /* src */,
34F64C0521FA5FC6008FBDBD /* config.h */,
342989932614C6A00019CB69 /* libHarfBuzzSharp */,
341E97BD1EB3CE10008E2876 /* Products */,
);
sourceTree = "<group>";
@ -157,11 +155,20 @@
341E97BD1EB3CE10008E2876 /* Products */ = {
isa = PBXGroup;
children = (
341E97BC1EB3CE10008E2876 /* libHarfBuzzSharp.a */,
342989922614C6A00019CB69 /* libHarfBuzzSharp.framework */,
);
name = Products;
sourceTree = "<group>";
};
342989932614C6A00019CB69 /* libHarfBuzzSharp */ = {
isa = PBXGroup;
children = (
342989942614C6A00019CB69 /* libHarfBuzzSharp.h */,
342989952614C6A00019CB69 /* Info.plist */,
);
path = libHarfBuzzSharp;
sourceTree = "<group>";
};
34F64C0021FA5FA1008FBDBD /* src */ = {
isa = PBXGroup;
children = (
@ -227,14 +234,26 @@
};
/* End PBXGroup section */
/* Begin PBXHeadersBuildPhase section */
3429898D2614C6A00019CB69 /* Headers */ = {
isa = PBXHeadersBuildPhase;
buildActionMask = 2147483647;
files = (
342989962614C6A00019CB69 /* libHarfBuzzSharp.h in Headers */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXHeadersBuildPhase section */
/* Begin PBXNativeTarget section */
341E97BB1EB3CE10008E2876 /* libHarfBuzzSharp */ = {
342989912614C6A00019CB69 /* libHarfBuzzSharp */ = {
isa = PBXNativeTarget;
buildConfigurationList = 341E97C51EB3CE10008E2876 /* Build configuration list for PBXNativeTarget "libHarfBuzzSharp" */;
buildConfigurationList = 342989972614C6A00019CB69 /* Build configuration list for PBXNativeTarget "libHarfBuzzSharp" */;
buildPhases = (
341E97B81EB3CE10008E2876 /* Sources */,
341E97B91EB3CE10008E2876 /* Frameworks */,
341E97BA1EB3CE10008E2876 /* CopyFiles */,
3429898D2614C6A00019CB69 /* Headers */,
3429898E2614C6A00019CB69 /* Sources */,
3429898F2614C6A00019CB69 /* Frameworks */,
342989902614C6A00019CB69 /* Resources */,
);
buildRules = (
);
@ -242,8 +261,8 @@
);
name = libHarfBuzzSharp;
productName = libHarfBuzzSharp;
productReference = 341E97BC1EB3CE10008E2876 /* libHarfBuzzSharp.a */;
productType = "com.apple.product-type.library.static";
productReference = 342989922614C6A00019CB69 /* libHarfBuzzSharp.framework */;
productType = "com.apple.product-type.framework";
};
/* End PBXNativeTarget section */
@ -251,90 +270,106 @@
341E97B41EB3CE10008E2876 /* Project object */ = {
isa = PBXProject;
attributes = {
LastUpgradeCheck = 1010;
LastUpgradeCheck = 1240;
ORGANIZATIONNAME = "Matthew Leibowitz";
TargetAttributes = {
341E97BB1EB3CE10008E2876 = {
CreatedOnToolsVersion = 8.3.2;
342989912614C6A00019CB69 = {
CreatedOnToolsVersion = 12.4;
ProvisioningStyle = Automatic;
};
};
};
buildConfigurationList = 341E97B71EB3CE10008E2876 /* Build configuration list for PBXProject "libHarfBuzzSharp" */;
compatibilityVersion = "Xcode 3.2";
developmentRegion = English;
developmentRegion = en;
hasScannedForEncodings = 0;
knownRegions = (
English,
en,
Base,
);
mainGroup = 341E97B31EB3CE10008E2876;
productRefGroup = 341E97BD1EB3CE10008E2876 /* Products */;
projectDirPath = "";
projectRoot = "";
targets = (
341E97BB1EB3CE10008E2876 /* libHarfBuzzSharp */,
342989912614C6A00019CB69 /* libHarfBuzzSharp */,
);
};
/* End PBXProject section */
/* Begin PBXResourcesBuildPhase section */
342989902614C6A00019CB69 /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXResourcesBuildPhase section */
/* Begin PBXSourcesBuildPhase section */
341E97B81EB3CE10008E2876 /* Sources */ = {
3429898E2614C6A00019CB69 /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
34F64D5A21FA6048008FBDBD /* hb-common.cc in Sources */,
34F64D4421FA6048008FBDBD /* hb-ot-shape-complex-use-table.cc in Sources */,
34F64D6721FA6048008FBDBD /* hb-buffer.cc in Sources */,
34F64D5121FA6048008FBDBD /* hb-ot-shape-complex-arabic.cc in Sources */,
34F64D6221FA6048008FBDBD /* hb-ot-tag.cc in Sources */,
34FEAB0222BD8FAC007299F0 /* hb-subset-plan.cc in Sources */,
34F64D4F21FA6048008FBDBD /* hb-ot-cff2-table.cc in Sources */,
34F64D5321FA6048008FBDBD /* hb-ot-var.cc in Sources */,
34F64D3F21FA6048008FBDBD /* hb-ot-color.cc in Sources */,
34F64D6621FA6048008FBDBD /* hb-ot-name.cc in Sources */,
34F64D3C21FA6048008FBDBD /* hb-ot-cff1-table.cc in Sources */,
34F64D4221FA6048008FBDBD /* hb-blob.cc in Sources */,
34F64D4121FA6048008FBDBD /* hb-ot-shape-complex-thai.cc in Sources */,
34F64D3D21FA6048008FBDBD /* hb-ot-shape-complex-indic-table.cc in Sources */,
34F64D5221FA6048008FBDBD /* hb-ot-shape.cc in Sources */,
34F64D4621FA6048008FBDBD /* hb-buffer-serialize.cc in Sources */,
34F64D4921FA6048008FBDBD /* hb-ot-shape-normalize.cc in Sources */,
34F64D3E21FA6048008FBDBD /* hb-ot-font.cc in Sources */,
34F57AD4233ED14400427BE9 /* hb-ot-metrics.cc in Sources */,
34FEAB0122BD8FAC007299F0 /* hb-subset-cff2.cc in Sources */,
34F64D4B21FA6048008FBDBD /* hb-warning.cc in Sources */,
34F64D5621FA6048008FBDBD /* hb-set.cc in Sources */,
34F64D4321FA6048008FBDBD /* hb-map.cc in Sources */,
34F64D5821FA6048008FBDBD /* hb-shaper.cc in Sources */,
34F64D4C21FA6048008FBDBD /* hb-ot-shape-complex-myanmar.cc in Sources */,
34F64D4521FA6048008FBDBD /* hb-ot-shape-complex-use.cc in Sources */,
34F64D4721FA6048008FBDBD /* hb-ot-shape-complex-vowel-constraints.cc in Sources */,
34F64D6321FA6048008FBDBD /* hb-ot-shape-complex-default.cc in Sources */,
34F64D5B21FA6048008FBDBD /* hb-ot-layout.cc in Sources */,
34F57AD3233ED14400427BE9 /* hb-ot-meta.cc in Sources */,
34F64D4E21FA6048008FBDBD /* hb-ot-shape-fallback.cc in Sources */,
34F64D6021FA6048008FBDBD /* hb-shape-plan.cc in Sources */,
34FEAAFC22BD8FAC007299F0 /* hb-subset.cc in Sources */,
34FEAAFD22BD8FAC007299F0 /* hb-subset-input.cc in Sources */,
34F64D5521FA6048008FBDBD /* hb-ot-shape-complex-khmer.cc in Sources */,
34FEAB0022BD8FAC007299F0 /* hb-subset-cff-common.cc in Sources */,
34F64D5C21FA6048008FBDBD /* hb-aat-layout.cc in Sources */,
34F64D5421FA6048008FBDBD /* hb-shape.cc in Sources */,
34F64D6521FA6048008FBDBD /* hb-ot-map.cc in Sources */,
34F64D5721FA6048008FBDBD /* hb-face.cc in Sources */,
34FEAAFF22BD8FAC007299F0 /* hb-ucd.cc in Sources */,
34F64D5021FA6048008FBDBD /* hb-ot-shape-complex-hebrew.cc in Sources */,
34F64D4821FA6048008FBDBD /* hb-aat-map.cc in Sources */,
34F64D5921FA6048008FBDBD /* hb-ot-shape-complex-indic.cc in Sources */,
34F64D5F21FA6048008FBDBD /* hb-fallback-shape.cc in Sources */,
34F64D4A21FA6048008FBDBD /* hb-unicode.cc in Sources */,
34F64D4D21FA6048008FBDBD /* hb-ot-shape-complex-hangul.cc in Sources */,
34F64D6421FA6048008FBDBD /* hb-static.cc in Sources */,
34F64D6121FA6048008FBDBD /* hb-ot-math.cc in Sources */,
34F64D6821FA6048008FBDBD /* hb-font.cc in Sources */,
34F64D5D21FA6048008FBDBD /* hb-ot-face.cc in Sources */,
34FEAAFE22BD8FAC007299F0 /* hb-subset-cff1.cc in Sources */,
3429899B2614C7390019CB69 /* hb-aat-layout.cc in Sources */,
3429899C2614C7390019CB69 /* hb-aat-map.cc in Sources */,
3429899D2614C7390019CB69 /* hb-blob.cc in Sources */,
3429899E2614C7390019CB69 /* hb-buffer-serialize.cc in Sources */,
3429899F2614C7390019CB69 /* hb-buffer.cc in Sources */,
342989A02614C7390019CB69 /* hb-common.cc in Sources */,
342989A12614C7390019CB69 /* hb-face.cc in Sources */,
342989A22614C7390019CB69 /* hb-fallback-shape.cc in Sources */,
342989A32614C7390019CB69 /* hb-font.cc in Sources */,
342989A42614C7390019CB69 /* hb-map.cc in Sources */,
342989A52614C7390019CB69 /* hb-ot-cff1-table.cc in Sources */,
342989A62614C7390019CB69 /* hb-ot-cff2-table.cc in Sources */,
342989A72614C7390019CB69 /* hb-ot-color.cc in Sources */,
342989A82614C7390019CB69 /* hb-ot-face.cc in Sources */,
342989A92614C7390019CB69 /* hb-ot-font.cc in Sources */,
342989AA2614C7390019CB69 /* hb-ot-layout.cc in Sources */,
342989AB2614C7390019CB69 /* hb-ot-map.cc in Sources */,
342989AC2614C7390019CB69 /* hb-ot-math.cc in Sources */,
342989AD2614C7390019CB69 /* hb-ot-meta-table.hh in Sources */,
342989AE2614C7390019CB69 /* hb-ot-meta.cc in Sources */,
342989AF2614C7390019CB69 /* hb-ot-meta.h in Sources */,
342989B02614C7390019CB69 /* hb-ot-metrics.cc in Sources */,
342989B12614C7390019CB69 /* hb-ot-metrics.h in Sources */,
342989B22614C7390019CB69 /* hb-ot-metrics.hh in Sources */,
342989B32614C7390019CB69 /* hb-ot-name.cc in Sources */,
342989B42614C7390019CB69 /* hb-ot-shape-complex-arabic.cc in Sources */,
342989B52614C7390019CB69 /* hb-ot-shape-complex-default.cc in Sources */,
342989B62614C7390019CB69 /* hb-ot-shape-complex-hangul.cc in Sources */,
342989B72614C7390019CB69 /* hb-ot-shape-complex-hebrew.cc in Sources */,
342989B82614C7390019CB69 /* hb-ot-shape-complex-indic-table.cc in Sources */,
342989B92614C7390019CB69 /* hb-ot-shape-complex-indic.cc in Sources */,
342989BA2614C7390019CB69 /* hb-ot-shape-complex-khmer.cc in Sources */,
342989BB2614C7390019CB69 /* hb-ot-shape-complex-myanmar.cc in Sources */,
342989BC2614C7390019CB69 /* hb-ot-shape-complex-thai.cc in Sources */,
342989BD2614C7390019CB69 /* hb-ot-shape-complex-use-table.cc in Sources */,
342989BE2614C7390019CB69 /* hb-ot-shape-complex-use.cc in Sources */,
342989BF2614C7390019CB69 /* hb-ot-shape-complex-vowel-constraints.cc in Sources */,
342989C02614C7390019CB69 /* hb-ot-shape-fallback.cc in Sources */,
342989C12614C7390019CB69 /* hb-ot-shape-normalize.cc in Sources */,
342989C22614C7390019CB69 /* hb-ot-shape.cc in Sources */,
342989C32614C7390019CB69 /* hb-ot-tag.cc in Sources */,
342989C42614C7390019CB69 /* hb-ot-var.cc in Sources */,
342989C52614C7390019CB69 /* hb-set.cc in Sources */,
342989C62614C7390019CB69 /* hb-shape-plan.cc in Sources */,
342989C72614C7390019CB69 /* hb-shape.cc in Sources */,
342989C82614C7390019CB69 /* hb-shaper.cc in Sources */,
342989C92614C7390019CB69 /* hb-static.cc in Sources */,
342989CA2614C7390019CB69 /* hb-subset-cff-common.cc in Sources */,
342989CB2614C7390019CB69 /* hb-subset-cff1.cc in Sources */,
342989CC2614C7390019CB69 /* hb-subset-cff2.cc in Sources */,
342989CD2614C7390019CB69 /* hb-subset-input.cc in Sources */,
342989CE2614C7390019CB69 /* hb-subset-plan.cc in Sources */,
342989CF2614C7390019CB69 /* hb-subset.cc in Sources */,
342989D02614C7390019CB69 /* hb-ucd.cc in Sources */,
342989D12614C7390019CB69 /* hb-unicode.cc in Sources */,
342989D22614C7390019CB69 /* hb-warning.cc in Sources */,
342989D32614C7390019CB69 /* config.h in Sources */,
342989D42614C7390019CB69 /* libHarfBuzzSharp.h in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@ -347,6 +382,7 @@
ALWAYS_SEARCH_USER_PATHS = NO;
APPLICATION_EXTENSION_API_ONLY = YES;
BITCODE_GENERATION_MODE = bitcode;
CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES;
CLANG_ANALYZER_NONNULL = YES;
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
@ -368,6 +404,7 @@
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
CLANG_WARN_STRICT_PROTOTYPES = YES;
CLANG_WARN_SUSPICIOUS_MOVE = YES;
@ -397,7 +434,10 @@
ONLY_ACTIVE_ARCH = YES;
SDKROOT = watchos;
TARGETED_DEVICE_FAMILY = 4;
VALIDATE_PRODUCT = YES;
WATCHOS_DEPLOYMENT_TARGET = 2.0;
VERSIONING_SYSTEM = "apple-generic";
VERSION_INFO_PREFIX = "";
};
name = Debug;
};
@ -407,6 +447,7 @@
ALWAYS_SEARCH_USER_PATHS = NO;
APPLICATION_EXTENSION_API_ONLY = YES;
BITCODE_GENERATION_MODE = bitcode;
CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES;
CLANG_ANALYZER_NONNULL = YES;
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
@ -428,6 +469,7 @@
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
CLANG_WARN_STRICT_PROTOTYPES = YES;
CLANG_WARN_SUSPICIOUS_MOVE = YES;
@ -455,33 +497,61 @@
TARGETED_DEVICE_FAMILY = 4;
VALIDATE_PRODUCT = YES;
WATCHOS_DEPLOYMENT_TARGET = 2.0;
VERSIONING_SYSTEM = "apple-generic";
VERSION_INFO_PREFIX = "";
};
name = Release;
};
341E97C61EB3CE10008E2876 /* Debug */ = {
342989982614C6A00019CB69 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
EXECUTABLE_PREFIX = "";
GCC_WARN_64_TO_32_BIT_CONVERSION = NO;
APPLICATION_EXTENSION_API_ONLY = YES;
CLANG_ENABLE_OBJC_WEAK = YES;
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
CURRENT_PROJECT_VERSION = 1;
DEFINES_MODULE = YES;
DYLIB_COMPATIBILITY_VERSION = 1;
DYLIB_CURRENT_VERSION = 1;
DYLIB_INSTALL_NAME_BASE = "@rpath";
INFOPLIST_FILE = libHarfBuzzSharp/Info.plist;
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
PRODUCT_BUNDLE_IDENTIFIER = com.microsoft.libHarfBuzzSharp;
PRODUCT_NAME = "$(TARGET_NAME)";
SKIP_INSTALL = YES;
WARNING_CFLAGS = (
"-Wno-comma",
"-Wno-conditional-uninitialized",
"-Wno-documentation",
);
};
name = Debug;
};
341E97C71EB3CE10008E2876 /* Release */ = {
342989992614C6A00019CB69 /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
EXECUTABLE_PREFIX = "";
GCC_WARN_64_TO_32_BIT_CONVERSION = NO;
APPLICATION_EXTENSION_API_ONLY = YES;
CLANG_ENABLE_OBJC_WEAK = YES;
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
CURRENT_PROJECT_VERSION = 1;
DEFINES_MODULE = YES;
DYLIB_COMPATIBILITY_VERSION = 1;
DYLIB_CURRENT_VERSION = 1;
DYLIB_INSTALL_NAME_BASE = "@rpath";
INFOPLIST_FILE = libHarfBuzzSharp/Info.plist;
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
PRODUCT_BUNDLE_IDENTIFIER = com.microsoft.libHarfBuzzSharp;
PRODUCT_NAME = "$(TARGET_NAME)";
SKIP_INSTALL = YES;
WARNING_CFLAGS = (
"-Wno-comma",
"-Wno-conditional-uninitialized",
"-Wno-documentation",
);
};
name = Release;
@ -498,11 +568,11 @@
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
341E97C51EB3CE10008E2876 /* Build configuration list for PBXNativeTarget "libHarfBuzzSharp" */ = {
342989972614C6A00019CB69 /* Build configuration list for PBXNativeTarget "libHarfBuzzSharp" */ = {
isa = XCConfigurationList;
buildConfigurations = (
341E97C61EB3CE10008E2876 /* Debug */,
341E97C71EB3CE10008E2876 /* Release */,
342989982614C6A00019CB69 /* Debug */,
342989992614C6A00019CB69 /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;

Просмотреть файл

@ -0,0 +1,22 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>$(DEVELOPMENT_LANGUAGE)</string>
<key>CFBundleExecutable</key>
<string>$(EXECUTABLE_NAME)</string>
<key>CFBundleIdentifier</key>
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>$(PRODUCT_NAME)</string>
<key>CFBundlePackageType</key>
<string>$(PRODUCT_BUNDLE_PACKAGE_TYPE)</string>
<key>CFBundleShortVersionString</key>
<string>1.0</string>
<key>CFBundleVersion</key>
<string>$(CURRENT_PROJECT_VERSION)</string>
</dict>
</plist>

Просмотреть файл

Просмотреть файл

@ -282,18 +282,22 @@
GCC_NO_COMMON_BLOCKS = YES;
GCC_OPTIMIZATION_LEVEL = 0;
GCC_PREPROCESSOR_DEFINITIONS = (
"SK_SUPPORT_GPU=0",
"SK_ASSUME_GL_ES=1",
SK_GAMMA_APPLY_TO_A8,
"SK_SUPPORT_GPU=0",
"SKIA_IMPLEMENTATION=1",
SKIA_C_DLL,
SK_SUPPORT_PDF,
SK_HAS_JPEG_LIBRARY,
SK_HAS_PNG_LIBRARY,
SK_CODEC_DECODES_RAW,
SK_HAS_WEBP_LIBRARY,
SK_XML,
SK_BUILD_FOR_WATCHOS,
SK_CODEC_DECODES_JPEG,
SK_CODEC_DECODES_PNG,
SK_CODEC_DECODES_RAW,
SK_CODEC_DECODES_WEBP,
SK_ENCODE_JPEG,
SK_ENCODE_PNG,
SK_ENCODE_WEBP,
SK_GAMMA_APPLY_TO_A8,
SK_SUPPORT_PDF,
SK_USE_LIBGIFCODEC,
SK_XML,
SKIA_C_DLL,
);
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
@ -352,18 +356,22 @@
GCC_NO_COMMON_BLOCKS = YES;
GCC_PREPROCESSOR_DEFINITIONS = (
NDEBUG,
"SK_SUPPORT_GPU=0",
"SK_ASSUME_GL_ES=1",
SK_GAMMA_APPLY_TO_A8,
"SK_SUPPORT_GPU=0",
"SKIA_IMPLEMENTATION=1",
SKIA_C_DLL,
SK_SUPPORT_PDF,
SK_HAS_JPEG_LIBRARY,
SK_HAS_PNG_LIBRARY,
SK_CODEC_DECODES_RAW,
SK_HAS_WEBP_LIBRARY,
SK_XML,
SK_BUILD_FOR_WATCHOS,
SK_CODEC_DECODES_JPEG,
SK_CODEC_DECODES_PNG,
SK_CODEC_DECODES_RAW,
SK_CODEC_DECODES_WEBP,
SK_ENCODE_JPEG,
SK_ENCODE_PNG,
SK_ENCODE_WEBP,
SK_GAMMA_APPLY_TO_A8,
SK_SUPPORT_PDF,
SK_USE_LIBGIFCODEC,
SK_XML,
SKIA_C_DLL,
);
GCC_SYMBOLS_PRIVATE_EXTERN = YES;
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;

Просмотреть файл

@ -1,7 +0,0 @@
//
// libSkiaSharp.h
// libSkiaSharp
//
// Created by Bill Holmes on 11/21/15.
// Copyright © 2015 Xamarin. All rights reserved.
//

Просмотреть файл

@ -28,14 +28,14 @@ Please visit https://go.microsoft.com/fwlink/?linkid=868517 to view the release
<dependencies>
<group targetFramework="net462">
<dependency id="System.Memory" version="4.5.3" />
<dependency id="System.Memory" version="1.0.0" />
</group>
<group targetFramework="netstandard1.3">
<dependency id="System.IO.UnmanagedMemoryStream" version="4.3.0" />
<dependency id="System.Memory" version="4.5.3" />
<dependency id="System.IO.UnmanagedMemoryStream" version="1.0.0" />
<dependency id="System.Memory" version="1.0.0" />
</group>
<group targetFramework="netstandard2.0">
<dependency id="System.Memory" version="4.5.3" />
<dependency id="System.Memory" version="1.0.0" />
</group>
<group targetFramework="monoandroid1.0">
</group>
@ -48,13 +48,23 @@ Please visit https://go.microsoft.com/fwlink/?linkid=868517 to view the release
<group targetFramework="xamarinmac2.0">
</group>
<group targetFramework="uap10.0.10240">
<dependency id="System.Memory" version="4.5.3" />
<dependency id="System.Memory" version="1.0.0" />
</group>
<group targetFramework="uap10.0.16299">
<dependency id="System.Memory" version="4.5.3" />
<dependency id="System.Memory" version="1.0.0" />
</group>
<group targetFramework="tizen40">
<dependency id="System.Memory" version="4.5.3" />
<dependency id="System.Memory" version="1.0.0" />
</group>
<group targetFramework="net6.0-ios13.6">
</group>
<group targetFramework="net6.0-maccatalyst13.5">
</group>
<group targetFramework="net6.0-tvos13.4">
</group>
<group targetFramework="net6.0-macos10.15">
</group>
<group targetFramework="net6.0-android30.0">
</group>
</dependencies>
@ -84,6 +94,16 @@ Please visit https://go.microsoft.com/fwlink/?linkid=868517 to view the release
<file platform="windows" src="lib/uap10.0.16299/HarfBuzzSharp.xml" />
<file src="lib/tizen40/HarfBuzzSharp.dll" />
<file src="lib/tizen40/HarfBuzzSharp.xml" />
<file platform="macos,windows" src="lib/net6.0-android/HarfBuzzSharp.dll" target="lib/net6.0-android30.0/HarfBuzzSharp.dll" />
<file platform="macos,windows" src="lib/net6.0-android/HarfBuzzSharp.xml" target="lib/net6.0-android30.0/HarfBuzzSharp.xml" />
<file platform="macos" src="lib/net6.0-ios/HarfBuzzSharp.dll" target="lib/net6.0-ios13.6/HarfBuzzSharp.dll" />
<file platform="macos" src="lib/net6.0-ios/HarfBuzzSharp.xml" target="lib/net6.0-ios13.6/HarfBuzzSharp.xml" />
<file platform="macos" src="lib/net6.0-maccatalyst/HarfBuzzSharp.dll" target="lib/net6.0-maccatalyst13.5/HarfBuzzSharp.dll" />
<file platform="macos" src="lib/net6.0-maccatalyst/HarfBuzzSharp.xml" target="lib/net6.0-maccatalyst13.5/HarfBuzzSharp.xml" />
<file platform="macos" src="lib/net6.0-tvos/HarfBuzzSharp.dll" target="lib/net6.0-tvos13.4/HarfBuzzSharp.dll" />
<file platform="macos" src="lib/net6.0-tvos/HarfBuzzSharp.xml" target="lib/net6.0-tvos13.4/HarfBuzzSharp.xml" />
<file platform="macos" src="lib/net6.0-macos/HarfBuzzSharp.dll" target="lib/net6.0-macos10.15/HarfBuzzSharp.dll" />
<file platform="macos" src="lib/net6.0-macos/HarfBuzzSharp.xml" target="lib/net6.0-macos10.15/HarfBuzzSharp.xml" />
<!-- the build bits -->
<!-- net4x (win32/macos/linux) -->
@ -92,14 +112,22 @@ Please visit https://go.microsoft.com/fwlink/?linkid=868517 to view the release
<!-- others -->
<file src="build/monoandroid1.0/HarfBuzzSharp.targets" />
<file src="build/monoandroid1.0/HarfBuzzSharp.targets" target="buildTransitive/monoandroid1.0/HarfBuzzSharp.targets" />
<file src="build/net6.0-android/HarfBuzzSharp.targets" target="build/net6.0-android30.0/HarfBuzzSharp.targets" />
<file src="build/net6.0-android/HarfBuzzSharp.targets" target="buildTransitive/net6.0-android30.0/HarfBuzzSharp.targets" />
<file src="build/xamarinios1.0/HarfBuzzSharp.targets" />
<file src="build/xamarinios1.0/HarfBuzzSharp.targets" target="buildTransitive/xamarinios1.0/HarfBuzzSharp.targets" />
<file src="build/net6.0-ios/HarfBuzzSharp.targets" target="build/net6.0-ios13.6/HarfBuzzSharp.targets" />
<file src="build/net6.0-ios/HarfBuzzSharp.targets" target="buildTransitive/net6.0-ios13.6/HarfBuzzSharp.targets" />
<file src="build/xamarintvos1.0/HarfBuzzSharp.targets" />
<file src="build/xamarintvos1.0/HarfBuzzSharp.targets" target="buildTransitive/xamarintvos1.0/HarfBuzzSharp.targets" />
<file src="build/net6.0-tvos/HarfBuzzSharp.targets" target="build/net6.0-tvos13.4/HarfBuzzSharp.targets" />
<file src="build/net6.0-tvos/HarfBuzzSharp.targets" target="buildTransitive/net6.0-tvos13.4/HarfBuzzSharp.targets" />
<file src="build/xamarinwatchos1.0/HarfBuzzSharp.targets" />
<file src="build/xamarinwatchos1.0/HarfBuzzSharp.targets" target="buildTransitive/xamarinwatchos1.0/HarfBuzzSharp.targets" />
<file src="build/xamarinmac2.0/HarfBuzzSharp.targets" />
<file src="build/xamarinmac2.0/HarfBuzzSharp.targets" target="buildTransitive/xamarinmac2.0/HarfBuzzSharp.targets" />
<file src="build/net6.0-macos/HarfBuzzSharp.targets" target="build/net6.0-macos10.15/HarfBuzzSharp.targets" />
<file src="build/net6.0-macos/HarfBuzzSharp.targets" target="buildTransitive/net6.0-macos10.15/HarfBuzzSharp.targets" />
<file src="build/tizen40/HarfBuzzSharp.targets" />
<file src="build/tizen40/HarfBuzzSharp.targets" target="buildTransitive/tizen40/HarfBuzzSharp.targets" />
@ -119,17 +147,18 @@ Please visit https://go.microsoft.com/fwlink/?linkid=868517 to view the release
<file src="build/tizen40/arm/libHarfBuzzSharp.so" />
<file src="build/tizen40/x86/libHarfBuzzSharp.so" />
<!-- android -->
<file platform="macos,windows" src="build/monoandroid1.0/x64/libHarfBuzzSharp.so" />
<file platform="macos,windows" src="build/monoandroid1.0/x86/libHarfBuzzSharp.so" />
<file platform="macos,windows" src="build/monoandroid1.0/arm/libHarfBuzzSharp.so" />
<file platform="macos,windows" src="build/monoandroid1.0/arm64/libHarfBuzzSharp.so" />
<file platform="macos,windows" src="runtimes/android-x64/native/libHarfBuzzSharp.so" />
<file platform="macos,windows" src="runtimes/android-x86/native/libHarfBuzzSharp.so" />
<file platform="macos,windows" src="runtimes/android-arm/native/libHarfBuzzSharp.so" />
<file platform="macos,windows" src="runtimes/android-arm64/native/libHarfBuzzSharp.so" />
<!-- ios -->
<file platform="macos" src="build/xamarinios1.0/libHarfBuzzSharp.a" />
<file platform="macos" src="runtimes/ios/native/libHarfBuzzSharp.framework/**/*" target="runtimes/ios/native/libHarfBuzzSharp.framework" />
<!-- maccatalyst -->
<!-- <file platform="macos" src="runtimes/maccatalyst/native/libHarfBuzzSharp.framework/**/*" target="runtimes/maccatalyst/native/libHarfBuzzSharp.framework" /> -->
<!-- tvos -->
<file platform="macos" src="build/xamarintvos1.0/libHarfBuzzSharp.a" />
<file platform="macos" src="runtimes/tvos/native/libHarfBuzzSharp.framework/**/*" target="runtimes/tvos/native/libHarfBuzzSharp.framework" />
<!-- watchos -->
<file platform="macos" src="build/xamarinwatchos1.0/libHarfBuzzSharp.a" />
<file platform="macos" src="runtimes/watchos/native/libHarfBuzzSharp.framework/**/*" target="runtimes/watchos/native/libHarfBuzzSharp.framework" />
<!-- legal -->
<file src="LICENSE.txt" />

Некоторые файлы не были показаны из-за слишком большого количества измененных файлов Показать больше