From 34736a4929bf401a71cec008d2d2e2ddab3f58e2 Mon Sep 17 00:00:00 2001 From: Rui Marinho Date: Fri, 27 Jan 2017 17:47:37 -0800 Subject: [PATCH] Add Xamarin Android support Summary: Adds a Xamarin Android support for Yoga and respective tests. Closes #276 with this PR all Xamarin platforms will be covered Need to figure a better strategy for the build names for buck with splhack . It's failing 3 tests related with YogaNode and the GC :) classic! ![screenshot_1484353863](https://cloud.githubusercontent.com/assets/1235097/21950981/61020212-d9f8-11e6-80e1-185bd1707f9a.png) ``` Facebook.Yoga.Android.Tests.dll : 660.87 ms : 678.788 ms Tests run: 130, Passed: 127, Failed: 3, Skipped: 0, Inconclusive: 0 ``` Closes https://github.com/facebook/yoga/pull/340 Reviewed By: emilsjolander Differential Revision: D4475370 Pulled By: splhack fbshipit-source-id: f050f10415e68e9808f629b843682b0f87cca065 --- csharp/Android/.gitignore | 1 + .../Facebook.Yoga.Android.Tests.csproj | 62 ++++++++++++++++++ .../MainActivity.cs | 25 ++++++++ .../Properties/AndroidManifest.xml | 14 +++++ .../Resources/Resource.designer.cs | 0 csharp/Android/Facebook.Yoga.Android.sln | 33 ++++++++++ .../CustomBuildAction.targets | 20 ++++++ .../Facebook.Yoga.Android.csproj | 63 +++++++++++++++++++ .../Resources/Resource.designer.cs | 0 9 files changed, 218 insertions(+) create mode 100644 csharp/Android/.gitignore create mode 100644 csharp/Android/Facebook.Yoga.Android.Tests/Facebook.Yoga.Android.Tests.csproj create mode 100644 csharp/Android/Facebook.Yoga.Android.Tests/MainActivity.cs create mode 100644 csharp/Android/Facebook.Yoga.Android.Tests/Properties/AndroidManifest.xml create mode 100644 csharp/Android/Facebook.Yoga.Android.Tests/Resources/Resource.designer.cs create mode 100644 csharp/Android/Facebook.Yoga.Android.sln create mode 100644 csharp/Android/Facebook.Yoga.Android/CustomBuildAction.targets create mode 100644 csharp/Android/Facebook.Yoga.Android/Facebook.Yoga.Android.csproj create mode 100644 csharp/Android/Facebook.Yoga.Android/Resources/Resource.designer.cs diff --git a/csharp/Android/.gitignore b/csharp/Android/.gitignore new file mode 100644 index 00000000..c3af8579 --- /dev/null +++ b/csharp/Android/.gitignore @@ -0,0 +1 @@ +lib/ diff --git a/csharp/Android/Facebook.Yoga.Android.Tests/Facebook.Yoga.Android.Tests.csproj b/csharp/Android/Facebook.Yoga.Android.Tests/Facebook.Yoga.Android.Tests.csproj new file mode 100644 index 00000000..e597b15b --- /dev/null +++ b/csharp/Android/Facebook.Yoga.Android.Tests/Facebook.Yoga.Android.Tests.csproj @@ -0,0 +1,62 @@ + + + + Debug + AnyCPU + {2021459E-8FB1-44A4-89F1-E291769CD2C6} + {EFBA0AD7-5A72-4C68-AF49-83D382785DCF};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} + Library + Facebook.Yoga.Android.Tests + Facebook.Yoga.Android.Tests + v7.0 + True + Resources\Resource.designer.cs + Resource + Resources + Assets + true + Properties\AndroidManifest.xml + + + true + full + false + bin\Debug + DEBUG; + prompt + 4 + None + + + true + pdbonly + true + bin\Release + prompt + 4 + true + false + + + + + + + + + + + + + + + + + + {EDF7CF8B-5640-4E1D-A2C7-E4BC8BE44363} + Facebook.Yoga.Android + + + + + \ No newline at end of file diff --git a/csharp/Android/Facebook.Yoga.Android.Tests/MainActivity.cs b/csharp/Android/Facebook.Yoga.Android.Tests/MainActivity.cs new file mode 100644 index 00000000..33e7c49a --- /dev/null +++ b/csharp/Android/Facebook.Yoga.Android.Tests/MainActivity.cs @@ -0,0 +1,25 @@ +/** + * Copyright 2014-present, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the license found in the + * LICENSE-examples file in the root directory of this source tree. + */ + +using System.Reflection; +using Android.App; +using Android.OS; +using Xamarin.Android.NUnitLite; + +namespace Facebook.Yoga.Android.Tests +{ + [Activity(Label = "Facebook.Yoga.Android.Tests", MainLauncher = true)] + public class MainActivity : TestSuiteActivity + { + protected override void OnCreate(Bundle bundle) + { + AddTest(Assembly.GetExecutingAssembly()); + base.OnCreate(bundle); + } + } +} diff --git a/csharp/Android/Facebook.Yoga.Android.Tests/Properties/AndroidManifest.xml b/csharp/Android/Facebook.Yoga.Android.Tests/Properties/AndroidManifest.xml new file mode 100644 index 00000000..fd00462f --- /dev/null +++ b/csharp/Android/Facebook.Yoga.Android.Tests/Properties/AndroidManifest.xml @@ -0,0 +1,14 @@ + + + + + + + + + diff --git a/csharp/Android/Facebook.Yoga.Android.Tests/Resources/Resource.designer.cs b/csharp/Android/Facebook.Yoga.Android.Tests/Resources/Resource.designer.cs new file mode 100644 index 00000000..e69de29b diff --git a/csharp/Android/Facebook.Yoga.Android.sln b/csharp/Android/Facebook.Yoga.Android.sln new file mode 100644 index 00000000..46e57ed9 --- /dev/null +++ b/csharp/Android/Facebook.Yoga.Android.sln @@ -0,0 +1,33 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 2012 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Facebook.Yoga.Android.Tests", "Facebook.Yoga.Android.Tests\Facebook.Yoga.Android.Tests.csproj", "{2021459E-8FB1-44A4-89F1-E291769CD2C6}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Facebook.Yoga.Android", "Facebook.Yoga.Android\Facebook.Yoga.Android.csproj", "{EDF7CF8B-5640-4E1D-A2C7-E4BC8BE44363}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Shared", "Shared", "{4804A8E6-E7B7-4F9E-A446-3DE8E73DB38A}" +EndProject +Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "Facebook.Yoga.Shared", "..\Facebook.Yoga\Facebook.Yoga.Shared.shproj", "{91C42D32-291D-4B72-90B4-551663D60B8B}" +EndProject +Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "Facebook.Yoga.Shared.Tests", "..\tests\Facebook.Yoga\Facebook.Yoga.Shared.Tests.shproj", "{4EDC82D9-A201-4831-8FE0-98F468F8E4AE}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {2021459E-8FB1-44A4-89F1-E291769CD2C6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {2021459E-8FB1-44A4-89F1-E291769CD2C6}.Debug|Any CPU.Build.0 = Debug|Any CPU + {2021459E-8FB1-44A4-89F1-E291769CD2C6}.Release|Any CPU.ActiveCfg = Release|Any CPU + {2021459E-8FB1-44A4-89F1-E291769CD2C6}.Release|Any CPU.Build.0 = Release|Any CPU + {EDF7CF8B-5640-4E1D-A2C7-E4BC8BE44363}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {EDF7CF8B-5640-4E1D-A2C7-E4BC8BE44363}.Debug|Any CPU.Build.0 = Debug|Any CPU + {EDF7CF8B-5640-4E1D-A2C7-E4BC8BE44363}.Release|Any CPU.ActiveCfg = Release|Any CPU + {EDF7CF8B-5640-4E1D-A2C7-E4BC8BE44363}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(NestedProjects) = preSolution + {91C42D32-291D-4B72-90B4-551663D60B8B} = {4804A8E6-E7B7-4F9E-A446-3DE8E73DB38A} + {4EDC82D9-A201-4831-8FE0-98F468F8E4AE} = {4804A8E6-E7B7-4F9E-A446-3DE8E73DB38A} + EndGlobalSection +EndGlobal diff --git a/csharp/Android/Facebook.Yoga.Android/CustomBuildAction.targets b/csharp/Android/Facebook.Yoga.Android/CustomBuildAction.targets new file mode 100644 index 00000000..73ba6bad --- /dev/null +++ b/csharp/Android/Facebook.Yoga.Android/CustomBuildAction.targets @@ -0,0 +1,20 @@ + + + + NativeLibraryARMV7;NativeLibraryX86;$(BuildDependsOn) + + + + + + + + + + + diff --git a/csharp/Android/Facebook.Yoga.Android/Facebook.Yoga.Android.csproj b/csharp/Android/Facebook.Yoga.Android/Facebook.Yoga.Android.csproj new file mode 100644 index 00000000..20678810 --- /dev/null +++ b/csharp/Android/Facebook.Yoga.Android/Facebook.Yoga.Android.csproj @@ -0,0 +1,63 @@ + + + + Debug + AnyCPU + {EDF7CF8B-5640-4E1D-A2C7-E4BC8BE44363} + {EFBA0AD7-5A72-4C68-AF49-83D382785DCF};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} + Library + Facebook.Yoga.Android + Facebook.Yoga.Android + v7.0 + Resources\Resource.designer.cs + Resource + Resources + Assets + true + + + true + full + false + bin\Debug + DEBUG; + prompt + 4 + None + arm64-v8a;armeabi;armeabi-v7a;x86 + + + true + pdbonly + true + bin\Release + prompt + 4 + true + false + + + + + + + + + + + + + + + + + Always + + + Always + + + + + + \ No newline at end of file diff --git a/csharp/Android/Facebook.Yoga.Android/Resources/Resource.designer.cs b/csharp/Android/Facebook.Yoga.Android/Resources/Resource.designer.cs new file mode 100644 index 00000000..e69de29b