Split AvaloniaNative static package
This commit is contained in:
1 parent
aa0118a4e3
commit
a700f4a124
12 files changed
+211
-36
No files matched your search
@@ -1,50 +0,0 @@
|
||||
using System;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
namespace StaticLink.Avalonia;
|
||||
|
||||
internal static class MacOSFontWarmup
|
||||
{
|
||||
[ModuleInitializer]
|
||||
internal static void Initialize()
|
||||
{
|
||||
if (!OperatingSystem.IsMacOS())
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
var nsApplication = objc_getClass("NSApplication");
|
||||
var sharedApplication = sel_registerName("sharedApplication");
|
||||
_ = objc_msgSend(nsApplication, sharedApplication);
|
||||
|
||||
var nsFont = objc_getClass("NSFont");
|
||||
var systemFontOfSize = sel_registerName("systemFontOfSize:");
|
||||
var systemFontOfSizeWidth = sel_registerName("systemFontOfSize:width:");
|
||||
|
||||
_ = objc_msgSend(nsFont, systemFontOfSize, 13.0);
|
||||
_ = objc_msgSend(nsFont, systemFontOfSizeWidth, 13.0, 0.0);
|
||||
}
|
||||
catch
|
||||
{
|
||||
// Never fail application startup from the defensive macOS font-cache warmup.
|
||||
}
|
||||
}
|
||||
|
||||
[DllImport("/usr/lib/libobjc.A.dylib", EntryPoint = "objc_getClass")]
|
||||
private static extern IntPtr objc_getClass([MarshalAs(UnmanagedType.LPUTF8Str)] string name);
|
||||
|
||||
[DllImport("/usr/lib/libobjc.A.dylib", EntryPoint = "sel_registerName")]
|
||||
private static extern IntPtr sel_registerName([MarshalAs(UnmanagedType.LPUTF8Str)] string name);
|
||||
|
||||
[DllImport("/usr/lib/libobjc.A.dylib", EntryPoint = "objc_msgSend")]
|
||||
private static extern IntPtr objc_msgSend(IntPtr receiver, IntPtr selector);
|
||||
|
||||
[DllImport("/usr/lib/libobjc.A.dylib", EntryPoint = "objc_msgSend")]
|
||||
private static extern IntPtr objc_msgSend(IntPtr receiver, IntPtr selector, double value);
|
||||
|
||||
[DllImport("/usr/lib/libobjc.A.dylib", EntryPoint = "objc_msgSend")]
|
||||
private static extern IntPtr objc_msgSend(IntPtr receiver, IntPtr selector, double value, double width);
|
||||
}
|
||||
@@ -49,12 +49,8 @@
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup Condition="'$(PublishAot)' == 'true' and ('$(RuntimeIdentifier)' == 'osx-x64' or '$(RuntimeIdentifier)' == 'osx-arm64') and '$(_StaticLinkAvaloniaNativeRoot)' != ''">
|
||||
<Compile Include="$(MSBuildThisFileDirectory)StaticLink.Avalonia.MacOSFontWarmup.cs" Link="StaticLink.Avalonia.MacOSFontWarmup.cs" Condition="Exists('$(MSBuildThisFileDirectory)StaticLink.Avalonia.MacOSFontWarmup.cs')" />
|
||||
<DirectPInvoke Include="libAvaloniaNative" Condition="Exists('$(_StaticLinkAvaloniaNativeRoot)/libAvaloniaNative.a')" />
|
||||
<DirectPInvoke Include="libHarfBuzzSharp" Condition="Exists('$(_StaticLinkAvaloniaNativeRoot)/libHarfBuzzSharp.a')" />
|
||||
<DirectPInvoke Include="libSkiaSharp" Condition="Exists('$(_StaticLinkAvaloniaNativeRoot)/libSkiaSharp.a')" />
|
||||
<NativeLibrary Include="$(_StaticLinkAvaloniaNativeRoot)/macos_font_preinit.o" Condition="Exists('$(_StaticLinkAvaloniaNativeRoot)/macos_font_preinit.o')" />
|
||||
<NativeLibrary Include="$(_StaticLinkAvaloniaNativeRoot)/libAvaloniaNative.a" Condition="Exists('$(_StaticLinkAvaloniaNativeRoot)/libAvaloniaNative.a')" />
|
||||
<NativeLibrary Include="$(_StaticLinkAvaloniaNativeRoot)/libHarfBuzzSharp.a" Condition="Exists('$(_StaticLinkAvaloniaNativeRoot)/libHarfBuzzSharp.a')" />
|
||||
<NativeLibrary Include="$(_StaticLinkAvaloniaNativeRoot)/libskia.a" Condition="Exists('$(_StaticLinkAvaloniaNativeRoot)/libskia.a')" />
|
||||
<NativeLibrary Include="$(_StaticLinkAvaloniaNativeRoot)/libSkiaSharp.a" Condition="Exists('$(_StaticLinkAvaloniaNativeRoot)/libSkiaSharp.a')" />
|
||||
@@ -96,8 +92,6 @@
|
||||
BeforeTargets="WriteIlcRspFileForCompilation"
|
||||
Condition="'$(PublishAot)' == 'true' and ('$(RuntimeIdentifier)' == 'osx-x64' or '$(RuntimeIdentifier)' == 'osx-arm64') and '$(_StaticLinkAvaloniaNativeRoot)' != ''">
|
||||
<ItemGroup>
|
||||
<DirectPInvoke Include="libAvaloniaNative" Condition="Exists('$(_StaticLinkAvaloniaNativeRoot)/libAvaloniaNative.a')" />
|
||||
<DirectPInvoke Include="libAvaloniaNative.dylib" Condition="Exists('$(_StaticLinkAvaloniaNativeRoot)/libAvaloniaNative.a')" />
|
||||
<DirectPInvoke Include="libHarfBuzzSharp" Condition="Exists('$(_StaticLinkAvaloniaNativeRoot)/libHarfBuzzSharp.a')" />
|
||||
<DirectPInvoke Include="libHarfBuzzSharp.dylib" Condition="Exists('$(_StaticLinkAvaloniaNativeRoot)/libHarfBuzzSharp.a')" />
|
||||
<DirectPInvoke Include="libSkiaSharp" Condition="Exists('$(_StaticLinkAvaloniaNativeRoot)/libSkiaSharp.a')" />
|
||||
@@ -118,7 +112,6 @@
|
||||
<_StaticLinkAvaloniaFilesToDelete Include="$(PublishDir)libSkiaSharp.so" />
|
||||
<_StaticLinkAvaloniaFilesToDelete Include="$(PublishDir)libHarfBuzzSharp.dylib" />
|
||||
<_StaticLinkAvaloniaFilesToDelete Include="$(PublishDir)libSkiaSharp.dylib" />
|
||||
<_StaticLinkAvaloniaFilesToDelete Include="$(PublishDir)libAvaloniaNative.dylib" />
|
||||
</ItemGroup>
|
||||
<Delete Files="@(_StaticLinkAvaloniaFilesToDelete)" TreatErrorsAsWarnings="true" />
|
||||
</Target>
|
||||
|
||||
Reference in new issue
Block a user