This commit is contained in:
Matthew Leibowitz 2016-06-09 15:55:48 +02:00
Родитель da831515be
Коммит 470591f7a1
15 изменённых файлов: 2087 добавлений и 4 удалений

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

@ -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 youre 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
{
}

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

@ -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
native-builds/.gitignore поставляемый
Просмотреть файл

@ -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" />