зеркало из https://github.com/mono/SkiaSharp.git
Added tvOS support
This commit is contained in:
Родитель
da831515be
Коммит
470591f7a1
|
@ -42,7 +42,9 @@ namespace SkiaSharp
|
|||
{
|
||||
internal static class SkiaApi
|
||||
{
|
||||
#if MONOTOUCH
|
||||
#if __TVOS__ && __UNIFIED__
|
||||
const string SKIA = "@rpath/libSkiaSharp.framework/libSkiaSharp";
|
||||
#elif __IOS__ && __UNIFIED__
|
||||
const string SKIA = "@rpath/libSkiaSharp.framework/libSkiaSharp";
|
||||
#elif __ANDROID__
|
||||
const string SKIA = "libSkiaSharp.so";
|
||||
|
|
|
@ -7,6 +7,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SkiaSharp.Android", "SkiaSh
|
|||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SkiaSharp.iOS", "SkiaSharp.iOS\SkiaSharp.iOS.csproj", "{6A678CFB-21A7-4E81-8909-FD72ABBFD408}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SkiaSharp.tvOS", "SkiaSharp.tvOS\SkiaSharp.tvOS.csproj", "{5180E370-A455-42BB-99F9-97BD269B8A52}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SkiaSharp.OSX", "SkiaSharp.OSX\SkiaSharp.OSX.csproj", "{4588A759-3853-49B8-8A68-6C7917BE9220}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SkiaSharp.Portable", "SkiaSharp.Portable\SkiaSharp.Portable.csproj", "{7AA90628-2FDD-4585-AF2F-CC51CFA8B52A}"
|
||||
|
@ -23,6 +25,10 @@ Global
|
|||
{4588A759-3853-49B8-8A68-6C7917BE9220}.Debug|x86.Build.0 = Debug|Any CPU
|
||||
{4588A759-3853-49B8-8A68-6C7917BE9220}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{4588A759-3853-49B8-8A68-6C7917BE9220}.Release|x86.Build.0 = Release|Any CPU
|
||||
{5180E370-A455-42BB-99F9-97BD269B8A52}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||
{5180E370-A455-42BB-99F9-97BD269B8A52}.Debug|x86.Build.0 = Debug|Any CPU
|
||||
{5180E370-A455-42BB-99F9-97BD269B8A52}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{5180E370-A455-42BB-99F9-97BD269B8A52}.Release|x86.Build.0 = Release|Any CPU
|
||||
{6A678CFB-21A7-4E81-8909-FD72ABBFD408}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||
{6A678CFB-21A7-4E81-8909-FD72ABBFD408}.Debug|x86.Build.0 = Debug|Any CPU
|
||||
{6A678CFB-21A7-4E81-8909-FD72ABBFD408}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
|
|
|
@ -39,9 +39,7 @@
|
|||
<Folder Include="Properties\" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="AllLibs.linkwith.cs">
|
||||
<DependentUpon>libjpeg-turbo.a</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="AllLibs.linkwith.cs" />
|
||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
|
|
|
@ -0,0 +1,4 @@
|
|||
using ObjCRuntime;
|
||||
|
||||
[assembly: LinkWith ("libSkiaSharp.framework")]
|
||||
|
|
@ -0,0 +1,11 @@
|
|||
using System;
|
||||
|
||||
using UIKit;
|
||||
using Foundation;
|
||||
using ObjCRuntime;
|
||||
using CoreGraphics;
|
||||
|
||||
namespace SkiaSharp.tvOS
|
||||
{
|
||||
}
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
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 you’re using the “Link SDK assemblies only” option, which is the default for device builds.
|
||||
|
||||
[assembly: LinkerSafe]
|
|
@ -0,0 +1,56 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup>
|
||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
||||
<ProjectTypeGuids>{4A1ED743-3331-459B-915A-4B17C7B6DBB6};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
|
||||
<ProjectGuid>{5180E370-A455-42BB-99F9-97BD269B8A52}</ProjectGuid>
|
||||
<OutputType>Library</OutputType>
|
||||
<RootNamespace>SkiaSharp</RootNamespace>
|
||||
<IPhoneResourcePrefix>Resources</IPhoneResourcePrefix>
|
||||
<AssemblyName>SkiaSharp</AssemblyName>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<DebugType>full</DebugType>
|
||||
<Optimize>false</Optimize>
|
||||
<OutputPath>bin\Debug</OutputPath>
|
||||
<DefineConstants>DEBUG;MONOTOUCH;</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
<ConsolePause>false</ConsolePause>
|
||||
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
||||
<Optimize>true</Optimize>
|
||||
<OutputPath>bin\Release</OutputPath>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
<ConsolePause>false</ConsolePause>
|
||||
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
|
||||
<DefineConstants>MONOTOUCH;</DefineConstants>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="System" />
|
||||
<Reference Include="Xamarin.TVOS" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Folder Include="Resources\" />
|
||||
<Folder Include="Properties\" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="AllLibs.linkwith.cs" />
|
||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ObjcBindingApiDefinition Include="ApiDefinition.cs" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ObjcBindingCoreSource Include="StructsAndEnums.cs" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ObjcBindingNativeFramework Include="..\..\native-builds\lib\tvos\libSkiaSharp.framework" />
|
||||
</ItemGroup>
|
||||
<Import Project="..\Binding\Binding.projitems" Label="Shared" Condition="Exists('..\Binding\Binding.projitems')" />
|
||||
<Import Project="$(MSBuildExtensionsPath)\Xamarin\TVOS\Xamarin.TVOS.ObjCBinding.CSharp.targets" />
|
||||
</Project>
|
|
@ -0,0 +1,6 @@
|
|||
using System;
|
||||
|
||||
namespace SkiaSharp.tvOS
|
||||
{
|
||||
}
|
||||
|
51
build.cake
51
build.cake
|
@ -296,6 +296,7 @@ Task ("externals-native")
|
|||
.IsDependentOn ("externals-windows")
|
||||
.IsDependentOn ("externals-osx")
|
||||
.IsDependentOn ("externals-ios")
|
||||
.IsDependentOn ("externals-tvos")
|
||||
.IsDependentOn ("externals-android")
|
||||
.Does (() =>
|
||||
{
|
||||
|
@ -593,6 +594,52 @@ Task ("externals-ios")
|
|||
(FilePath) "arm64/libSkiaSharp.framework/libSkiaSharp"
|
||||
});
|
||||
});
|
||||
// this builds the native C and C++ externals for tvOS
|
||||
Task ("externals-tvos")
|
||||
.WithCriteria (IsRunningOnUnix ())
|
||||
.WithCriteria (
|
||||
!FileExists ("native-builds/lib/tvos/libSkiaSharp.framework/libSkiaSharp"))
|
||||
.Does (() =>
|
||||
{
|
||||
var convertIOSToTVOS = new Action (() => {
|
||||
var glob = "./skia/out/gyp/*.xcodeproj/project.pbxproj";
|
||||
ReplaceTextInFiles (glob, "SDKROOT = iphoneos;", "SDKROOT = appletvos;");
|
||||
ReplaceTextInFiles (glob, "IPHONEOS_DEPLOYMENT_TARGET = 9.2;", "TVOS_DEPLOYMENT_TARGET = 9.1;");
|
||||
ReplaceTextInFiles (glob, "TARGETED_DEVICE_FAMILY = \"1,2\";", "TARGETED_DEVICE_FAMILY = 3;");
|
||||
ReplaceTextInFiles (glob, "\"CODE_SIGN_IDENTITY[sdk=iphoneos*]\" = \"iPhone Developer\";", "");
|
||||
});
|
||||
|
||||
var buildArch = new Action<string, string> ((sdk, arch) => {
|
||||
XCodeBuild (new XCodeBuildSettings {
|
||||
Project = "native-builds/libSkiaSharp_tvos/libSkiaSharp.xcodeproj",
|
||||
Target = "libSkiaSharp",
|
||||
Sdk = sdk,
|
||||
Arch = arch,
|
||||
Configuration = "Release",
|
||||
});
|
||||
if (!DirectoryExists ("native-builds/lib/tvos/" + arch)) {
|
||||
CreateDirectory ("native-builds/lib/tvos/" + arch);
|
||||
}
|
||||
CopyDirectory ("native-builds/libSkiaSharp_tvos/build/Release-" + sdk, "native-builds/lib/tvos/" + arch);
|
||||
});
|
||||
|
||||
// set up the gyp environment variables
|
||||
AppendEnvironmentVariable ("PATH", DEPOT_PATH.FullPath);
|
||||
|
||||
RunGyp ("skia_os='ios' skia_arch_type='arm' armv7=1 arm_neon=0", "ninja,xcode");
|
||||
convertIOSToTVOS();
|
||||
|
||||
buildArch ("appletvsimulator", "x86_64");
|
||||
buildArch ("appletvos", "arm64");
|
||||
|
||||
// create the fat framework
|
||||
CopyDirectory ("native-builds/lib/tvos/arm64/libSkiaSharp.framework/", "native-builds/lib/tvos/libSkiaSharp.framework/");
|
||||
DeleteFile ("native-builds/lib/tvos/libSkiaSharp.framework/libSkiaSharp");
|
||||
RunLipo ("native-builds/lib/tvos/", "libSkiaSharp.framework/libSkiaSharp", new [] {
|
||||
(FilePath) "x86_64/libSkiaSharp.framework/libSkiaSharp",
|
||||
(FilePath) "arm64/libSkiaSharp.framework/libSkiaSharp"
|
||||
});
|
||||
});
|
||||
// this builds the native C and C++ externals for Android
|
||||
Task ("externals-android")
|
||||
.WithCriteria (IsRunningOnUnix ())
|
||||
|
@ -707,6 +754,7 @@ Task ("libs-osx")
|
|||
|
||||
if (!DirectoryExists ("./output/android/")) CreateDirectory ("./output/android/");
|
||||
if (!DirectoryExists ("./output/ios/")) CreateDirectory ("./output/ios/");
|
||||
if (!DirectoryExists ("./output/tvos/")) CreateDirectory ("./output/tvos/");
|
||||
if (!DirectoryExists ("./output/osx/")) CreateDirectory ("./output/osx/");
|
||||
if (!DirectoryExists ("./output/portable/")) CreateDirectory ("./output/portable/");
|
||||
if (!DirectoryExists ("./output/mac/")) CreateDirectory ("./output/mac/");
|
||||
|
@ -714,6 +762,7 @@ Task ("libs-osx")
|
|||
// copy build output
|
||||
CopyFileToDirectory ("./binding/SkiaSharp.Android/bin/Release/SkiaSharp.dll", "./output/android/");
|
||||
CopyFileToDirectory ("./binding/SkiaSharp.iOS/bin/Release/SkiaSharp.dll", "./output/ios/");
|
||||
CopyFileToDirectory ("./binding/SkiaSharp.tvOS/bin/Release/SkiaSharp.dll", "./output/tvos/");
|
||||
CopyFileToDirectory ("./binding/SkiaSharp.OSX/bin/Release/SkiaSharp.dll", "./output/osx/");
|
||||
CopyFileToDirectory ("./binding/SkiaSharp.OSX/bin/Release/SkiaSharp.OSX.targets", "./output/osx/");
|
||||
CopyFileToDirectory ("./binding/SkiaSharp.Portable/bin/Release/SkiaSharp.dll", "./output/portable/");
|
||||
|
@ -896,6 +945,8 @@ Task ("clean-externals").Does (() =>
|
|||
CleanDirectories ("native-builds/libSkiaSharp_android/libs");
|
||||
// ios
|
||||
CleanDirectories ("native-builds/libSkiaSharp_ios/build");
|
||||
// tvos
|
||||
CleanDirectories ("native-builds/libSkiaSharp_tvos/build");
|
||||
// osx
|
||||
CleanDirectories ("native-builds/libSkiaSharp_osx/build");
|
||||
// windows
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
lib/
|
||||
xcuserdata/
|
||||
libskia_ios/build/
|
||||
libskia_tvos/build/
|
||||
libskia_osx/build/
|
||||
|
|
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
|
@ -0,0 +1,26 @@
|
|||
<?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>en</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>FMWK</string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>1.0</string>
|
||||
<key>CFBundleSignature</key>
|
||||
<string>????</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>$(CURRENT_PROJECT_VERSION)</string>
|
||||
<key>NSPrincipalClass</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
</plist>
|
|
@ -0,0 +1,19 @@
|
|||
//
|
||||
// libSkiaSharp.h
|
||||
// libSkiaSharp
|
||||
//
|
||||
// Created by Bill Holmes on 11/21/15.
|
||||
// Copyright © 2015 Xamarin. All rights reserved.
|
||||
//
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
|
||||
//! Project version number for libSkiaSharp.
|
||||
FOUNDATION_EXPORT double libSkiaSharpVersionNumber;
|
||||
|
||||
//! Project version string for libSkiaSharp.
|
||||
FOUNDATION_EXPORT const unsigned char libSkiaSharpVersionString[];
|
||||
|
||||
// In this header, you should import all the public headers of your framework using statements like #import <libSkiaSharp/PublicHeader.h>
|
||||
|
||||
|
|
@ -22,6 +22,8 @@
|
|||
<file src="output/docs/msxml/SkiaSharp.xml" target="lib/MonoAndroid" />
|
||||
<file src="output/ios/SkiaSharp.dll" target="lib/XamariniOS" />
|
||||
<file src="output/docs/msxml/SkiaSharp.xml" target="lib/XamariniOS" />
|
||||
<file src="output/tvos/SkiaSharp.dll" target="lib/XamarintvOS" />
|
||||
<file src="output/docs/msxml/SkiaSharp.xml" target="lib/XamarintvOS" />
|
||||
<file src="output/osx/SkiaSharp.dll" target="lib/XamarinMac" />
|
||||
<file src="output/docs/msxml/SkiaSharp.xml" target="lib/XamarinMac" />
|
||||
|
||||
|
|
|
@ -22,6 +22,8 @@
|
|||
<file src="output/docs/msxml/SkiaSharp.xml" target="lib/MonoAndroid" />
|
||||
<file src="output/ios/SkiaSharp.dll" target="lib/XamariniOS" />
|
||||
<file src="output/docs/msxml/SkiaSharp.xml" target="lib/XamariniOS" />
|
||||
<file src="output/tvos/SkiaSharp.dll" target="lib/XamarintvOS" />
|
||||
<file src="output/docs/msxml/SkiaSharp.xml" target="lib/XamarintvOS" />
|
||||
<file src="output/osx/SkiaSharp.dll" target="lib/XamarinMac" />
|
||||
<file src="output/docs/msxml/SkiaSharp.xml" target="lib/XamarinMac" />
|
||||
<file src="output/uwp/SkiaSharp.dll" target="lib/uap10.0" />
|
||||
|
|
Загрузка…
Ссылка в новой задаче