diff --git a/csharp/Facebook.Yoga/Native.cs b/csharp/Facebook.Yoga/Native.cs index 7786b8cf..28fcc55c 100644 --- a/csharp/Facebook.Yoga/Native.cs +++ b/csharp/Facebook.Yoga/Native.cs @@ -14,21 +14,25 @@ namespace Facebook.Yoga { internal static class Native { -#if UNITY_IOS && !UNITY_EDITOR +#if (UNITY_IOS && !UNITY_EDITOR) || MONOMAC private const string DllName = "__Internal"; #else private const string DllName = "yoga"; #endif +#if !MONOMAC [DllImport(DllName)] public static extern void YGInteropSetLogger( [MarshalAs(UnmanagedType.FunctionPtr)] YogaLogger.Func func); +#endif [DllImport(DllName)] public static extern IntPtr YGNodeNew(); +#if !MONOMAC [DllImport(DllName)] public static extern void YGNodeInit(IntPtr node); +#endif [DllImport(DllName)] public static extern void YGNodeFree(IntPtr node); diff --git a/csharp/Facebook.Yoga/YogaLogger.cs b/csharp/Facebook.Yoga/YogaLogger.cs index e5d79b79..607f1c45 100644 --- a/csharp/Facebook.Yoga/YogaLogger.cs +++ b/csharp/Facebook.Yoga/YogaLogger.cs @@ -14,18 +14,23 @@ namespace Facebook.Yoga { internal static class YogaLogger { +#if !MONOMAC [UnmanagedFunctionPointer(CallingConvention.Cdecl)] public delegate void Func(YogaLogLevel level, string message); +#endif private static bool _initialized; +#if !MONOMAC private static Func _managedLogger = null; public static Func Logger = null; +#endif public static void Initialize() { if (!_initialized) { +#if !MONOMAC _managedLogger = (level, message) => { if (Logger != null) { @@ -38,6 +43,7 @@ namespace Facebook.Yoga } }; Native.YGInteropSetLogger(_managedLogger); +#endif _initialized = true; } } diff --git a/csharp/Facebook.Yoga/YogaNode.cs b/csharp/Facebook.Yoga/YogaNode.cs index 9211b28e..3bc0886a 100644 --- a/csharp/Facebook.Yoga/YogaNode.cs +++ b/csharp/Facebook.Yoga/YogaNode.cs @@ -541,6 +541,7 @@ namespace Facebook.Yoga return new YogaSize { width = MeasureOutput.GetWidth(output), height = MeasureOutput.GetHeight(output) }; } +#if !MONOMAC public string Print(YogaPrintOptions options = YogaPrintOptions.Layout|YogaPrintOptions.Style|YogaPrintOptions.Children) { @@ -551,6 +552,7 @@ namespace Facebook.Yoga YogaLogger.Logger = orig; return sb.ToString(); } +#endif public IEnumerator GetEnumerator() { diff --git a/csharp/Facebook.Yoga/mac/.gitignore b/csharp/Facebook.Yoga/mac/.gitignore new file mode 100644 index 00000000..a5b96ed6 --- /dev/null +++ b/csharp/Facebook.Yoga/mac/.gitignore @@ -0,0 +1,2 @@ +libyoga.a +*.userprefs diff --git a/csharp/Facebook.Yoga/mac/ApiDefinition.cs b/csharp/Facebook.Yoga/mac/ApiDefinition.cs new file mode 100644 index 00000000..de52afd0 --- /dev/null +++ b/csharp/Facebook.Yoga/mac/ApiDefinition.cs @@ -0,0 +1,13 @@ +using System; + +using AppKit; +using Foundation; +using ObjCRuntime; +using CoreGraphics; + +namespace Facebook.Yoga.Mac +{ + // We're actually abusing the Xamarin.Mac binding project + // to bundle in the static lib for us. There is no objective-c + // lib to bind, but the build will fail without ApiDefinition.cs +} diff --git a/csharp/Facebook.Yoga/mac/CustomBuildAction.targets b/csharp/Facebook.Yoga/mac/CustomBuildAction.targets new file mode 100644 index 00000000..442590ed --- /dev/null +++ b/csharp/Facebook.Yoga/mac/CustomBuildAction.targets @@ -0,0 +1,11 @@ + + + + CopyInNativeLib;$(CompileDependsOn) + + + + + + + diff --git a/csharp/Facebook.Yoga/mac/Facebook.Yoga.Mac.Test/AppDelegate.cs b/csharp/Facebook.Yoga/mac/Facebook.Yoga.Mac.Test/AppDelegate.cs new file mode 100644 index 00000000..a0d8df6e --- /dev/null +++ b/csharp/Facebook.Yoga/mac/Facebook.Yoga.Mac.Test/AppDelegate.cs @@ -0,0 +1,22 @@ +using AppKit; +using Foundation; + +namespace Facebook.Yoga.Mac.Test +{ + [Register("AppDelegate")] + public class AppDelegate : NSApplicationDelegate + { + public AppDelegate() + { + } + + public override void DidFinishLaunching(NSNotification notification) + { + } + + public override void WillTerminate(NSNotification notification) + { + // Insert code here to tear down your application + } + } +} diff --git a/csharp/Facebook.Yoga/mac/Facebook.Yoga.Mac.Test/Assets.xcassets/AppIcon.appiconset/AppIcon-128.png b/csharp/Facebook.Yoga/mac/Facebook.Yoga.Mac.Test/Assets.xcassets/AppIcon.appiconset/AppIcon-128.png new file mode 100644 index 00000000..d0b5a809 Binary files /dev/null and b/csharp/Facebook.Yoga/mac/Facebook.Yoga.Mac.Test/Assets.xcassets/AppIcon.appiconset/AppIcon-128.png differ diff --git a/csharp/Facebook.Yoga/mac/Facebook.Yoga.Mac.Test/Assets.xcassets/AppIcon.appiconset/AppIcon-128@2x.png b/csharp/Facebook.Yoga/mac/Facebook.Yoga.Mac.Test/Assets.xcassets/AppIcon.appiconset/AppIcon-128@2x.png new file mode 100644 index 00000000..f4c8d290 Binary files /dev/null and b/csharp/Facebook.Yoga/mac/Facebook.Yoga.Mac.Test/Assets.xcassets/AppIcon.appiconset/AppIcon-128@2x.png differ diff --git a/csharp/Facebook.Yoga/mac/Facebook.Yoga.Mac.Test/Assets.xcassets/AppIcon.appiconset/AppIcon-16.png b/csharp/Facebook.Yoga/mac/Facebook.Yoga.Mac.Test/Assets.xcassets/AppIcon.appiconset/AppIcon-16.png new file mode 100644 index 00000000..ebb5a0fe Binary files /dev/null and b/csharp/Facebook.Yoga/mac/Facebook.Yoga.Mac.Test/Assets.xcassets/AppIcon.appiconset/AppIcon-16.png differ diff --git a/csharp/Facebook.Yoga/mac/Facebook.Yoga.Mac.Test/Assets.xcassets/AppIcon.appiconset/AppIcon-16@2x.png b/csharp/Facebook.Yoga/mac/Facebook.Yoga.Mac.Test/Assets.xcassets/AppIcon.appiconset/AppIcon-16@2x.png new file mode 100644 index 00000000..0986d31b Binary files /dev/null and b/csharp/Facebook.Yoga/mac/Facebook.Yoga.Mac.Test/Assets.xcassets/AppIcon.appiconset/AppIcon-16@2x.png differ diff --git a/csharp/Facebook.Yoga/mac/Facebook.Yoga.Mac.Test/Assets.xcassets/AppIcon.appiconset/AppIcon-256.png b/csharp/Facebook.Yoga/mac/Facebook.Yoga.Mac.Test/Assets.xcassets/AppIcon.appiconset/AppIcon-256.png new file mode 100644 index 00000000..f4c8d290 Binary files /dev/null and b/csharp/Facebook.Yoga/mac/Facebook.Yoga.Mac.Test/Assets.xcassets/AppIcon.appiconset/AppIcon-256.png differ diff --git a/csharp/Facebook.Yoga/mac/Facebook.Yoga.Mac.Test/Assets.xcassets/AppIcon.appiconset/AppIcon-256@2x.png b/csharp/Facebook.Yoga/mac/Facebook.Yoga.Mac.Test/Assets.xcassets/AppIcon.appiconset/AppIcon-256@2x.png new file mode 100644 index 00000000..a142c83f Binary files /dev/null and b/csharp/Facebook.Yoga/mac/Facebook.Yoga.Mac.Test/Assets.xcassets/AppIcon.appiconset/AppIcon-256@2x.png differ diff --git a/csharp/Facebook.Yoga/mac/Facebook.Yoga.Mac.Test/Assets.xcassets/AppIcon.appiconset/AppIcon-32.png b/csharp/Facebook.Yoga/mac/Facebook.Yoga.Mac.Test/Assets.xcassets/AppIcon.appiconset/AppIcon-32.png new file mode 100644 index 00000000..0986d31b Binary files /dev/null and b/csharp/Facebook.Yoga/mac/Facebook.Yoga.Mac.Test/Assets.xcassets/AppIcon.appiconset/AppIcon-32.png differ diff --git a/csharp/Facebook.Yoga/mac/Facebook.Yoga.Mac.Test/Assets.xcassets/AppIcon.appiconset/AppIcon-32@2x.png b/csharp/Facebook.Yoga/mac/Facebook.Yoga.Mac.Test/Assets.xcassets/AppIcon.appiconset/AppIcon-32@2x.png new file mode 100644 index 00000000..412d6ca9 Binary files /dev/null and b/csharp/Facebook.Yoga/mac/Facebook.Yoga.Mac.Test/Assets.xcassets/AppIcon.appiconset/AppIcon-32@2x.png differ diff --git a/csharp/Facebook.Yoga/mac/Facebook.Yoga.Mac.Test/Assets.xcassets/AppIcon.appiconset/AppIcon-512.png b/csharp/Facebook.Yoga/mac/Facebook.Yoga.Mac.Test/Assets.xcassets/AppIcon.appiconset/AppIcon-512.png new file mode 100644 index 00000000..a142c83f Binary files /dev/null and b/csharp/Facebook.Yoga/mac/Facebook.Yoga.Mac.Test/Assets.xcassets/AppIcon.appiconset/AppIcon-512.png differ diff --git a/csharp/Facebook.Yoga/mac/Facebook.Yoga.Mac.Test/Assets.xcassets/AppIcon.appiconset/AppIcon-512@2x.png b/csharp/Facebook.Yoga/mac/Facebook.Yoga.Mac.Test/Assets.xcassets/AppIcon.appiconset/AppIcon-512@2x.png new file mode 100644 index 00000000..e99022ae Binary files /dev/null and b/csharp/Facebook.Yoga/mac/Facebook.Yoga.Mac.Test/Assets.xcassets/AppIcon.appiconset/AppIcon-512@2x.png differ diff --git a/csharp/Facebook.Yoga/mac/Facebook.Yoga.Mac.Test/Assets.xcassets/AppIcon.appiconset/Contents.json b/csharp/Facebook.Yoga/mac/Facebook.Yoga.Mac.Test/Assets.xcassets/AppIcon.appiconset/Contents.json new file mode 100644 index 00000000..6b285452 --- /dev/null +++ b/csharp/Facebook.Yoga/mac/Facebook.Yoga.Mac.Test/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1,68 @@ +{ + "images": [ + { + "filename": "AppIcon-16.png", + "size": "16x16", + "scale": "1x", + "idiom": "mac" + }, + { + "filename": "AppIcon-16@2x.png", + "size": "16x16", + "scale": "2x", + "idiom": "mac" + }, + { + "filename": "AppIcon-32.png", + "size": "32x32", + "scale": "1x", + "idiom": "mac" + }, + { + "filename": "AppIcon-32@2x.png", + "size": "32x32", + "scale": "2x", + "idiom": "mac" + }, + { + "filename": "AppIcon-128.png", + "size": "128x128", + "scale": "1x", + "idiom": "mac" + }, + { + "filename": "AppIcon-128@2x.png", + "size": "128x128", + "scale": "2x", + "idiom": "mac" + }, + { + "filename": "AppIcon-256.png", + "size": "256x256", + "scale": "1x", + "idiom": "mac" + }, + { + "filename": "AppIcon-256@2x.png", + "size": "256x256", + "scale": "2x", + "idiom": "mac" + }, + { + "filename": "AppIcon-512.png", + "size": "512x512", + "scale": "1x", + "idiom": "mac" + }, + { + "filename": "AppIcon-512@2x.png", + "size": "512x512", + "scale": "2x", + "idiom": "mac" + } + ], + "info": { + "version": 1, + "author": "xcode" + } +} \ No newline at end of file diff --git a/csharp/Facebook.Yoga/mac/Facebook.Yoga.Mac.Test/Assets.xcassets/Contents.json b/csharp/Facebook.Yoga/mac/Facebook.Yoga.Mac.Test/Assets.xcassets/Contents.json new file mode 100644 index 00000000..4caf392f --- /dev/null +++ b/csharp/Facebook.Yoga/mac/Facebook.Yoga.Mac.Test/Assets.xcassets/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/csharp/Facebook.Yoga/mac/Facebook.Yoga.Mac.Test/Entitlements.plist b/csharp/Facebook.Yoga/mac/Facebook.Yoga.Mac.Test/Entitlements.plist new file mode 100644 index 00000000..9ae59937 --- /dev/null +++ b/csharp/Facebook.Yoga/mac/Facebook.Yoga.Mac.Test/Entitlements.plist @@ -0,0 +1,6 @@ + + + + + + diff --git a/csharp/Facebook.Yoga/mac/Facebook.Yoga.Mac.Test/Facebook.Yoga.Mac.Test.csproj b/csharp/Facebook.Yoga/mac/Facebook.Yoga.Mac.Test/Facebook.Yoga.Mac.Test.csproj new file mode 100644 index 00000000..4e25ba68 --- /dev/null +++ b/csharp/Facebook.Yoga/mac/Facebook.Yoga.Mac.Test/Facebook.Yoga.Mac.Test.csproj @@ -0,0 +1,98 @@ + + + + Debug + AnyCPU + {64E0AB97-A904-4607-A535-EEA5A966C09E} + {A3F8F2AB-B479-4A4A-A458-A89E7DC349F1};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} + Exe + Facebook.Yoga.Mac.Test + Facebook.Yoga.Mac.Test + v2.0 + Xamarin.Mac + Resources + + + true + full + false + bin\Debug + DEBUG; + prompt + 4 + false + Mac Developer + false + false + false + true + true + true + HttpClientHandler + Default + None + x86_64 + + + pdbonly + true + bin\Release + + prompt + 4 + false + true + false + true + true + true + SdkOnly + HttpClientHandler + Default + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ViewController.cs + + + + + + + + {19A1C7D7-C9CC-476A-B604-DF6A3DE1BA71} + Facebook.Yoga.Mac + + + + \ No newline at end of file diff --git a/csharp/Facebook.Yoga/mac/Facebook.Yoga.Mac.Test/Info.plist b/csharp/Facebook.Yoga/mac/Facebook.Yoga.Mac.Test/Info.plist new file mode 100644 index 00000000..48cc59ce --- /dev/null +++ b/csharp/Facebook.Yoga/mac/Facebook.Yoga.Mac.Test/Info.plist @@ -0,0 +1,33 @@ + + + + + CFBundleName + Facebook.Yoga.Mac.Test + CFBundleIdentifier + com.companyname.facebook-yoga-mac-test + CFBundleShortVersionString + 1.0 + CFBundleVersion + 1 + LSMinimumSystemVersion + 10.11 + CFBundleDevelopmentRegion + en + CFBundleInfoDictionaryVersion + 6.0 + CFBundlePackageType + APPL + CFBundleSignature + ???? + NSHumanReadableCopyright + ${AuthorCopyright} + NSPrincipalClass + NSApplication + NSMainStoryboardFile + Main + XSAppIconAssets + Assets.xcassets/AppIcon.appiconset + + + diff --git a/csharp/Facebook.Yoga/mac/Facebook.Yoga.Mac.Test/Main.cs b/csharp/Facebook.Yoga/mac/Facebook.Yoga.Mac.Test/Main.cs new file mode 100644 index 00000000..e25f1106 --- /dev/null +++ b/csharp/Facebook.Yoga/mac/Facebook.Yoga.Mac.Test/Main.cs @@ -0,0 +1,13 @@ +using AppKit; + +namespace Facebook.Yoga.Mac.Test +{ + static class MainClass + { + static void Main(string[] args) + { + NSApplication.Init(); + NSApplication.Main(args); + } + } +} diff --git a/csharp/Facebook.Yoga/mac/Facebook.Yoga.Mac.Test/Main.storyboard b/csharp/Facebook.Yoga/mac/Facebook.Yoga.Mac.Test/Main.storyboard new file mode 100644 index 00000000..1d8f728d --- /dev/null +++ b/csharp/Facebook.Yoga/mac/Facebook.Yoga.Mac.Test/Main.storyboard @@ -0,0 +1,681 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Default + + + + + + + Left to Right + + + + + + + Right to Left + + + + + + + + + + + Default + + + + + + + Left to Right + + + + + + + Right to Left + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/csharp/Facebook.Yoga/mac/Facebook.Yoga.Mac.Test/ViewController.cs b/csharp/Facebook.Yoga/mac/Facebook.Yoga.Mac.Test/ViewController.cs new file mode 100644 index 00000000..3e1a6b1b --- /dev/null +++ b/csharp/Facebook.Yoga/mac/Facebook.Yoga.Mac.Test/ViewController.cs @@ -0,0 +1,83 @@ +using System; + +using AppKit; +using Foundation; +using CoreGraphics; + +namespace Facebook.Yoga.Mac.Test +{ + public static class NSViewYogaExtensions + { + public static void ApplyYogaLayout(this NSView view, YogaNode n) + { + view.Frame = new CGRect(n.LayoutX, n.LayoutY, n.LayoutWidth, n.LayoutHeight); + // This assumes your YogaNode and NSView children were inserted in same order + for (int i = 0; i < n.Count; ++i) { + YogaNode childNode = n[i]; + view.Subviews[i].Frame = new CGRect (childNode.LayoutX, childNode.LayoutY, childNode.LayoutWidth, childNode.LayoutHeight); + } + } + } + + public partial class ViewController : NSViewController + { + public ViewController(IntPtr handle) : base(handle) + { + } + + public override void ViewDidLoad() + { + base.ViewDidLoad (); + + NSImage image = NSImage.ImageNamed (NSImageName.TrashFull); + + NSView root = CreateViewHierarchy (image); + + var rootNode = CalculateLayout (image.Size); + + root.ApplyYogaLayout (rootNode); + + View.AddSubview (root); + } + + static NSView CreateViewHierarchy (NSImage image) + { + var root = new NSView (); + NSImageView imageView = new NSImageView () { + Image = image + }; + root.AddSubview (imageView); + + NSTextView text = new NSTextView () { + Value = "Hello World", + }; + root.AddSubview (text); + return root; + } + + static YogaNode CalculateLayout (CGSize imageSize) + { + var rootNode = new YogaNode () { + Width = 400, + Height = 120, + FlexDirection = YogaFlexDirection.Row + }; + rootNode.SetPadding (YogaEdge.All, 20); + + var imageNode = new YogaNode () { + Width = (float)imageSize.Width, + }; + imageNode.SetMargin (YogaEdge.End, 20); + + var textNode = new YogaNode () { + AlignSelf = YogaAlign.Center, + FlexGrow = 1, + }; + rootNode.Insert (0, imageNode); + rootNode.Insert (1, textNode); + rootNode.CalculateLayout (); + + return rootNode; + } + } +} diff --git a/csharp/Facebook.Yoga/mac/Facebook.Yoga.Mac.Test/ViewController.designer.cs b/csharp/Facebook.Yoga/mac/Facebook.Yoga.Mac.Test/ViewController.designer.cs new file mode 100644 index 00000000..1cf1e327 --- /dev/null +++ b/csharp/Facebook.Yoga/mac/Facebook.Yoga.Mac.Test/ViewController.designer.cs @@ -0,0 +1,18 @@ +// WARNING +// +// This file has been generated automatically by Xamarin Studio to store outlets and +// actions made in the UI designer. If it is removed, they will be lost. +// Manual changes to this file may not be handled correctly. +// +using Foundation; + +namespace Facebook.Yoga.Mac.Test +{ + [Register("ViewController")] + partial class ViewController + { + void ReleaseDesignerOutlets() + { + } + } +} diff --git a/csharp/Facebook.Yoga/mac/Facebook.Yoga.Mac.csproj b/csharp/Facebook.Yoga/mac/Facebook.Yoga.Mac.csproj new file mode 100644 index 00000000..cfef31eb --- /dev/null +++ b/csharp/Facebook.Yoga/mac/Facebook.Yoga.Mac.csproj @@ -0,0 +1,121 @@ + + + + Debug + AnyCPU + {19A1C7D7-C9CC-476A-B604-DF6A3DE1BA71} + {810C163F-4746-4721-8B8E-88A3673A62EA};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} + Library + Facebook.Yoga.Mac + Facebook.Yoga.Mac + Resources + + + true + full + false + bin\Debug + __UNIFIED__;DEBUG;MONOMAC + prompt + 4 + false + + + true + bin\Release + __UNIFIED__;MONOMAC + prompt + 4 + false + + + + + + + + + YogaWrap.cs + + + YogaSize.cs + + + YogaPrintOptions.cs + + + YogaPositionType.cs + + + YogaOverflow.cs + + + YogaNode.cs + + + YogaNode.Create.cs + + + YogaMeasureMode.cs + + + YogaMeasureFunc.cs + + + YogaLogLevel.cs + + + YogaLogger.cs + + + YogaJustify.cs + + + YogaFlexDirection.cs + + + YogaExperimentalFeature.cs + + + YogaEdge.cs + + + YogaDirection.cs + + + YogaDimension.cs + + + YogaConstants.cs + + + YogaAlign.cs + + + Spacing.cs + + + Native.cs + + + MeasureOutput.cs + + + MeasureFunction.cs + + + + + Static + False + + + + + + + + + + + diff --git a/csharp/Facebook.Yoga/mac/Facebook.Yoga.Mac.sln b/csharp/Facebook.Yoga/mac/Facebook.Yoga.Mac.sln new file mode 100644 index 00000000..70254fb3 --- /dev/null +++ b/csharp/Facebook.Yoga/mac/Facebook.Yoga.Mac.sln @@ -0,0 +1,23 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 2012 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Facebook.Yoga.Mac.Test", "Facebook.Yoga.Mac.Test\Facebook.Yoga.Mac.Test.csproj", "{64E0AB97-A904-4607-A535-EEA5A966C09E}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Facebook.Yoga.Mac", "Facebook.Yoga.Mac.csproj", "{19A1C7D7-C9CC-476A-B604-DF6A3DE1BA71}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {64E0AB97-A904-4607-A535-EEA5A966C09E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {64E0AB97-A904-4607-A535-EEA5A966C09E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {64E0AB97-A904-4607-A535-EEA5A966C09E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {64E0AB97-A904-4607-A535-EEA5A966C09E}.Release|Any CPU.Build.0 = Release|Any CPU + {19A1C7D7-C9CC-476A-B604-DF6A3DE1BA71}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {19A1C7D7-C9CC-476A-B604-DF6A3DE1BA71}.Debug|Any CPU.Build.0 = Debug|Any CPU + {19A1C7D7-C9CC-476A-B604-DF6A3DE1BA71}.Release|Any CPU.ActiveCfg = Release|Any CPU + {19A1C7D7-C9CC-476A-B604-DF6A3DE1BA71}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection +EndGlobal