Merge branch 'master' into harfbuzzUpdate

This commit is contained in:
Matthew Leibowitz 2019-02-05 05:27:32 +02:00 коммит произвёл GitHub
Родитель 4abce80d95 3b1177b891
Коммит 8ebdc9a856
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: 4AEE18F83AFDEB23
15 изменённых файлов: 566 добавлений и 27 удалений

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

@ -47,6 +47,7 @@
"notification_subscribers": [],
"sync_notification_subscribers": [],
"branches_to_filter": [],
"git_repository_branch_open_to_public_contributors": "master",
"skip_source_output_uploading": false,
"need_preview_pull_request": true,
"contribution_branch_mappings": {},
@ -60,6 +61,7 @@
],
"branch_target_mapping": {},
"need_generate_pdf_url_template": false,
"targets": {},
"need_generate_pdf": false,
"need_generate_intellisense": false,
"dependent_packages": [

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

@ -53,7 +53,7 @@ namespace SkiaSharp
public bool Intersects(SKRectI rect)
{
return SkiaApi.sk_region_intersects(Handle, rect);
return SkiaApi.sk_region_intersects_rect(Handle, ref rect);
}
public bool SetRegion(SKRegion region)

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

@ -1818,7 +1818,7 @@ namespace SkiaSharp
public extern static bool sk_region_intersects (sk_region_t r, sk_region_t src);
[DllImport (SKIA, CallingConvention = CallingConvention.Cdecl)]
[return: MarshalAs (UnmanagedType.I1)]
public extern static bool sk_region_intersects (sk_region_t r, SKRectI rect);
public extern static bool sk_region_intersects_rect (sk_region_t r, ref SKRectI rect);
[DllImport (SKIA, CallingConvention = CallingConvention.Cdecl)]
[return: MarshalAs (UnmanagedType.I1)]
public extern static bool sk_region_set_region (sk_region_t r, sk_region_t src);

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

@ -36,9 +36,12 @@ var MDocPath = MakeAbsolute ((FilePath)"externals/api-doc-tools/bin/Release/mdoc
var MSBuildToolPath = GetMSBuildToolPath (EnvironmentVariable ("MSBUILD_EXE"));
var PythonToolPath = EnvironmentVariable ("PYTHON_EXE") ?? "python";
DirectoryPath ANDROID_SDK_ROOT = EnvironmentVariable ("ANDROID_SDK_ROOT") ?? EnvironmentVariable ("ANDROID_HOME") ?? EnvironmentVariable ("HOME") + "/Library/Developer/Xamarin/android-sdk-macosx";
DirectoryPath ANDROID_NDK_HOME = EnvironmentVariable ("ANDROID_NDK_HOME") ?? EnvironmentVariable ("ANDROID_NDK_ROOT") ?? EnvironmentVariable ("HOME") + "/Library/Developer/Xamarin/android-ndk";
DirectoryPath TIZEN_STUDIO_HOME = EnvironmentVariable ("TIZEN_STUDIO_HOME") ?? EnvironmentVariable ("HOME") + "/tizen-studio";
DirectoryPath PROFILE_PATH = EnvironmentVariable ("USERPROFILE") ?? EnvironmentVariable ("HOME");
DirectoryPath NUGET_PACKAGES = EnvironmentVariable ("NUGET_PACKAGES") ?? PROFILE_PATH.Combine (".nuget/packages");
DirectoryPath ANDROID_SDK_ROOT = EnvironmentVariable ("ANDROID_SDK_ROOT") ?? EnvironmentVariable ("ANDROID_HOME") ?? PROFILE_PATH.Combine ("Library/Developer/Xamarin/android-sdk-macosx");
DirectoryPath ANDROID_NDK_HOME = EnvironmentVariable ("ANDROID_NDK_HOME") ?? EnvironmentVariable ("ANDROID_NDK_ROOT") ?? PROFILE_PATH.Combine ("Library/Developer/Xamarin/android-ndk");
DirectoryPath TIZEN_STUDIO_HOME = EnvironmentVariable ("TIZEN_STUDIO_HOME") ?? PROFILE_PATH.Combine ("tizen-studio");
DirectoryPath ROOT_PATH = MakeAbsolute(Directory("."));
DirectoryPath DEPOT_PATH = MakeAbsolute(ROOT_PATH.Combine("externals/depot_tools"));
@ -48,9 +51,6 @@ DirectoryPath HARFBUZZ_PATH = MakeAbsolute(ROOT_PATH.Combine("externals/harfbuzz
DirectoryPath DOCS_PATH = MakeAbsolute(ROOT_PATH.Combine("docs/xml"));
DirectoryPath PACKAGE_CACHE_PATH = MakeAbsolute(ROOT_PATH.Combine("externals/package_cache"));
DirectoryPath PROFILE_PATH = EnvironmentVariable ("USERPROFILE") ?? EnvironmentVariable ("HOME");
DirectoryPath NUGET_PACKAGES = EnvironmentVariable ("NUGET_PACKAGES") ?? PROFILE_PATH.Combine (".nuget/packages");
var FEATURE_NAME = EnvironmentVariable ("FEATURE_NAME") ?? "";
var BUILD_NUMBER = EnvironmentVariable ("BUILD_NUMBER") ?? "";
if (string.IsNullOrEmpty (BUILD_NUMBER)) {
@ -215,11 +215,11 @@ Task ("samples")
};
var platformMatrix = new Dictionary<string, string> {
{ "ios", "iPhone" },
{ "ios", "iPhoneSimulator" },
{ "tvos", "iPhoneSimulator" },
{ "uwp", "x86" },
{ "watchos", "iPhoneSimulator" },
{ "xamarin.forms.mac", "iPhone" },
{ "xamarin.forms.mac", "iPhoneSimulator" },
{ "xamarin.forms.windows", "x86" },
};
@ -558,7 +558,10 @@ var envVarsWhitelist = new [] {
"processor_identifier", "node_name", "node_labels", "branch_name",
"os", "build_url", "build_number", "number_of_processors",
"node_label", "build_id", "git_sha", "git_branch_name",
"feature_name"
"feature_name", "msbuild_exe", "python_exe",
"home", "userprofile", "nuget_packages",
"android_sdk_root", "android_ndk_root",
"android_home", "android_ndk_home", "tizen_studio_home"
};
var envVars = EnvironmentVariables ();
var max = envVars.Max (v => v.Key.Length) + 2;

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

@ -592,10 +592,10 @@ Task ("externals-linux")
$"is_official_build=true skia_enable_tools=false " +
$"target_os='linux' target_cpu='{arch}' " +
$"skia_use_icu=false skia_use_sfntly=false skia_use_piex=true " +
$"skia_use_system_expat=false skia_use_system_freetype2=true skia_use_system_libjpeg_turbo=false skia_use_system_libpng=false skia_use_system_libwebp=false skia_use_system_zlib=false " +
$"skia_use_system_expat=false skia_use_system_freetype2=false skia_use_system_libjpeg_turbo=false skia_use_system_libpng=false skia_use_system_libwebp=false skia_use_system_zlib=false " +
$"skia_enable_gpu={(SUPPORT_GPU ? "true" : "false")} " +
$"extra_cflags=[ '-DSKIA_C_DLL' ] " +
$"extra_ldflags=[ ] " +
$"extra_ldflags=[ '-static-libstdc++', '-static-libgcc' ] " +
$"{CUSTOM_COMPILERS} " +
$"linux_soname_version='{soname}'");

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

@ -1 +1 @@
Subproject commit 5acec5307c1990fe16eba5e67e1a666f645ee7be
Subproject commit d0706c89a31b228b3b5a104543cdf47cbccf6611

434
scripts/azure-pipelines.yml Normal file
Просмотреть файл

@ -0,0 +1,434 @@
# TODO: implement features
# TODO: download signed packages
trigger:
- master
variables:
FeatureNamePrefix: 'feature/'
FeatureName: ''
VERBOSITY: normal
GIT_SHA: $(Build.SourceVersion)
GIT_BRANCH_NAME: $(Build.SourceBranchName)
BUILD_NUMBER: $(Build.BuildId)
FEATURE_NAME: $(FeatureName)
BASE_LINUX_PACKAGES: curl mono-complete msbuild
NATIVE_LINUX_PACKAGES: $(BASE_LINUX_PACKAGES) python git libfontconfig1-dev clang-3.8 make
TIZEN_LINUX_PACKAGES: $(BASE_LINUX_PACKAGES) python git openjdk-8-jdk zip libxcb-xfixes0 libxcb-render-util0 libwebkitgtk-1.0-0 libxcb-image0 acl libsdl1.2debian libv4l-0 libxcb-randr0 libxcb-shape0 libxcb-icccm4 libsm6 gettext rpm2cpio cpio bridge-utils openvpn
MANAGED_LINUX_PACKAGES: $(BASE_LINUX_PACKAGES) dotnet-sdk-2.1 ttf-ancient-fonts
jobs:
# NATIVE JOBS - WINDOWS
- job: native_android_windows
displayName: Build Native Android (Windows)
timeoutInMinutes: 120
pool:
vmImage: vs2017-win2016
steps:
- task: UsePythonVersion@0
inputs:
versionSpec: '2.7'
architecture: 'x64'
- powershell: .\scripts\install-android-ndk.ps1
- powershell: .\bootstrapper.ps1 -t externals-android -v $env:VERBOSITY
env:
ANDROID_NDK_HOME: $(USERPROFILE)\android-ndk
- task: PublishPipelineArtifact@0
inputs:
artifactName: native-android-windows
targetPath: 'output'
- job: native_tizen_windows
displayName: Build Native Tizen (Windows)
timeoutInMinutes: 120
pool:
vmImage: vs2017-win2016
steps:
- task: UsePythonVersion@0
inputs:
versionSpec: '2.7'
architecture: 'x64'
- powershell: .\scripts\install-tizen.ps1
- powershell: .\bootstrapper.ps1 -t externals-tizen -v $env:VERBOSITY
- task: PublishPipelineArtifact@0
inputs:
artifactName: native-tizen-windows
targetPath: 'output'
- job: native_uwp_windows
displayName: Build Native UWP (Windows)
timeoutInMinutes: 120
pool:
vmImage: vs2017-win2016
steps:
- task: UsePythonVersion@0
inputs:
versionSpec: '2.7'
architecture: 'x64'
- powershell: .\bootstrapper.ps1 -t externals-uwp -v $env:VERBOSITY
- task: PublishPipelineArtifact@0
inputs:
artifactName: native-uwp-windows
targetPath: 'output'
- job: native_win32_windows
displayName: Build Native Win32 (Windows)
timeoutInMinutes: 120
pool:
vmImage: vs2017-win2016
steps:
- task: UsePythonVersion@0
inputs:
versionSpec: '2.7'
architecture: 'x64'
- powershell: .\bootstrapper.ps1 -t externals-windows -v $env:VERBOSITY
- task: PublishPipelineArtifact@0
inputs:
artifactName: native-win32-windows
targetPath: 'output'
# NATIVE JOBS - MAC
- job: native_android_macos
displayName: Build Native Android (macOS)
pool:
vmImage: macos-10.13
steps:
- bash: ./scripts/install-android-ndk.sh
- bash: ./bootstrapper.sh -t externals-android -v $VERBOSITY
env:
ANDROID_NDK_HOME: $(HOME)/android-ndk
- task: PublishPipelineArtifact@0
inputs:
artifactName: native-android-macos
targetPath: 'output'
- job: native_ios_macos
displayName: Build Native iOS (macOS)
pool:
vmImage: macos-10.13
steps:
- bash: ./bootstrapper.sh -t externals-ios -v $VERBOSITY
- task: PublishPipelineArtifact@0
inputs:
artifactName: native-ios-macos
targetPath: 'output'
- job: native_macos_macos
displayName: Build Native macOS (macOS)
pool:
vmImage: macos-10.13
steps:
- bash: ./bootstrapper.sh -t externals-macos -v $VERBOSITY
- task: PublishPipelineArtifact@0
inputs:
artifactName: native-macos-macos
targetPath: 'output'
- job: native_tizen_macos
displayName: Build Native Tizen (macOS)
pool:
vmImage: macos-10.13
steps:
- bash: ./scripts/install-tizen.sh
- bash: ./bootstrapper.sh -t externals-tizen -v $VERBOSITY
- task: PublishPipelineArtifact@0
inputs:
artifactName: native-tizen-macos
targetPath: 'output'
- job: native_tvos_macos
displayName: Build Native tvOS (macOS)
pool:
vmImage: macos-10.13
steps:
- bash: ./bootstrapper.sh -t externals-tvos -v $VERBOSITY
- task: PublishPipelineArtifact@0
inputs:
artifactName: native-tvos-macos
targetPath: 'output'
- job: native_watchos_macos
displayName: Build Native watchOS (macOS)
pool:
vmImage: macos-10.13
steps:
- bash: ./bootstrapper.sh -t externals-watchos -v $VERBOSITY
- task: PublishPipelineArtifact@0
inputs:
artifactName: native-watchos-macos
targetPath: 'output'
# NATIVE JOBS - LINUX
- job: native_linux_linux
displayName: Build Native Linux (Linux)
pool:
vmImage: ubuntu-16.04
container: ubuntu:14.04
steps:
- bash: |
sudo apt update
sudo apt install -y apt-transport-https
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF
echo "deb https://download.mono-project.com/repo/ubuntu stable-trusty main" | sudo tee /etc/apt/sources.list.d/mono-official-stable.list
sudo apt update
sudo apt install -y $NATIVE_LINUX_PACKAGES
- bash: ./bootstrapper.sh -t externals-linux -v $VERBOSITY
env:
CC: clang-3.8
CXX: clang++-3.8
- task: PublishPipelineArtifact@0
inputs:
artifactName: native-linux-linux
targetPath: 'output'
- job: native_tizen_linux
displayName: Build Native Tizen (Linux)
pool:
vmImage: ubuntu-16.04
steps:
- bash: |
sudo apt update
sudo apt install -y $TIZEN_LINUX_PACKAGES
- bash: ./scripts/install-tizen.sh
- bash: ./bootstrapper.sh -t externals-tizen -v $VERBOSITY
- task: PublishPipelineArtifact@0
inputs:
artifactName: native-tizen-linux
targetPath: 'output'
# MANAGED JOBS
- job: managed_windows
displayName: Build Managed (Windows)
dependsOn:
- native_android_windows
- native_tizen_windows
- native_uwp_windows
- native_win32_windows
pool:
vmImage: vs2017-win2016
steps:
- task: DownloadPipelineArtifact@0
inputs:
artifactName: native-android-windows
targetPath: 'output'
- task: DownloadPipelineArtifact@0
inputs:
artifactName: native-tizen-windows
targetPath: 'output'
- task: DownloadPipelineArtifact@0
inputs:
artifactName: native-uwp-windows
targetPath: 'output'
- task: DownloadPipelineArtifact@0
inputs:
artifactName: native-win32-windows
targetPath: 'output'
- powershell: .\bootstrapper.ps1 -t libs-only -v $env:VERBOSITY
- task: PublishPipelineArtifact@0
inputs:
artifactName: managed-windows
targetPath: 'output'
- job: managed_macos
displayName: Build Managed (macOS)
dependsOn:
- native_android_macos
- native_ios_macos
- native_macos_macos
- native_tizen_macos
- native_tvos_macos
- native_watchos_macos
pool:
vmImage: macos-10.13
steps:
- task: DownloadPipelineArtifact@0
inputs:
artifactName: native-android-macos
targetPath: 'output'
- task: DownloadPipelineArtifact@0
inputs:
artifactName: native-ios-macos
targetPath: 'output'
- task: DownloadPipelineArtifact@0
inputs:
artifactName: native-macos-macos
targetPath: 'output'
- task: DownloadPipelineArtifact@0
inputs:
artifactName: native-tizen-macos
targetPath: 'output'
- task: DownloadPipelineArtifact@0
inputs:
artifactName: native-tvos-macos
targetPath: 'output'
- task: DownloadPipelineArtifact@0
inputs:
artifactName: native-watchos-macos
targetPath: 'output'
- bash: ./bootstrapper.sh -t libs-only -v $VERBOSITY
- task: PublishPipelineArtifact@0
inputs:
artifactName: managed-macos
targetPath: 'output'
- job: managed_linux
displayName: Build Managed (Linux)
dependsOn:
- native_linux_linux
- native_tizen_linux
pool:
vmImage: ubuntu-16.04
steps:
- bash: |
sudo apt update
sudo apt install -y $MANAGED_LINUX_PACKAGES
- task: DownloadPipelineArtifact@0
inputs:
artifactName: native-linux-linux
targetPath: 'output'
- task: DownloadPipelineArtifact@0
inputs:
artifactName: native-tizen-linux
targetPath: 'output'
- bash: ./bootstrapper.sh -t libs-only -v $VERBOSITY
- task: PublishPipelineArtifact@0
inputs:
artifactName: managed-linux
targetPath: 'output'
# PACKAGING JOBS
- job: package
displayName: Package NuGets
dependsOn:
- managed_linux
- managed_macos
- managed_windows
pool:
vmImage: vs2017-win2016
steps:
- task: DownloadPipelineArtifact@0
inputs:
artifactName: managed-linux
targetPath: 'output'
- task: DownloadPipelineArtifact@0
inputs:
artifactName: managed-macos
targetPath: 'output'
- task: DownloadPipelineArtifact@0
inputs:
artifactName: managed-windows
targetPath: 'output'
- powershell: .\bootstrapper.ps1 -t nuget-only -v $env:VERBOSITY
- task: PublishPipelineArtifact@0
inputs:
artifactName: nugets-unsigned
targetPath: 'output/nugets'
- task: PublishPipelineArtifact@0
inputs:
artifactName: package
targetPath: 'output'
- job: signing
displayName: Signing NuGets
dependsOn: package
condition: and(succeeded(), startsWith(variables['Build.SourceBranch'],'refs/tags/'))
pool:
name: VSEng-XamarinCustom
steps:
- task: JenkinsQueueJob@2
displayName: 'Sign NuGets'
inputs:
serverEndpoint: 'Xamarin Code Signing Jenkins'
jobName: 'sign-from-vsts'
isParameterizedJob: true
jobParameters: |
REPO=mono/SkiaSharp
COMMIT=$(Build.SourceVersion)
JOB_ID=10789
BUILD_ID=$(Build.BuildId)
# TODO: download artifacts from jenkins
# - task: PublishBuildArtifacts@1
# inputs:
# ArtifactName: nugets-signed
# TEST JOBS
- job: tests_windows
displayName: Tests (Windows)
dependsOn:
- package
pool:
vmImage: vs2017-win2016
steps:
- task: DownloadPipelineArtifact@0
inputs:
artifactName: package
targetPath: 'output'
- powershell: .\bootstrapper.ps1 -t tests-only -v $env:VERBOSITY
- task: PublishTestResults@2
inputs:
testResultsFormat: xUnit
testResultsFiles: 'output/tests/**/*.xml'
- job: tests_macos
displayName: Test (macOS)
dependsOn:
- package
pool:
vmImage: macos-10.13
steps:
- task: DownloadPipelineArtifact@0
inputs:
artifactName: package
targetPath: 'output'
- bash: ./bootstrapper.sh -t tests-only -v $VERBOSITY
- task: PublishTestResults@2
inputs:
testResultsFormat: xUnit
testResultsFiles: 'output/tests/**/*.xml'
- job: tests_linux
displayName: Tests (Linux)
dependsOn:
- package
pool:
vmImage: ubuntu-16.04
steps:
- bash: |
sudo apt update
sudo apt install -y $MANAGED_LINUX_PACKAGES
- task: DownloadPipelineArtifact@0
inputs:
artifactName: package
targetPath: 'output'
- bash: ./bootstrapper.sh -t tests-only -v $VERBOSITY
- task: PublishTestResults@2
inputs:
testResultsFormat: xUnit
testResultsFiles: 'output/tests/**/*.xml'
# SAMPLES JOBS
- job: samples_windows
displayName: Build Samples (Windows)
dependsOn:
- managed_windows
pool:
vmImage: vs2017-win2016
steps:
- task: DownloadPipelineArtifact@0
inputs:
artifactName: managed-windows
targetPath: 'output'
- powershell: .\bootstrapper.ps1 -t samples -v $env:VERBOSITY
- job: samples_macos
displayName: Build Samples (macOS)
dependsOn:
- managed_macos
pool:
vmImage: macos-10.13
steps:
- task: DownloadPipelineArtifact@0
inputs:
artifactName: managed-macos
targetPath: 'output'
- bash: ./bootstrapper.sh -t samples -v $VERBOSITY
- job: samples_linux
displayName: Build Samples (Linux)
dependsOn:
- managed_linux
pool:
vmImage: ubuntu-16.04
steps:
- bash: |
sudo apt update
sudo apt install -y $MANAGED_LINUX_PACKAGES
- task: DownloadPipelineArtifact@0
inputs:
artifactName: managed-linux
targetPath: 'output'
- bash: ./bootstrapper.sh -t samples -v $VERBOSITY

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

@ -45,10 +45,10 @@ CUSTOM_COMPILERS=
is_official_build=true skia_enable_tools=false
target_os=\"linux\" target_cpu=\"$ARCH\"
skia_use_icu=false skia_use_sfntly=false skia_use_piex=true
skia_use_system_expat=false skia_use_system_freetype2=true skia_use_system_libjpeg_turbo=false skia_use_system_libpng=false skia_use_system_libwebp=false skia_use_system_zlib=false
skia_use_system_expat=false skia_use_system_freetype2=false skia_use_system_libjpeg_turbo=false skia_use_system_libpng=false skia_use_system_libwebp=false skia_use_system_zlib=false
skia_enable_gpu=true
extra_cflags=[ \"-DSKIA_C_DLL\" ]
extra_ldflags=[ ]
extra_ldflags=[ \"-static-libstdc++\", \"-static-libgcc\" ]
$CUSTOM_COMPILERS
linux_soname_version=\"$SONAME\"")

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

@ -0,0 +1,21 @@
$errorActionPreference = 'Stop'
Add-Type -AssemblyName System.IO.Compression.FileSystem
# download ndk
Write-Host "Downloading Android NDK..."
New-Item -ItemType Directory -Force -Path "$env:USERPROFILE\android-ndk-temp" | Out-Null
(New-Object System.Net.WebClient).DownloadFile(
"https://dl.google.com/android/repository/android-ndk-r15c-windows-x86_64.zip",
"$env:USERPROFILE\android-ndk-temp\android-ndk.zip")
# unzip ndk
Write-Host "Extracting Android NDK..."
[System.IO.Compression.ZipFile]::ExtractToDirectory(
"$env:USERPROFILE\android-ndk-temp\android-ndk.zip",
"$env:USERPROFILE\android-ndk-temp")
Write-Host "Moving Android NDK..."
Move-Item "$env:USERPROFILE\android-ndk-temp\android-ndk-r15c" "$env:USERPROFILE\android-ndk"
exit $LASTEXITCODE

21
scripts/install-android-ndk.sh Executable file
Просмотреть файл

@ -0,0 +1,21 @@
#!/usr/bin/env bash
set -e
mkdir -p ~/android-ndk-temp
cd ~/android-ndk-temp
# detect platform
if [ "$(uname)" == "Darwin" ]; then
platform="darwin-x86_64"
elif [ "$(expr substr $(uname -s) 1 5)" == "Linux" ]; then
platform="linux-x86_64"
else
exit 1
fi
# download ndk
curl -L -o "android-ndk.zip" "https://dl.google.com/android/repository/android-ndk-r15c-$platform.zip"
# unzip ndk
unzip android-ndk.zip
mv ./android-ndk-r15c ~/android-ndk

19
scripts/install-tizen.ps1 Normal file
Просмотреть файл

@ -0,0 +1,19 @@
$errorActionPreference = 'Stop'
$url = "http://download.tizen.org/sdk/Installer/tizen-studio_2.4/web-cli_Tizen_Studio_2.4_windows-64.exe"
$ts = "$env:USERPROFILE\tizen-studio"
$install = "$env:USERPROFILE\tizen-temp\tizen-install.exe"
$packages = "MOBILE-4.0,MOBILE-4.0-NativeAppDevelopment"
# download tizen
Write-Host "Downloading Tizen SDK..."
New-Item -ItemType Directory -Force -Path "$env:USERPROFILE\tizen-temp" | Out-Null
(New-Object System.Net.WebClient).DownloadFile("$url", "$install")
# install tizen
& "$install" --accept-license --no-java-check "$ts"
# install packages
& "$ts\package-manager\package-manager-cli.exe" install --no-java-check --accept-license $packages
exit $LASTEXITCODE

23
scripts/install-tizen.sh Normal file → Executable file
Просмотреть файл

@ -1,15 +1,26 @@
#!/usr/bin/env bash
set -e
# detect platform
if [ "$(uname)" == "Darwin" ]; then
platform="macos-64"
elif [ "$(expr substr $(uname -s) 1 5)" == "Linux" ]; then
platform="ubuntu-64"
else
exit 1
fi
url=http://download.tizen.org/sdk/Installer/tizen-studio_2.4/web-cli_Tizen_Studio_2.4_$platform.bin
packages=MOBILE-4.0,MOBILE-4.0-NativeAppDevelopment
bin=~/tizen-temp/tizen-install.bin
# download tizen
mkdir -p ~/tizen-temp
cd ~/tizen-temp
curl -L -o "tizen-install.bin" http://download.tizen.org/sdk/Installer/tizen-studio_2.4/web-cli_Tizen_Studio_2.4_ubuntu-64.bin
curl -L -o "$bin" "$url"
# install tizen
chmod +x tizen-install.bin
./tizen-install.bin --accept-license --no-java-check ~/tizen-studio
chmod +x $bin
bash $bin --accept-license --no-java-check ~/tizen-studio
# install packages
cd ~/tizen-studio
./package-manager/package-manager-cli.bin install --no-java-check --accept-license MOBILE-4.0,MOBILE-4.0-NativeAppDevelopment
bash ~/tizen-studio/package-manager/package-manager-cli.bin install --no-java-check --accept-license $packages

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

@ -10,7 +10,7 @@ import groovy.transform.Field
@Field def featureNamePrefix = "feature/"
@Field def minimalLinuxPackages = "curl mono-complete msbuild"
@Field def nativeLinuxPackages = "python git libfontconfig1-dev libtool autoconf automake"
@Field def nativeLinuxPackages = "python git libfontconfig1-dev clang-3.8 libtool autoconf automake"
@Field def nativeTizenPackages = "python git openjdk-8-jdk zip libxcb-xfixes0 libxcb-render-util0 libwebkitgtk-1.0-0 libxcb-image0 acl libsdl1.2debian libv4l-0 libxcb-randr0 libxcb-shape0 libxcb-icccm4 libsm6 gettext rpm2cpio cpio bridge-utils openvpn libtool autoconf automake"
@Field def managedLinuxPackages = "dotnet-sdk-2.1 ttf-ancient-fonts"
@ -26,6 +26,8 @@ import groovy.transform.Field
"ANDROID_NDK_HOME=/Users/builder/Library/Developer/Xamarin/android-ndk",
],
"linux": [
"CC=clang-3.8",
"CXX=clang++-3.8",
]
]
@ -85,7 +87,7 @@ node("ubuntu-1604-amd64") {
watchos: createNativeBuilder("watchOS", "macOS", "components", ""),
// linux
linux: createNativeBuilder("Linux", "Linux", "ubuntu-1604-amd64", nativeLinuxPackages),
linux: createNativeBuilder("Linux", "Linux", "ubuntu-1404-amd64", nativeLinuxPackages),
tizen_linux: createNativeBuilder("Tizen", "Linux", "ubuntu-1604-amd64", nativeTizenPackages),
])
}
@ -145,12 +147,13 @@ def createNativeBuilder(platform, host, label, additionalPackages) {
nativeStashes.push(stashName)
stash(name: stashName, includes: "output/**/*", allowEmpty: false)
cleanWs()
reportGitHubStatus(githubContext, "SUCCESS", "Build complete.")
} catch (Exception e) {
reportGitHubStatus(githubContext, "FAILURE", "Build failed.")
throw e
}
cleanWs()
}
}
}
@ -203,12 +206,13 @@ def createManagedBuilder(host, label, additionalPackages) {
managedStashes.push(stashName)
stash(name: stashName, includes: "output/**/*", allowEmpty: false)
cleanWs()
reportGitHubStatus(githubContext, "SUCCESS", "Build complete.")
} catch (Exception e) {
reportGitHubStatus(githubContext, "FAILURE", "Build failed.")
throw e
}
cleanWs()
}
}
}
@ -238,12 +242,13 @@ def createPackagingBuilder() {
uploadBlobs()
cleanWs()
reportGitHubStatus(githubContext, "SUCCESS", "Pack complete.")
} catch (Exception e) {
reportGitHubStatus(githubContext, "FAILURE", "Pack failed.")
throw e
}
cleanWs()
}
}
}

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

@ -100,6 +100,7 @@ namespace SkiaSharp.Tests
}
// Test for issue #282
[SkippableFact(Skip = "Known to fail, see: https://github.com/mono/SkiaSharp/issues/282")]
public void DrawTransparentImageWithHighFilterQualityWithUnpremul()
{
var oceanColor = (SKColor)0xFF9EB4D6;

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

@ -49,5 +49,27 @@ namespace SkiaSharp.Tests
Assert.True(isNonEmpty);
Assert.Equal(SKRectI.Intersect(clipRect, rect), region.Bounds);
}
[SkippableFact]
public void EmptyRegionDoesNotIntersectsWithRectI()
{
var region = new SKRegion();
var rect = new SKRectI(10, 20, 30, 40);
Assert.False(region.Intersects(rect));
}
// This was added for https://github.com/mono/SkiaSharp/issues/770
[SkippableFact]
public void RegionIntersectsWithRectI()
{
var region = new SKRegion();
region.SetRect(new SKRectI(25, 25, 50, 50));
var rect = new SKRectI(10, 20, 30, 40);
Assert.True(region.Intersects(rect));
}
}
}