diff --git a/.gitignore b/.gitignore index 5b346768..db56b123 100644 --- a/.gitignore +++ b/.gitignore @@ -8,3 +8,4 @@ # Visual studio code .vscode +libyoga.a diff --git a/csharp/Facebook.Yoga/Native.cs b/csharp/Facebook.Yoga/Native.cs index 7786b8cf..2f4f8f2b 100644 --- a/csharp/Facebook.Yoga/Native.cs +++ b/csharp/Facebook.Yoga/Native.cs @@ -14,22 +14,22 @@ namespace Facebook.Yoga { internal static class Native { -#if UNITY_IOS && !UNITY_EDITOR +#if UNITY_IOS && !UNITY_EDITOR || __IOS__ private const string DllName = "__Internal"; #else private const string DllName = "yoga"; #endif - +#if !__IOS__ [DllImport(DllName)] public static extern void YGInteropSetLogger( [MarshalAs(UnmanagedType.FunctionPtr)] YogaLogger.Func func); - +#endif [DllImport(DllName)] public static extern IntPtr YGNodeNew(); - +#if !__IOS__ [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..e8bc1ad1 100644 --- a/csharp/Facebook.Yoga/YogaLogger.cs +++ b/csharp/Facebook.Yoga/YogaLogger.cs @@ -14,18 +14,21 @@ namespace Facebook.Yoga { internal static class YogaLogger { +#if !__IOS__ [UnmanagedFunctionPointer(CallingConvention.Cdecl)] public delegate void Func(YogaLogLevel level, string message); - +#endif private static bool _initialized; +#if !__IOS__ private static Func _managedLogger = null; public static Func Logger = null; - +#endif public static void Initialize() { if (!_initialized) { +#if !__IOS__ _managedLogger = (level, message) => { if (Logger != null) { @@ -38,6 +41,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..1cd7042b 100644 --- a/csharp/Facebook.Yoga/YogaNode.cs +++ b/csharp/Facebook.Yoga/YogaNode.cs @@ -540,7 +540,7 @@ namespace Facebook.Yoga long output = _measureFunction(this, width, widthMode, height, heightMode); return new YogaSize { width = MeasureOutput.GetWidth(output), height = MeasureOutput.GetHeight(output) }; } - +#if !__IOS__ public string Print(YogaPrintOptions options = YogaPrintOptions.Layout|YogaPrintOptions.Style|YogaPrintOptions.Children) { @@ -551,7 +551,7 @@ namespace Facebook.Yoga YogaLogger.Logger = orig; return sb.ToString(); } - +#endif public IEnumerator GetEnumerator() { return _children != null ? ((IEnumerable)_children).GetEnumerator() : diff --git a/csharp/Facebook.Yoga/ios/ApiDefinition.cs b/csharp/Facebook.Yoga/ios/ApiDefinition.cs new file mode 100644 index 00000000..25726739 --- /dev/null +++ b/csharp/Facebook.Yoga/ios/ApiDefinition.cs @@ -0,0 +1,13 @@ +using System; + +using UIKit; +using Foundation; +using ObjCRuntime; +using CoreGraphics; + +namespace Facebook.Yoga.iOS +{ + // We're actually abusing the Xamarin.iOS 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/ios/CustomBuildAction.targets b/csharp/Facebook.Yoga/ios/CustomBuildAction.targets new file mode 100644 index 00000000..442590ed --- /dev/null +++ b/csharp/Facebook.Yoga/ios/CustomBuildAction.targets @@ -0,0 +1,11 @@ + + + + CopyInNativeLib;$(CompileDependsOn) + + + + + + + diff --git a/csharp/Facebook.Yoga/ios/Facebook.Yoga.iOS.Test/AppDelegate.cs b/csharp/Facebook.Yoga/ios/Facebook.Yoga.iOS.Test/AppDelegate.cs new file mode 100644 index 00000000..8dee0ee7 --- /dev/null +++ b/csharp/Facebook.Yoga/ios/Facebook.Yoga.iOS.Test/AppDelegate.cs @@ -0,0 +1,59 @@ +using Foundation; +using UIKit; + +namespace Facebook.Yoga.iOS.Test +{ + // The UIApplicationDelegate for the application. This class is responsible for launching the + // User Interface of the application, as well as listening (and optionally responding) to application events from iOS. + [Register("AppDelegate")] + public class AppDelegate : UIApplicationDelegate + { + // class-level declarations + + public override UIWindow Window + { + get; + set; + } + + public override bool FinishedLaunching(UIApplication application, NSDictionary launchOptions) + { + // Override point for customization after application launch. + // If not required for your application you can safely delete this method + + return true; + } + + public override void OnResignActivation(UIApplication application) + { + // Invoked when the application is about to move from active to inactive state. + // This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) + // or when the user quits the application and it begins the transition to the background state. + // Games should use this method to pause the game. + } + + public override void DidEnterBackground(UIApplication application) + { + // Use this method to release shared resources, save user data, invalidate timers and store the application state. + // If your application supports background exection this method is called instead of WillTerminate when the user quits. + } + + public override void WillEnterForeground(UIApplication application) + { + // Called as part of the transiton from background to active state. + // Here you can undo many of the changes made on entering the background. + } + + public override void OnActivated(UIApplication application) + { + // Restart any tasks that were paused (or not yet started) while the application was inactive. + // If the application was previously in the background, optionally refresh the user interface. + } + + public override void WillTerminate(UIApplication application) + { + // Called when the application is about to terminate. Save data, if needed. See also DidEnterBackground. + } + } +} + diff --git a/csharp/Facebook.Yoga/ios/Facebook.Yoga.iOS.Test/Assets.xcassets/AppIcon.appiconset/Contents.json b/csharp/Facebook.Yoga/ios/Facebook.Yoga.iOS.Test/Assets.xcassets/AppIcon.appiconset/Contents.json new file mode 100644 index 00000000..4e646784 --- /dev/null +++ b/csharp/Facebook.Yoga/ios/Facebook.Yoga.iOS.Test/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1,157 @@ +{ + "images": [ + { + "idiom": "iphone", + "size": "29x29", + "scale": "1x" + }, + { + "idiom": "iphone", + "size": "29x29", + "scale": "2x" + }, + { + "idiom": "iphone", + "size": "29x29", + "scale": "3x" + }, + { + "idiom": "iphone", + "size": "40x40", + "scale": "2x" + }, + { + "idiom": "iphone", + "size": "40x40", + "scale": "3x" + }, + { + "idiom": "iphone", + "size": "57x57", + "scale": "1x" + }, + { + "idiom": "iphone", + "size": "57x57", + "scale": "2x" + }, + { + "idiom": "iphone", + "size": "60x60", + "scale": "2x" + }, + { + "idiom": "iphone", + "size": "60x60", + "scale": "3x" + }, + { + "idiom": "ipad", + "size": "29x29", + "scale": "1x" + }, + { + "idiom": "ipad", + "size": "29x29", + "scale": "2x" + }, + { + "idiom": "ipad", + "size": "40x40", + "scale": "1x" + }, + { + "idiom": "ipad", + "size": "40x40", + "scale": "2x" + }, + { + "idiom": "ipad", + "size": "50x50", + "scale": "1x" + }, + { + "idiom": "ipad", + "size": "50x50", + "scale": "2x" + }, + { + "idiom": "ipad", + "size": "72x72", + "scale": "1x" + }, + { + "idiom": "ipad", + "size": "72x72", + "scale": "2x" + }, + { + "idiom": "ipad", + "size": "76x76", + "scale": "1x" + }, + { + "idiom": "ipad", + "size": "76x76", + "scale": "2x" + }, + { + "size": "24x24", + "idiom": "watch", + "scale": "2x", + "role": "notificationCenter", + "subtype": "38mm" + }, + { + "size": "27.5x27.5", + "idiom": "watch", + "scale": "2x", + "role": "notificationCenter", + "subtype": "42mm" + }, + { + "size": "29x29", + "idiom": "watch", + "role": "companionSettings", + "scale": "2x" + }, + { + "size": "29x29", + "idiom": "watch", + "role": "companionSettings", + "scale": "3x" + }, + { + "size": "40x40", + "idiom": "watch", + "scale": "2x", + "role": "appLauncher", + "subtype": "38mm" + }, + { + "size": "44x44", + "idiom": "watch", + "scale": "2x", + "role": "longLook", + "subtype": "42mm" + }, + { + "size": "86x86", + "idiom": "watch", + "scale": "2x", + "role": "quickLook", + "subtype": "38mm" + }, + { + "size": "98x98", + "idiom": "watch", + "scale": "2x", + "role": "quickLook", + "subtype": "42mm" + } + ], + "info": { + "version": 1, + "author": "xcode" + } +} \ No newline at end of file diff --git a/csharp/Facebook.Yoga/ios/Facebook.Yoga.iOS.Test/Assets.xcassets/Contents.json b/csharp/Facebook.Yoga/ios/Facebook.Yoga.iOS.Test/Assets.xcassets/Contents.json new file mode 100644 index 00000000..4caf392f --- /dev/null +++ b/csharp/Facebook.Yoga/ios/Facebook.Yoga.iOS.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/ios/Facebook.Yoga.iOS.Test/Entitlements.plist b/csharp/Facebook.Yoga/ios/Facebook.Yoga.iOS.Test/Entitlements.plist new file mode 100644 index 00000000..9ae59937 --- /dev/null +++ b/csharp/Facebook.Yoga/ios/Facebook.Yoga.iOS.Test/Entitlements.plist @@ -0,0 +1,6 @@ + + + + + + diff --git a/csharp/Facebook.Yoga/ios/Facebook.Yoga.iOS.Test/Facebook.Yoga.iOS.Test.csproj b/csharp/Facebook.Yoga/ios/Facebook.Yoga.iOS.Test/Facebook.Yoga.iOS.Test.csproj new file mode 100644 index 00000000..51aa8137 --- /dev/null +++ b/csharp/Facebook.Yoga/ios/Facebook.Yoga.iOS.Test/Facebook.Yoga.iOS.Test.csproj @@ -0,0 +1,124 @@ + + + + Debug + iPhoneSimulator + {3B27656A-129D-4779-BDAD-1A088DFDD9C5} + {FEACFBD2-3405-455C-9665-78FE426C6842};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} + Exe + Facebook.Yoga.iOS.Test + Facebook.Yoga.iOS.Test + Resources + + + true + full + false + bin\iPhoneSimulator\Debug + DEBUG;ENABLE_TEST_CLOUD; + prompt + 4 + iPhone Developer + true + true + true + true + true + 22979 + None + x86_64 + HttpClientHandler + Default + false + + + pdbonly + true + bin\iPhone\Release + + prompt + 4 + iPhone Developer + true + true + true + Entitlements.plist + SdkOnly + ARMv7, ARM64 + HttpClientHandler + Default + + + pdbonly + true + bin\iPhoneSimulator\Release + + prompt + 4 + iPhone Developer + true + true + None + x86_64 + HttpClientHandler + Default + + + true + full + false + bin\iPhone\Debug + DEBUG;ENABLE_TEST_CLOUD; + prompt + 4 + iPhone Developer + true + true + true + true + true + true + true + Entitlements.plist + SdkOnly + ARMv7, ARM64 + HttpClientHandler + Default + + + + + + + + + + + + + + + + + + + + + + + + + + + + ViewController.cs + + + + + {BE4CBFDA-02E2-4DF0-A81A-CEFB7987A708} + Facebook.Yoga.iOS + + + + \ No newline at end of file diff --git a/csharp/Facebook.Yoga/ios/Facebook.Yoga.iOS.Test/Info.plist b/csharp/Facebook.Yoga/ios/Facebook.Yoga.iOS.Test/Info.plist new file mode 100644 index 00000000..fd20287a --- /dev/null +++ b/csharp/Facebook.Yoga/ios/Facebook.Yoga.iOS.Test/Info.plist @@ -0,0 +1,39 @@ + + + + + CFBundleName + Facebook.Yoga.iOS.Test + CFBundleIdentifier + com.xamarin.facebook-yoga-ios-test + CFBundleShortVersionString + 1.0 + CFBundleVersion + 1.0 + LSRequiresIPhoneOS + + MinimumOSVersion + 10.1 + UIDeviceFamily + + 1 + 2 + + UILaunchStoryboardName + LaunchScreen + UIMainStoryboardFile + Main + UIRequiredDeviceCapabilities + + armv7 + + UISupportedInterfaceOrientations + + UIInterfaceOrientationPortrait + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + XSAppIconAssets + Assets.xcassets/AppIcon.appiconset + + diff --git a/csharp/Facebook.Yoga/ios/Facebook.Yoga.iOS.Test/LaunchScreen.storyboard b/csharp/Facebook.Yoga/ios/Facebook.Yoga.iOS.Test/LaunchScreen.storyboard new file mode 100644 index 00000000..5d2e905a --- /dev/null +++ b/csharp/Facebook.Yoga/ios/Facebook.Yoga.iOS.Test/LaunchScreen.storyboard @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/csharp/Facebook.Yoga/ios/Facebook.Yoga.iOS.Test/Main.cs b/csharp/Facebook.Yoga/ios/Facebook.Yoga.iOS.Test/Main.cs new file mode 100644 index 00000000..b2ba0f78 --- /dev/null +++ b/csharp/Facebook.Yoga/ios/Facebook.Yoga.iOS.Test/Main.cs @@ -0,0 +1,15 @@ +using UIKit; + +namespace Facebook.Yoga.iOS.Test +{ + public class Application + { + // This is the main entry point of the application. + static void Main(string[] args) + { + // if you want to use a different Application Delegate class from "AppDelegate" + // you can specify it here. + UIApplication.Main(args, null, "AppDelegate"); + } + } +} diff --git a/csharp/Facebook.Yoga/ios/Facebook.Yoga.iOS.Test/Main.storyboard b/csharp/Facebook.Yoga/ios/Facebook.Yoga.iOS.Test/Main.storyboard new file mode 100644 index 00000000..a43ad72c --- /dev/null +++ b/csharp/Facebook.Yoga/ios/Facebook.Yoga.iOS.Test/Main.storyboard @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/csharp/Facebook.Yoga/ios/Facebook.Yoga.iOS.Test/ViewController.cs b/csharp/Facebook.Yoga/ios/Facebook.Yoga.iOS.Test/ViewController.cs new file mode 100644 index 00000000..8b151792 --- /dev/null +++ b/csharp/Facebook.Yoga/ios/Facebook.Yoga.iOS.Test/ViewController.cs @@ -0,0 +1,101 @@ +using System; +using CoreGraphics; +using Foundation; +using UIKit; + +namespace Facebook.Yoga.iOS.Test +{ + + public static class UIViewYogaExtensions + { + public static void ApplyYogaLayout(this UIView 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 : UIViewController + { + protected ViewController(IntPtr handle) : base(handle) + { + // Note: this .ctor should not contain any initialization logic. + } + + public override void ViewDidLoad() + { + base.ViewDidLoad(); + UIImage image = FromUrl("https://placehold.it/50x50"); + + UIView root = CreateViewHierarchy(image); + + var rootNode = CalculateLayout(image.Size); + + root.ApplyYogaLayout(rootNode); + + View.AddSubview(root); + + } + static UIImage FromUrl(string uri) + { + using (var url = new NSUrl(uri)) + using (var data = NSData.FromUrl(url)) + return UIImage.LoadFromData(data); + } + static UIView CreateViewHierarchy(UIImage image) + { + var root = new UIView(); + UIImageView imageView = new UIImageView() + { + Image = image + }; + root.AddSubview(imageView); + + UITextField text = new UITextField() + { + Text = "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; + } + + public override void DidReceiveMemoryWarning() + { + base.DidReceiveMemoryWarning(); + // Release any cached data, images, etc that aren't in use. + } + } +} diff --git a/csharp/Facebook.Yoga/ios/Facebook.Yoga.iOS.Test/ViewController.designer.cs b/csharp/Facebook.Yoga/ios/Facebook.Yoga.iOS.Test/ViewController.designer.cs new file mode 100644 index 00000000..5527c480 --- /dev/null +++ b/csharp/Facebook.Yoga/ios/Facebook.Yoga.iOS.Test/ViewController.designer.cs @@ -0,0 +1,17 @@ +// +// This file has been generated automatically by MonoDevelop to store outlets and +// actions made in the Xcode designer. If it is removed, they will be lost. +// Manual changes to this file may not be handled correctly. +// +using Foundation; + +namespace Facebook.Yoga.iOS.Test +{ + [Register("ViewController")] + partial class ViewController + { + void ReleaseDesignerOutlets() + { + } + } +} diff --git a/csharp/Facebook.Yoga/ios/Facebook.Yoga.iOS.csproj b/csharp/Facebook.Yoga/ios/Facebook.Yoga.iOS.csproj new file mode 100644 index 00000000..0c0461e9 --- /dev/null +++ b/csharp/Facebook.Yoga/ios/Facebook.Yoga.iOS.csproj @@ -0,0 +1,121 @@ + + + + Debug + AnyCPU + {BE4CBFDA-02E2-4DF0-A81A-CEFB7987A708} + {8FFB629D-F513-41CE-95D2-7ECE97B6EEEC};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} + Library + Facebook.Yoga.iOS + Facebook.Yoga.iOS + Resources + + + true + full + false + bin\Debug + DEBUG; + prompt + 4 + true + + + true + bin\Release + prompt + 4 + true + + + + + + + + + + MeasureFunction.cs + + + MeasureOutput.cs + + + Native.cs + + + Spacing.cs + + + YogaAlign.cs + + + YogaConstants.cs + + + YogaDimension.cs + + + YogaDirection.cs + + + YogaEdge.cs + + + YogaExperimentalFeature.cs + + + YogaFlexDirection.cs + + + YogaJustify.cs + + + YogaLogger.cs + + + YogaLogLevel.cs + + + YogaMeasureFunc.cs + + + YogaMeasureMode.cs + + + YogaNode.Create.cs + + + YogaNode.cs + + + YogaOverflow.cs + + + YogaPositionType.cs + + + YogaPrintOptions.cs + + + YogaSize.cs + + + YogaWrap.cs + + + + + + + + + + + Static + False + + + + + \ No newline at end of file diff --git a/csharp/Facebook.Yoga/ios/Facebook.Yoga.iOS.sln b/csharp/Facebook.Yoga/ios/Facebook.Yoga.iOS.sln new file mode 100644 index 00000000..7985b2f1 --- /dev/null +++ b/csharp/Facebook.Yoga/ios/Facebook.Yoga.iOS.sln @@ -0,0 +1,43 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 2012 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Facebook.Yoga.iOS", "Facebook.Yoga.iOS.csproj", "{BE4CBFDA-02E2-4DF0-A81A-CEFB7987A708}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Facebook.Yoga.iOS.Test", "Facebook.Yoga.iOS.Test\Facebook.Yoga.iOS.Test.csproj", "{3B27656A-129D-4779-BDAD-1A088DFDD9C5}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + Debug|iPhoneSimulator = Debug|iPhoneSimulator + Release|iPhone = Release|iPhone + Release|iPhoneSimulator = Release|iPhoneSimulator + Debug|iPhone = Debug|iPhone + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {BE4CBFDA-02E2-4DF0-A81A-CEFB7987A708}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {BE4CBFDA-02E2-4DF0-A81A-CEFB7987A708}.Debug|Any CPU.Build.0 = Debug|Any CPU + {BE4CBFDA-02E2-4DF0-A81A-CEFB7987A708}.Release|Any CPU.ActiveCfg = Release|Any CPU + {BE4CBFDA-02E2-4DF0-A81A-CEFB7987A708}.Release|Any CPU.Build.0 = Release|Any CPU + {BE4CBFDA-02E2-4DF0-A81A-CEFB7987A708}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU + {BE4CBFDA-02E2-4DF0-A81A-CEFB7987A708}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU + {BE4CBFDA-02E2-4DF0-A81A-CEFB7987A708}.Release|iPhone.ActiveCfg = Release|Any CPU + {BE4CBFDA-02E2-4DF0-A81A-CEFB7987A708}.Release|iPhone.Build.0 = Release|Any CPU + {BE4CBFDA-02E2-4DF0-A81A-CEFB7987A708}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU + {BE4CBFDA-02E2-4DF0-A81A-CEFB7987A708}.Release|iPhoneSimulator.Build.0 = Release|Any CPU + {BE4CBFDA-02E2-4DF0-A81A-CEFB7987A708}.Debug|iPhone.ActiveCfg = Debug|Any CPU + {BE4CBFDA-02E2-4DF0-A81A-CEFB7987A708}.Debug|iPhone.Build.0 = Debug|Any CPU + {3B27656A-129D-4779-BDAD-1A088DFDD9C5}.Debug|Any CPU.ActiveCfg = Debug|iPhoneSimulator + {3B27656A-129D-4779-BDAD-1A088DFDD9C5}.Debug|Any CPU.Build.0 = Debug|iPhoneSimulator + {3B27656A-129D-4779-BDAD-1A088DFDD9C5}.Release|Any CPU.ActiveCfg = Release|iPhone + {3B27656A-129D-4779-BDAD-1A088DFDD9C5}.Release|Any CPU.Build.0 = Release|iPhone + {3B27656A-129D-4779-BDAD-1A088DFDD9C5}.Debug|iPhoneSimulator.ActiveCfg = Debug|iPhoneSimulator + {3B27656A-129D-4779-BDAD-1A088DFDD9C5}.Debug|iPhoneSimulator.Build.0 = Debug|iPhoneSimulator + {3B27656A-129D-4779-BDAD-1A088DFDD9C5}.Release|iPhone.ActiveCfg = Release|iPhone + {3B27656A-129D-4779-BDAD-1A088DFDD9C5}.Release|iPhone.Build.0 = Release|iPhone + {3B27656A-129D-4779-BDAD-1A088DFDD9C5}.Release|iPhoneSimulator.ActiveCfg = Release|iPhoneSimulator + {3B27656A-129D-4779-BDAD-1A088DFDD9C5}.Release|iPhoneSimulator.Build.0 = Release|iPhoneSimulator + {3B27656A-129D-4779-BDAD-1A088DFDD9C5}.Debug|iPhone.ActiveCfg = Debug|iPhone + {3B27656A-129D-4779-BDAD-1A088DFDD9C5}.Debug|iPhone.Build.0 = Debug|iPhone + EndGlobalSection +EndGlobal diff --git a/csharp/Facebook.Yoga/ios/Properties/AssemblyInfo.cs b/csharp/Facebook.Yoga/ios/Properties/AssemblyInfo.cs new file mode 100644 index 00000000..232777a9 --- /dev/null +++ b/csharp/Facebook.Yoga/ios/Properties/AssemblyInfo.cs @@ -0,0 +1,34 @@ +using System.Reflection; +using System.Runtime.CompilerServices; + +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] + +// Information about this assembly is defined by the following attributes. +// Change them to the values specific to your project. + +[assembly: AssemblyTitle("Facebook.Yoga.iOS")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("")] +[assembly: AssemblyCopyright("rmarinho")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// The assembly version has the format "{Major}.{Minor}.{Build}.{Revision}". +// The form "{Major}.{Minor}.*" will automatically update the build and revision, +// and "{Major}.{Minor}.{Build}.*" will update just the revision. + +[assembly: AssemblyVersion("1.0.*")] + +// The following attributes are used to specify the signing key for the assembly, +// if desired. See the Mono documentation for more information about signing. + +//[assembly: AssemblyDelaySign(false)] +//[assembly: AssemblyKeyFile("")]