From 84c81f095b4405ed035edd60bbf8a8930907b344 Mon Sep 17 00:00:00 2001 From: Haider Khan Date: Sun, 22 Sep 2019 14:14:07 -0700 Subject: [PATCH 1/9] WIP --- ExampleApp/AppDelegate.swift | 41 ++++ .../AppIcon.appiconset/Contents.json | 98 +++++++++ ExampleApp/Assets.xcassets/Contents.json | 6 + ExampleApp/Base.lproj/LaunchScreen.storyboard | 25 +++ ExampleApp/Base.lproj/Main.storyboard | 24 +++ ExampleApp/Info.plist | 66 ++++++ ExampleApp/SceneDelegate.swift | 53 +++++ ExampleApp/ViewController.swift | 59 ++++++ LayoutOps.xcodeproj/project.pbxproj | 200 +++++++++++++++++- .../xcshareddata/IDEWorkspaceChecks.plist | 8 + .../xcschemes/ExampleApp.xcscheme | 78 +++++++ 11 files changed, 657 insertions(+), 1 deletion(-) create mode 100644 ExampleApp/AppDelegate.swift create mode 100644 ExampleApp/Assets.xcassets/AppIcon.appiconset/Contents.json create mode 100644 ExampleApp/Assets.xcassets/Contents.json create mode 100644 ExampleApp/Base.lproj/LaunchScreen.storyboard create mode 100644 ExampleApp/Base.lproj/Main.storyboard create mode 100644 ExampleApp/Info.plist create mode 100644 ExampleApp/SceneDelegate.swift create mode 100644 ExampleApp/ViewController.swift create mode 100644 LayoutOps.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist create mode 100644 LayoutOps.xcodeproj/xcshareddata/xcschemes/ExampleApp.xcscheme diff --git a/ExampleApp/AppDelegate.swift b/ExampleApp/AppDelegate.swift new file mode 100644 index 0000000..d8008b3 --- /dev/null +++ b/ExampleApp/AppDelegate.swift @@ -0,0 +1,41 @@ +// +// AppDelegate.swift +// ExampleApp +// +// Created by Haider Khan on 7/7/19. +// Copyright © 2019 LayoutOps. All rights reserved. +// + +import UIKit + +@UIApplicationMain +class AppDelegate: UIResponder, UIApplicationDelegate { + + + + func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { + // Override point for customization after application launch. + return true + } + + func applicationWillTerminate(_ application: UIApplication) { + // Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:. + } + + // MARK: UISceneSession Lifecycle + + func application(_ application: UIApplication, configurationForConnecting connectingSceneSession: UISceneSession, options: UIScene.ConnectionOptions) -> UISceneConfiguration { + // Called when a new scene session is being created. + // Use this method to select a configuration to create the new scene with. + return UISceneConfiguration(name: "Default Configuration", sessionRole: connectingSceneSession.role) + } + + func application(_ application: UIApplication, didDiscardSceneSessions sceneSessions: Set) { + // Called when the user discards a scene session. + // If any sessions were discarded while the application was not running, this will be called shortly after application:didFinishLaunchingWithOptions. + // Use this method to release any resources that were specific to the discarded scenes, as they will not return. + } + + +} + diff --git a/ExampleApp/Assets.xcassets/AppIcon.appiconset/Contents.json b/ExampleApp/Assets.xcassets/AppIcon.appiconset/Contents.json new file mode 100644 index 0000000..d8db8d6 --- /dev/null +++ b/ExampleApp/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1,98 @@ +{ + "images" : [ + { + "idiom" : "iphone", + "size" : "20x20", + "scale" : "2x" + }, + { + "idiom" : "iphone", + "size" : "20x20", + "scale" : "3x" + }, + { + "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" : "60x60", + "scale" : "2x" + }, + { + "idiom" : "iphone", + "size" : "60x60", + "scale" : "3x" + }, + { + "idiom" : "ipad", + "size" : "20x20", + "scale" : "1x" + }, + { + "idiom" : "ipad", + "size" : "20x20", + "scale" : "2x" + }, + { + "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" : "76x76", + "scale" : "1x" + }, + { + "idiom" : "ipad", + "size" : "76x76", + "scale" : "2x" + }, + { + "idiom" : "ipad", + "size" : "83.5x83.5", + "scale" : "2x" + }, + { + "idiom" : "ios-marketing", + "size" : "1024x1024", + "scale" : "1x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/ExampleApp/Assets.xcassets/Contents.json b/ExampleApp/Assets.xcassets/Contents.json new file mode 100644 index 0000000..da4a164 --- /dev/null +++ b/ExampleApp/Assets.xcassets/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/ExampleApp/Base.lproj/LaunchScreen.storyboard b/ExampleApp/Base.lproj/LaunchScreen.storyboard new file mode 100644 index 0000000..865e932 --- /dev/null +++ b/ExampleApp/Base.lproj/LaunchScreen.storyboard @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ExampleApp/Base.lproj/Main.storyboard b/ExampleApp/Base.lproj/Main.storyboard new file mode 100644 index 0000000..2766965 --- /dev/null +++ b/ExampleApp/Base.lproj/Main.storyboard @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ExampleApp/Info.plist b/ExampleApp/Info.plist new file mode 100644 index 0000000..a20b6a3 --- /dev/null +++ b/ExampleApp/Info.plist @@ -0,0 +1,66 @@ + + + + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + $(PRODUCT_BUNDLE_PACKAGE_TYPE) + CFBundleShortVersionString + 1.0 + CFBundleVersion + 1 + LSRequiresIPhoneOS + + UIApplicationSceneManifest + + UIApplicationSupportsMultipleScenes + + UISceneConfigurations + + UIWindowSceneSessionRoleApplication + + + UILaunchStoryboardName + LaunchScreen + UISceneConfigurationName + Default Configuration + UISceneDelegateClassName + $(PRODUCT_MODULE_NAME).SceneDelegate + UISceneStoryboardFile + Main + + + + + UILaunchStoryboardName + LaunchScreen + UIMainStoryboardFile + Main + UIRequiredDeviceCapabilities + + armv7 + + UISupportedInterfaceOrientations + + UIInterfaceOrientationPortrait + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + UISupportedInterfaceOrientations~ipad + + UIInterfaceOrientationPortrait + UIInterfaceOrientationPortraitUpsideDown + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + + diff --git a/ExampleApp/SceneDelegate.swift b/ExampleApp/SceneDelegate.swift new file mode 100644 index 0000000..3d338f5 --- /dev/null +++ b/ExampleApp/SceneDelegate.swift @@ -0,0 +1,53 @@ +// +// SceneDelegate.swift +// ExampleApp +// +// Created by Haider Khan on 7/7/19. +// Copyright © 2019 LayoutOps. All rights reserved. +// + +import UIKit + +class SceneDelegate: UIResponder, UIWindowSceneDelegate { + + var window: UIWindow? + + + func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) { + // Use this method to optionally configure and attach the UIWindow `window` to the provided UIWindowScene `scene`. + // If using a storyboard, the `window` property will automatically be initialized and attached to the scene. + // This delegate does not imply the connecting scene or session are new (see `application:configurationForConnectingSceneSession` instead). + guard let _ = (scene as? UIWindowScene) else { return } + } + + func sceneDidDisconnect(_ scene: UIScene) { + // Called as the scene is being released by the system. + // This occurs shortly after the scene enters the background, or when its session is discarded. + // Release any resources associated with this scene that can be re-created the next time the scene connects. + // The scene may re-connect later, as its session was not neccessarily discarded (see `application:didDiscardSceneSessions` instead). + } + + func sceneDidBecomeActive(_ scene: UIScene) { + // Called when the scene has moved from an inactive state to an active state. + // Use this method to restart any tasks that were paused (or not yet started) when the scene was inactive. + } + + func sceneWillResignActive(_ scene: UIScene) { + // Called when the scene will move from an active state to an inactive state. + // This may occur due to temporary interruptions (ex. an incoming phone call). + } + + func sceneWillEnterForeground(_ scene: UIScene) { + // Called as the scene transitions from the background to the foreground. + // Use this method to undo the changes made on entering the background. + } + + func sceneDidEnterBackground(_ scene: UIScene) { + // Called as the scene transitions from the foreground to the background. + // Use this method to save data, release shared resources, and store enough scene-specific state information + // to restore the scene back to its current state. + } + + +} + diff --git a/ExampleApp/ViewController.swift b/ExampleApp/ViewController.swift new file mode 100644 index 0000000..1c2c197 --- /dev/null +++ b/ExampleApp/ViewController.swift @@ -0,0 +1,59 @@ +// +// ViewController.swift +// ExampleApp +// +// Created by Haider Khan on 7/7/19. +// Copyright © 2019 LayoutOps. All rights reserved. +// + +import UIKit +import LayoutOps + +final class View: UIView { + + // MARK: - Views + + let label: UILabel = { + let view = UILabel(frame: .zero) + view.text = "Hello" + view.textColor = .white + return view + }() + + override init(frame: CGRect) { + super.init(frame: frame) + self.addSubview(self.label) + } + + @available(*, unavailable) + required init?(coder: NSCoder) { + fatalError("init(coder:) has not been implemented") + } + + override func layoutSubviews() { + super.layoutSubviews() + self.label.lx + .set(x: 0.0, + y: 0.0, + width: 200.0, + height: 400.0) + .center() + .alignBottom() + } + +} + +class ViewController: UIViewController { + + override func loadView() { + self.view = View(frame: .zero) + } + + override func viewDidLoad() { + super.viewDidLoad() + // Do any additional setup after loading the view. + } + + +} + diff --git a/LayoutOps.xcodeproj/project.pbxproj b/LayoutOps.xcodeproj/project.pbxproj index 54e2cf0..962d97c 100644 --- a/LayoutOps.xcodeproj/project.pbxproj +++ b/LayoutOps.xcodeproj/project.pbxproj @@ -71,6 +71,14 @@ 8933C78E1EB5B82C000D00A4 /* LayoutOpsTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8933C7891EB5B82A000D00A4 /* LayoutOpsTests.swift */; }; 8933C78F1EB5B82C000D00A4 /* LayoutOpsTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8933C7891EB5B82A000D00A4 /* LayoutOpsTests.swift */; }; 8933C7901EB5B82D000D00A4 /* LayoutOpsTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8933C7891EB5B82A000D00A4 /* LayoutOpsTests.swift */; }; + C4C8AB5A22D2FF2D005626AA /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = C4C8AB5922D2FF2D005626AA /* AppDelegate.swift */; }; + C4C8AB5C22D2FF2D005626AA /* SceneDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = C4C8AB5B22D2FF2D005626AA /* SceneDelegate.swift */; }; + C4C8AB5E22D2FF2D005626AA /* ViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = C4C8AB5D22D2FF2D005626AA /* ViewController.swift */; }; + C4C8AB6122D2FF2D005626AA /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = C4C8AB5F22D2FF2D005626AA /* Main.storyboard */; }; + C4C8AB6322D2FF2E005626AA /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = C4C8AB6222D2FF2E005626AA /* Assets.xcassets */; }; + C4C8AB6622D2FF2E005626AA /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = C4C8AB6422D2FF2E005626AA /* LaunchScreen.storyboard */; }; + C4C8AB6C22D2FF4F005626AA /* LayoutOps.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 52D6D97C1BEFF229002C0205 /* LayoutOps.framework */; }; + C4C8AB6D22D2FF4F005626AA /* LayoutOps.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 52D6D97C1BEFF229002C0205 /* LayoutOps.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; DD7502881C68FEDE006590AF /* LayoutOps.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 52D6DA0F1BF000BD002C0205 /* LayoutOps.framework */; }; DD7502921C690C7A006590AF /* LayoutOps.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 52D6D9F01BEFFFBE002C0205 /* LayoutOps.framework */; }; /* End PBXBuildFile section */ @@ -83,6 +91,13 @@ remoteGlobalIDString = 52D6D97B1BEFF229002C0205; remoteInfo = LayoutOps; }; + C4C8AB6E22D2FF4F005626AA /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 52D6D9731BEFF229002C0205 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 52D6D97B1BEFF229002C0205; + remoteInfo = "LayoutOps-iOS"; + }; DD7502801C68FCFC006590AF /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = 52D6D9731BEFF229002C0205 /* Project object */; @@ -99,6 +114,20 @@ }; /* End PBXContainerItemProxy section */ +/* Begin PBXCopyFilesBuildPhase section */ + C4C8AB7022D2FF50005626AA /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + C4C8AB6D22D2FF4F005626AA /* LayoutOps.framework in Embed Frameworks */, + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXCopyFilesBuildPhase section */ + /* Begin PBXFileReference section */ 1B067096202E049C008DDCF0 /* CALayer+LX.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = "CALayer+LX.swift"; path = "Sources/CALayer+LX.swift"; sourceTree = SOURCE_ROOT; }; 1B06709A202E056F008DDCF0 /* NSView+LX.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "NSView+LX.swift"; sourceTree = ""; }; @@ -132,6 +161,14 @@ 8933C7891EB5B82A000D00A4 /* LayoutOpsTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LayoutOpsTests.swift; sourceTree = ""; }; AD2FAA261CD0B6D800659CF4 /* LayoutOps.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = LayoutOps.plist; sourceTree = ""; }; AD2FAA281CD0B6E100659CF4 /* LayoutOpsTests.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = LayoutOpsTests.plist; sourceTree = ""; }; + C4C8AB5722D2FF2D005626AA /* ExampleApp.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = ExampleApp.app; sourceTree = BUILT_PRODUCTS_DIR; }; + C4C8AB5922D2FF2D005626AA /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; + C4C8AB5B22D2FF2D005626AA /* SceneDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SceneDelegate.swift; sourceTree = ""; }; + C4C8AB5D22D2FF2D005626AA /* ViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ViewController.swift; sourceTree = ""; }; + C4C8AB6022D2FF2D005626AA /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; + C4C8AB6222D2FF2E005626AA /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; + C4C8AB6522D2FF2E005626AA /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; + C4C8AB6722D2FF2E005626AA /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; DD75027A1C68FCFC006590AF /* LayoutOps-macOS Tests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "LayoutOps-macOS Tests.xctest"; sourceTree = BUILT_PRODUCTS_DIR; }; DD75028D1C690C7A006590AF /* LayoutOps-tvOS Tests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "LayoutOps-tvOS Tests.xctest"; sourceTree = BUILT_PRODUCTS_DIR; }; /* End PBXFileReference section */ @@ -166,6 +203,14 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + C4C8AB5422D2FF2D005626AA /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + C4C8AB6C22D2FF4F005626AA /* LayoutOps.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; DD7502771C68FCFC006590AF /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; @@ -241,10 +286,12 @@ 52D6D9721BEFF229002C0205 = { isa = PBXGroup; children = ( + C4C8AB5822D2FF2D005626AA /* ExampleApp */, 8933C7811EB5B7E0000D00A4 /* Sources */, 8933C7831EB5B7EB000D00A4 /* Tests */, 52D6D99C1BEFF38C002C0205 /* Configs */, 52D6D97D1BEFF229002C0205 /* Products */, + C4C8AB6B22D2FF4F005626AA /* Frameworks */, ); sourceTree = ""; }; @@ -257,6 +304,7 @@ 52D6DA0F1BF000BD002C0205 /* LayoutOps.framework */, DD75027A1C68FCFC006590AF /* LayoutOps-macOS Tests.xctest */, DD75028D1C690C7A006590AF /* LayoutOps-tvOS Tests.xctest */, + C4C8AB5722D2FF2D005626AA /* ExampleApp.app */, ); name = Products; sourceTree = ""; @@ -290,6 +338,27 @@ path = Tests/LayoutOpsTests; sourceTree = ""; }; + C4C8AB5822D2FF2D005626AA /* ExampleApp */ = { + isa = PBXGroup; + children = ( + C4C8AB5922D2FF2D005626AA /* AppDelegate.swift */, + C4C8AB5B22D2FF2D005626AA /* SceneDelegate.swift */, + C4C8AB5D22D2FF2D005626AA /* ViewController.swift */, + C4C8AB5F22D2FF2D005626AA /* Main.storyboard */, + C4C8AB6222D2FF2E005626AA /* Assets.xcassets */, + C4C8AB6422D2FF2E005626AA /* LaunchScreen.storyboard */, + C4C8AB6722D2FF2E005626AA /* Info.plist */, + ); + path = ExampleApp; + sourceTree = ""; + }; + C4C8AB6B22D2FF4F005626AA /* Frameworks */ = { + isa = PBXGroup; + children = ( + ); + name = Frameworks; + sourceTree = ""; + }; DD7502721C68FC1B006590AF /* Frameworks */ = { isa = PBXGroup; children = ( @@ -405,6 +474,25 @@ productReference = 52D6DA0F1BF000BD002C0205 /* LayoutOps.framework */; productType = "com.apple.product-type.framework"; }; + C4C8AB5622D2FF2D005626AA /* ExampleApp */ = { + isa = PBXNativeTarget; + buildConfigurationList = C4C8AB6A22D2FF2E005626AA /* Build configuration list for PBXNativeTarget "ExampleApp" */; + buildPhases = ( + C4C8AB5322D2FF2D005626AA /* Sources */, + C4C8AB5422D2FF2D005626AA /* Frameworks */, + C4C8AB5522D2FF2D005626AA /* Resources */, + C4C8AB7022D2FF50005626AA /* Embed Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + C4C8AB6F22D2FF4F005626AA /* PBXTargetDependency */, + ); + name = ExampleApp; + productName = ExampleApp; + productReference = C4C8AB5722D2FF2D005626AA /* ExampleApp.app */; + productType = "com.apple.product-type.application"; + }; DD7502791C68FCFC006590AF /* LayoutOps-macOS Tests */ = { isa = PBXNativeTarget; buildConfigurationList = DD7502821C68FCFC006590AF /* Build configuration list for PBXNativeTarget "LayoutOps-macOS Tests" */; @@ -447,7 +535,7 @@ 52D6D9731BEFF229002C0205 /* Project object */ = { isa = PBXProject; attributes = { - LastSwiftUpdateCheck = 0720; + LastSwiftUpdateCheck = 1100; LastUpgradeCheck = 1020; ORGANIZATIONNAME = LayoutOps; TargetAttributes = { @@ -467,6 +555,11 @@ CreatedOnToolsVersion = 7.1; LastSwiftMigration = 1020; }; + C4C8AB5622D2FF2D005626AA = { + CreatedOnToolsVersion = 11.0; + DevelopmentTeam = EVL2DEPTTR; + ProvisioningStyle = Automatic; + }; DD7502791C68FCFC006590AF = { CreatedOnToolsVersion = 7.2.1; LastSwiftMigration = 1020; @@ -490,6 +583,7 @@ projectDirPath = ""; projectRoot = ""; targets = ( + C4C8AB5622D2FF2D005626AA /* ExampleApp */, 52D6D97B1BEFF229002C0205 /* LayoutOps-iOS */, 52D6DA0E1BF000BD002C0205 /* LayoutOps-macOS */, 52D6D9EF1BEFFFBE002C0205 /* LayoutOps-tvOS */, @@ -529,6 +623,16 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + C4C8AB5522D2FF2D005626AA /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + C4C8AB6622D2FF2E005626AA /* LaunchScreen.storyboard in Resources */, + C4C8AB6322D2FF2E005626AA /* Assets.xcassets in Resources */, + C4C8AB6122D2FF2D005626AA /* Main.storyboard in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; DD7502781C68FCFC006590AF /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; @@ -635,6 +739,16 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + C4C8AB5322D2FF2D005626AA /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + C4C8AB5E22D2FF2D005626AA /* ViewController.swift in Sources */, + C4C8AB5A22D2FF2D005626AA /* AppDelegate.swift in Sources */, + C4C8AB5C22D2FF2D005626AA /* SceneDelegate.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; DD7502761C68FCFC006590AF /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; @@ -659,6 +773,11 @@ target = 52D6D97B1BEFF229002C0205 /* LayoutOps-iOS */; targetProxy = 52D6D9881BEFF229002C0205 /* PBXContainerItemProxy */; }; + C4C8AB6F22D2FF4F005626AA /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 52D6D97B1BEFF229002C0205 /* LayoutOps-iOS */; + targetProxy = C4C8AB6E22D2FF4F005626AA /* PBXContainerItemProxy */; + }; DD7502811C68FCFC006590AF /* PBXTargetDependency */ = { isa = PBXTargetDependency; target = 52D6DA0E1BF000BD002C0205 /* LayoutOps-macOS */; @@ -671,6 +790,25 @@ }; /* End PBXTargetDependency section */ +/* Begin PBXVariantGroup section */ + C4C8AB5F22D2FF2D005626AA /* Main.storyboard */ = { + isa = PBXVariantGroup; + children = ( + C4C8AB6022D2FF2D005626AA /* Base */, + ); + name = Main.storyboard; + sourceTree = ""; + }; + C4C8AB6422D2FF2E005626AA /* LaunchScreen.storyboard */ = { + isa = PBXVariantGroup; + children = ( + C4C8AB6522D2FF2E005626AA /* Base */, + ); + name = LaunchScreen.storyboard; + sourceTree = ""; + }; +/* End PBXVariantGroup section */ + /* Begin XCBuildConfiguration section */ 52D6D98E1BEFF229002C0205 /* Debug */ = { isa = XCBuildConfiguration; @@ -950,6 +1088,57 @@ }; name = Release; }; + C4C8AB6822D2FF2E005626AA /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CODE_SIGN_STYLE = Automatic; + DEVELOPMENT_TEAM = EVL2DEPTTR; + GCC_C_LANGUAGE_STANDARD = gnu11; + INFOPLIST_FILE = ExampleApp/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 13.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; + PRODUCT_BUNDLE_IDENTIFIER = com.zkhaider.ExampleApp; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + C4C8AB6922D2FF2E005626AA /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CODE_SIGN_STYLE = Automatic; + DEVELOPMENT_TEAM = EVL2DEPTTR; + GCC_C_LANGUAGE_STANDARD = gnu11; + INFOPLIST_FILE = ExampleApp/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 13.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + MTL_FAST_MATH = YES; + PRODUCT_BUNDLE_IDENTIFIER = com.zkhaider.ExampleApp; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Release; + }; DD7502831C68FCFC006590AF /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { @@ -1060,6 +1249,15 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; + C4C8AB6A22D2FF2E005626AA /* Build configuration list for PBXNativeTarget "ExampleApp" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + C4C8AB6822D2FF2E005626AA /* Debug */, + C4C8AB6922D2FF2E005626AA /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; DD7502821C68FCFC006590AF /* Build configuration list for PBXNativeTarget "LayoutOps-macOS Tests" */ = { isa = XCConfigurationList; buildConfigurations = ( diff --git a/LayoutOps.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/LayoutOps.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 0000000..18d9810 --- /dev/null +++ b/LayoutOps.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/LayoutOps.xcodeproj/xcshareddata/xcschemes/ExampleApp.xcscheme b/LayoutOps.xcodeproj/xcshareddata/xcschemes/ExampleApp.xcscheme new file mode 100644 index 0000000..8c0b0c7 --- /dev/null +++ b/LayoutOps.xcodeproj/xcshareddata/xcschemes/ExampleApp.xcscheme @@ -0,0 +1,78 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + From d308e7836dc3557200806e00aff4c151a37a1fae Mon Sep 17 00:00:00 2001 From: Haider Khan Date: Sat, 27 Apr 2019 11:47:46 -0700 Subject: [PATCH 2/9] Static --- LayoutOps.xcodeproj/project.pbxproj | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/LayoutOps.xcodeproj/project.pbxproj b/LayoutOps.xcodeproj/project.pbxproj index 97df2a4..8865dc9 100644 --- a/LayoutOps.xcodeproj/project.pbxproj +++ b/LayoutOps.xcodeproj/project.pbxproj @@ -909,6 +909,7 @@ INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; IPHONEOS_DEPLOYMENT_TARGET = 8.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + MACH_O_TYPE = staticlib; ONLY_ACTIVE_ARCH = NO; PRODUCT_BUNDLE_IDENTIFIER = "com.LayoutOps.LayoutOps-iOS"; PRODUCT_NAME = LayoutOps; @@ -932,6 +933,7 @@ INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; IPHONEOS_DEPLOYMENT_TARGET = 8.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + MACH_O_TYPE = staticlib; PRODUCT_BUNDLE_IDENTIFIER = "com.LayoutOps.LayoutOps-iOS"; PRODUCT_NAME = LayoutOps; SKIP_INSTALL = YES; @@ -980,6 +982,7 @@ INFOPLIST_FILE = Configs/LayoutOps.plist; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + MACH_O_TYPE = staticlib; PRODUCT_BUNDLE_IDENTIFIER = "com.LayoutOps.LayoutOps-tvOS"; PRODUCT_NAME = LayoutOps; SDKROOT = appletvos; @@ -1002,6 +1005,7 @@ INFOPLIST_FILE = Configs/LayoutOps.plist; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + MACH_O_TYPE = staticlib; PRODUCT_BUNDLE_IDENTIFIER = "com.LayoutOps.LayoutOps-tvOS"; PRODUCT_NAME = LayoutOps; SDKROOT = appletvos; @@ -1027,6 +1031,7 @@ INFOPLIST_FILE = Configs/LayoutOps.plist; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/Frameworks"; + MACH_O_TYPE = staticlib; MACOSX_DEPLOYMENT_TARGET = 10.10; PRODUCT_BUNDLE_IDENTIFIER = "com.LayoutOps.LayoutOps-macOS"; PRODUCT_NAME = LayoutOps; @@ -1050,6 +1055,7 @@ INFOPLIST_FILE = Configs/LayoutOps.plist; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/Frameworks"; + MACH_O_TYPE = staticlib; MACOSX_DEPLOYMENT_TARGET = 10.10; PRODUCT_BUNDLE_IDENTIFIER = "com.LayoutOps.LayoutOps-macOS"; PRODUCT_NAME = LayoutOps; From d025c5657a32e7ea96796a5038472454d8f4d039 Mon Sep 17 00:00:00 2001 From: Haider Khan Date: Sun, 22 Sep 2019 15:08:11 -0700 Subject: [PATCH 3/9] Added codable layout attributes --- LayoutOps-Universal/Info.plist | 22 ++ LayoutOps-Universal/LayoutOps_Universal.h | 19 ++ LayoutOps.xcodeproj/project.pbxproj | 317 ++++++++++++++++++++++ Sources/Basic.swift | 68 +++++ Sources/Layout.Align.Bottom.swift | 58 ++++ Sources/Layout.Align.End.swift | 58 ++++ Sources/Layout.Align.Start.swift | 58 ++++ Sources/Layout.Align.Top.swift | 58 ++++ Sources/Layout.Attributes.swift | 176 ++++++++++++ Sources/Layout.Center.swift | 60 ++++ Sources/Layout.Fill.swift | 60 ++++ Sources/Layout.HCenter.swift | 74 +++++ Sources/Layout.HFill.swift | 74 +++++ Sources/Layout.VCenter.swift | 74 +++++ Sources/Layout.VFill.swift | 74 +++++ 15 files changed, 1250 insertions(+) create mode 100644 LayoutOps-Universal/Info.plist create mode 100644 LayoutOps-Universal/LayoutOps_Universal.h create mode 100644 Sources/Layout.Align.Bottom.swift create mode 100644 Sources/Layout.Align.End.swift create mode 100644 Sources/Layout.Align.Start.swift create mode 100644 Sources/Layout.Align.Top.swift create mode 100644 Sources/Layout.Attributes.swift create mode 100644 Sources/Layout.Center.swift create mode 100644 Sources/Layout.Fill.swift create mode 100644 Sources/Layout.HCenter.swift create mode 100644 Sources/Layout.HFill.swift create mode 100644 Sources/Layout.VCenter.swift create mode 100644 Sources/Layout.VFill.swift diff --git a/LayoutOps-Universal/Info.plist b/LayoutOps-Universal/Info.plist new file mode 100644 index 0000000..9bcb244 --- /dev/null +++ b/LayoutOps-Universal/Info.plist @@ -0,0 +1,22 @@ + + + + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + $(PRODUCT_BUNDLE_PACKAGE_TYPE) + CFBundleShortVersionString + 1.0 + CFBundleVersion + $(CURRENT_PROJECT_VERSION) + + diff --git a/LayoutOps-Universal/LayoutOps_Universal.h b/LayoutOps-Universal/LayoutOps_Universal.h new file mode 100644 index 0000000..80b7df6 --- /dev/null +++ b/LayoutOps-Universal/LayoutOps_Universal.h @@ -0,0 +1,19 @@ +// +// LayoutOps_Universal.h +// LayoutOps-Universal +// +// Created by Haider Khan on 9/22/19. +// Copyright © 2019 LayoutOps. All rights reserved. +// + +#import + +//! Project version number for LayoutOps_Universal. +FOUNDATION_EXPORT double LayoutOps_UniversalVersionNumber; + +//! Project version string for LayoutOps_Universal. +FOUNDATION_EXPORT const unsigned char LayoutOps_UniversalVersionString[]; + +// In this header, you should import all the public headers of your framework using statements like #import + + diff --git a/LayoutOps.xcodeproj/project.pbxproj b/LayoutOps.xcodeproj/project.pbxproj index 8865dc9..929f601 100644 --- a/LayoutOps.xcodeproj/project.pbxproj +++ b/LayoutOps.xcodeproj/project.pbxproj @@ -57,6 +57,76 @@ 8933C78E1EB5B82C000D00A4 /* LayoutOpsTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8933C7891EB5B82A000D00A4 /* LayoutOpsTests.swift */; }; 8933C78F1EB5B82C000D00A4 /* LayoutOpsTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8933C7891EB5B82A000D00A4 /* LayoutOpsTests.swift */; }; 8933C7901EB5B82D000D00A4 /* LayoutOpsTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8933C7891EB5B82A000D00A4 /* LayoutOpsTests.swift */; }; + C44582E723381CEF00340726 /* LayoutOps_Universal.h in Headers */ = {isa = PBXBuildFile; fileRef = C44582E523381CEF00340726 /* LayoutOps_Universal.h */; settings = {ATTRIBUTES = (Public, ); }; }; + C44582EB23381D0600340726 /* LX.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1B498F2F202DD3BB00EFF7FC /* LX.swift */; }; + C44582EC23381D0600340726 /* Basic.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1B498F1B202DD3BA00EFF7FC /* Basic.swift */; }; + C44582ED23381D0600340726 /* Anchor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1B498F1A202DD3BA00EFF7FC /* Anchor.swift */; }; + C44582EE23381D0600340726 /* Follow.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1B498F22202DD3BB00EFF7FC /* Follow.swift */; }; + C44582EF23381D0600340726 /* SizeToFit.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1B498F24202DD3BB00EFF7FC /* SizeToFit.swift */; }; + C44582F023381D0600340726 /* Viewport.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1B498F31202DD3BB00EFF7FC /* Viewport.swift */; }; + C44582F123381D0600340726 /* PutWrap.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1B498F20202DD3BA00EFF7FC /* PutWrap.swift */; }; + C44582F223381D0600340726 /* Accelerate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1B498F2C202DD3BB00EFF7FC /* Accelerate.swift */; }; + C44582F323381D0600340726 /* Utils.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1B0670A0202E4E67008DDCF0 /* Utils.swift */; }; + C44582F423381D0600340726 /* UIView+LX.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1B498F29202DD3BB00EFF7FC /* UIView+LX.swift */; }; + C44582F523381D0600340726 /* CALayer+LX.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1B067096202E049C008DDCF0 /* CALayer+LX.swift */; }; + C44582F623381D0600340726 /* NSView+LX.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1B06709A202E056F008DDCF0 /* NSView+LX.swift */; }; + C44582F723381D0600340726 /* Node.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1B498F26202DD3BB00EFF7FC /* Node.swift */; }; + C44582F823381D0600340726 /* RootNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1B498F1E202DD3BA00EFF7FC /* RootNode.swift */; }; + C44582F923381D0600340726 /* LabelNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1B498F1F202DD3BA00EFF7FC /* LabelNode.swift */; }; + C44582FA23381D0600340726 /* ImageNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1B498F1D202DD3BA00EFF7FC /* ImageNode.swift */; }; + C44582FB23381D0600340726 /* SwitchNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1B498F21202DD3BB00EFF7FC /* SwitchNode.swift */; }; + C44582FC23381D0600340726 /* NSAttributedString+Size.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1B498F2E202DD3BB00EFF7FC /* NSAttributedString+Size.swift */; }; + C44582FD23381D0600340726 /* PresentationItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1B498F2D202DD3BB00EFF7FC /* PresentationItem.swift */; }; + C44582FE23381D0600340726 /* PresentationModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1B498F32202DD3BB00EFF7FC /* PresentationModel.swift */; }; + C44582FF23381D0600340726 /* PresentationTableHeaderFooter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1B498F30202DD3BB00EFF7FC /* PresentationTableHeaderFooter.swift */; }; + C445830023381D0600340726 /* PresentationTableRow.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1B498F23202DD3BB00EFF7FC /* PresentationTableRow.swift */; }; + C445830123381D0600340726 /* NodeTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1B498F28202DD3BB00EFF7FC /* NodeTableViewCell.swift */; }; + C445830223381D0600340726 /* BaseTableViewPresentationAdapter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1B498F2A202DD3BB00EFF7FC /* BaseTableViewPresentationAdapter.swift */; }; + C445830323381D0600340726 /* TableViewPresentationAdapter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1B498F2B202DD3BB00EFF7FC /* TableViewPresentationAdapter.swift */; }; + C445830723381D5600340726 /* Layout.Attributes.swift in Sources */ = {isa = PBXBuildFile; fileRef = C445830523381D5200340726 /* Layout.Attributes.swift */; }; + C445830823381D5600340726 /* Layout.Attributes.swift in Sources */ = {isa = PBXBuildFile; fileRef = C445830523381D5200340726 /* Layout.Attributes.swift */; }; + C445830923381D5700340726 /* Layout.Attributes.swift in Sources */ = {isa = PBXBuildFile; fileRef = C445830523381D5200340726 /* Layout.Attributes.swift */; }; + C445830A23381D5800340726 /* Layout.Attributes.swift in Sources */ = {isa = PBXBuildFile; fileRef = C445830523381D5200340726 /* Layout.Attributes.swift */; }; + C445830E23381DF700340726 /* Layout.Fill.swift in Sources */ = {isa = PBXBuildFile; fileRef = C445830C23381DF200340726 /* Layout.Fill.swift */; }; + C445830F23381DF700340726 /* Layout.Fill.swift in Sources */ = {isa = PBXBuildFile; fileRef = C445830C23381DF200340726 /* Layout.Fill.swift */; }; + C445831023381DF700340726 /* Layout.Fill.swift in Sources */ = {isa = PBXBuildFile; fileRef = C445830C23381DF200340726 /* Layout.Fill.swift */; }; + C445831123381DF900340726 /* Layout.Fill.swift in Sources */ = {isa = PBXBuildFile; fileRef = C445830C23381DF200340726 /* Layout.Fill.swift */; }; + C44583162338223F00340726 /* Layout.VFill.swift in Sources */ = {isa = PBXBuildFile; fileRef = C4458314233821C900340726 /* Layout.VFill.swift */; }; + C44583172338223F00340726 /* Layout.VFill.swift in Sources */ = {isa = PBXBuildFile; fileRef = C4458314233821C900340726 /* Layout.VFill.swift */; }; + C44583182338224000340726 /* Layout.VFill.swift in Sources */ = {isa = PBXBuildFile; fileRef = C4458314233821C900340726 /* Layout.VFill.swift */; }; + C44583192338224000340726 /* Layout.VFill.swift in Sources */ = {isa = PBXBuildFile; fileRef = C4458314233821C900340726 /* Layout.VFill.swift */; }; + C445831A2338224400340726 /* Layout.HFill.swift in Sources */ = {isa = PBXBuildFile; fileRef = C4458312233820A700340726 /* Layout.HFill.swift */; }; + C445831B2338224400340726 /* Layout.HFill.swift in Sources */ = {isa = PBXBuildFile; fileRef = C4458312233820A700340726 /* Layout.HFill.swift */; }; + C445831C2338224400340726 /* Layout.HFill.swift in Sources */ = {isa = PBXBuildFile; fileRef = C4458312233820A700340726 /* Layout.HFill.swift */; }; + C445831D2338224500340726 /* Layout.HFill.swift in Sources */ = {isa = PBXBuildFile; fileRef = C4458312233820A700340726 /* Layout.HFill.swift */; }; + C4458320233822D100340726 /* Layout.Center.swift in Sources */ = {isa = PBXBuildFile; fileRef = C445831E2338225700340726 /* Layout.Center.swift */; }; + C4458321233822D200340726 /* Layout.Center.swift in Sources */ = {isa = PBXBuildFile; fileRef = C445831E2338225700340726 /* Layout.Center.swift */; }; + C4458322233822D200340726 /* Layout.Center.swift in Sources */ = {isa = PBXBuildFile; fileRef = C445831E2338225700340726 /* Layout.Center.swift */; }; + C4458323233822D300340726 /* Layout.Center.swift in Sources */ = {isa = PBXBuildFile; fileRef = C445831E2338225700340726 /* Layout.Center.swift */; }; + C44583282338234B00340726 /* Layout.VCenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = C44583262338231B00340726 /* Layout.VCenter.swift */; }; + C44583292338234C00340726 /* Layout.VCenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = C44583262338231B00340726 /* Layout.VCenter.swift */; }; + C445832A2338234C00340726 /* Layout.VCenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = C44583262338231B00340726 /* Layout.VCenter.swift */; }; + C445832B2338234D00340726 /* Layout.VCenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = C44583262338231B00340726 /* Layout.VCenter.swift */; }; + C445832C2338234F00340726 /* Layout.HCenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = C4458324233822EE00340726 /* Layout.HCenter.swift */; }; + C445832D2338235000340726 /* Layout.HCenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = C4458324233822EE00340726 /* Layout.HCenter.swift */; }; + C445832E2338235000340726 /* Layout.HCenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = C4458324233822EE00340726 /* Layout.HCenter.swift */; }; + C445832F2338235100340726 /* Layout.HCenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = C4458324233822EE00340726 /* Layout.HCenter.swift */; }; + C44583322338239800340726 /* Layout.Align.Top.swift in Sources */ = {isa = PBXBuildFile; fileRef = C44583302338239500340726 /* Layout.Align.Top.swift */; }; + C44583332338239800340726 /* Layout.Align.Top.swift in Sources */ = {isa = PBXBuildFile; fileRef = C44583302338239500340726 /* Layout.Align.Top.swift */; }; + C44583342338239900340726 /* Layout.Align.Top.swift in Sources */ = {isa = PBXBuildFile; fileRef = C44583302338239500340726 /* Layout.Align.Top.swift */; }; + C44583352338239900340726 /* Layout.Align.Top.swift in Sources */ = {isa = PBXBuildFile; fileRef = C44583302338239500340726 /* Layout.Align.Top.swift */; }; + C44583392338246600340726 /* Layout.Align.End.swift in Sources */ = {isa = PBXBuildFile; fileRef = C44583382338246600340726 /* Layout.Align.End.swift */; }; + C445833A2338246600340726 /* Layout.Align.End.swift in Sources */ = {isa = PBXBuildFile; fileRef = C44583382338246600340726 /* Layout.Align.End.swift */; }; + C445833B2338246600340726 /* Layout.Align.End.swift in Sources */ = {isa = PBXBuildFile; fileRef = C44583382338246600340726 /* Layout.Align.End.swift */; }; + C445833C2338246600340726 /* Layout.Align.End.swift in Sources */ = {isa = PBXBuildFile; fileRef = C44583382338246600340726 /* Layout.Align.End.swift */; }; + C445833D233824A000340726 /* Layout.Align.Start.swift in Sources */ = {isa = PBXBuildFile; fileRef = C44583362338240C00340726 /* Layout.Align.Start.swift */; }; + C445833E233824A100340726 /* Layout.Align.Start.swift in Sources */ = {isa = PBXBuildFile; fileRef = C44583362338240C00340726 /* Layout.Align.Start.swift */; }; + C445833F233824A100340726 /* Layout.Align.Start.swift in Sources */ = {isa = PBXBuildFile; fileRef = C44583362338240C00340726 /* Layout.Align.Start.swift */; }; + C4458340233824A200340726 /* Layout.Align.Start.swift in Sources */ = {isa = PBXBuildFile; fileRef = C44583362338240C00340726 /* Layout.Align.Start.swift */; }; + C4458342233824B200340726 /* Layout.Align.Bottom.swift in Sources */ = {isa = PBXBuildFile; fileRef = C4458341233824B200340726 /* Layout.Align.Bottom.swift */; }; + C4458343233824B200340726 /* Layout.Align.Bottom.swift in Sources */ = {isa = PBXBuildFile; fileRef = C4458341233824B200340726 /* Layout.Align.Bottom.swift */; }; + C4458344233824B200340726 /* Layout.Align.Bottom.swift in Sources */ = {isa = PBXBuildFile; fileRef = C4458341233824B200340726 /* Layout.Align.Bottom.swift */; }; + C4458345233824B200340726 /* Layout.Align.Bottom.swift in Sources */ = {isa = PBXBuildFile; fileRef = C4458341233824B200340726 /* Layout.Align.Bottom.swift */; }; C4C8AB5A22D2FF2D005626AA /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = C4C8AB5922D2FF2D005626AA /* AppDelegate.swift */; }; C4C8AB5C22D2FF2D005626AA /* SceneDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = C4C8AB5B22D2FF2D005626AA /* SceneDelegate.swift */; }; C4C8AB5E22D2FF2D005626AA /* ViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = C4C8AB5D22D2FF2D005626AA /* ViewController.swift */; }; @@ -147,6 +217,20 @@ 8933C7891EB5B82A000D00A4 /* LayoutOpsTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LayoutOpsTests.swift; sourceTree = ""; }; AD2FAA261CD0B6D800659CF4 /* LayoutOps.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = LayoutOps.plist; sourceTree = ""; }; AD2FAA281CD0B6E100659CF4 /* LayoutOpsTests.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = LayoutOpsTests.plist; sourceTree = ""; }; + C44582E323381CEF00340726 /* LayoutOps_Universal.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = LayoutOps_Universal.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + C44582E523381CEF00340726 /* LayoutOps_Universal.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = LayoutOps_Universal.h; sourceTree = ""; }; + C44582E623381CEF00340726 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + C445830523381D5200340726 /* Layout.Attributes.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Layout.Attributes.swift; sourceTree = ""; }; + C445830C23381DF200340726 /* Layout.Fill.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Layout.Fill.swift; sourceTree = ""; }; + C4458312233820A700340726 /* Layout.HFill.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Layout.HFill.swift; sourceTree = ""; }; + C4458314233821C900340726 /* Layout.VFill.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Layout.VFill.swift; sourceTree = ""; }; + C445831E2338225700340726 /* Layout.Center.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Layout.Center.swift; sourceTree = ""; }; + C4458324233822EE00340726 /* Layout.HCenter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Layout.HCenter.swift; sourceTree = ""; }; + C44583262338231B00340726 /* Layout.VCenter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Layout.VCenter.swift; sourceTree = ""; }; + C44583302338239500340726 /* Layout.Align.Top.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Layout.Align.Top.swift; sourceTree = ""; }; + C44583362338240C00340726 /* Layout.Align.Start.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Layout.Align.Start.swift; sourceTree = ""; }; + C44583382338246600340726 /* Layout.Align.End.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Layout.Align.End.swift; sourceTree = ""; }; + C4458341233824B200340726 /* Layout.Align.Bottom.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Layout.Align.Bottom.swift; sourceTree = ""; }; C4C8AB5722D2FF2D005626AA /* ExampleApp.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = ExampleApp.app; sourceTree = BUILT_PRODUCTS_DIR; }; C4C8AB5922D2FF2D005626AA /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; C4C8AB5B22D2FF2D005626AA /* SceneDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SceneDelegate.swift; sourceTree = ""; }; @@ -189,6 +273,13 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + C44582E023381CEF00340726 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; C4C8AB5422D2FF2D005626AA /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; @@ -276,6 +367,7 @@ 8933C7811EB5B7E0000D00A4 /* Sources */, 8933C7831EB5B7EB000D00A4 /* Tests */, 52D6D99C1BEFF38C002C0205 /* Configs */, + C44582E423381CEF00340726 /* LayoutOps-Universal */, 52D6D97D1BEFF229002C0205 /* Products */, C4C8AB6B22D2FF4F005626AA /* Frameworks */, ); @@ -291,6 +383,7 @@ DD75027A1C68FCFC006590AF /* LayoutOps-macOS Tests.xctest */, DD75028D1C690C7A006590AF /* LayoutOps-tvOS Tests.xctest */, C4C8AB5722D2FF2D005626AA /* ExampleApp.app */, + C44582E323381CEF00340726 /* LayoutOps_Universal.framework */, ); name = Products; sourceTree = ""; @@ -307,6 +400,7 @@ 8933C7811EB5B7E0000D00A4 /* Sources */ = { isa = PBXGroup; children = ( + C445830423381D4500340726 /* Attributes */, 1B498F4D202DD43600EFF7FC /* LX */, 1B498F27202DD3BB00EFF7FC /* UIKit */, 1B498F4E202DD44600EFF7FC /* Nodes */, @@ -324,6 +418,41 @@ path = Tests/LayoutOpsTests; sourceTree = ""; }; + C44582E423381CEF00340726 /* LayoutOps-Universal */ = { + isa = PBXGroup; + children = ( + C44582E523381CEF00340726 /* LayoutOps_Universal.h */, + C44582E623381CEF00340726 /* Info.plist */, + ); + path = "LayoutOps-Universal"; + sourceTree = ""; + }; + C445830423381D4500340726 /* Attributes */ = { + isa = PBXGroup; + children = ( + C445830B23381DE500340726 /* Values */, + C445830523381D5200340726 /* Layout.Attributes.swift */, + ); + name = Attributes; + sourceTree = ""; + }; + C445830B23381DE500340726 /* Values */ = { + isa = PBXGroup; + children = ( + C445830C23381DF200340726 /* Layout.Fill.swift */, + C4458312233820A700340726 /* Layout.HFill.swift */, + C4458314233821C900340726 /* Layout.VFill.swift */, + C445831E2338225700340726 /* Layout.Center.swift */, + C4458324233822EE00340726 /* Layout.HCenter.swift */, + C44583262338231B00340726 /* Layout.VCenter.swift */, + C44583302338239500340726 /* Layout.Align.Top.swift */, + C44583362338240C00340726 /* Layout.Align.Start.swift */, + C44583382338246600340726 /* Layout.Align.End.swift */, + C4458341233824B200340726 /* Layout.Align.Bottom.swift */, + ); + name = Values; + sourceTree = ""; + }; C4C8AB5822D2FF2D005626AA /* ExampleApp */ = { isa = PBXGroup; children = ( @@ -385,6 +514,14 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + C44582DE23381CEF00340726 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + C44582E723381CEF00340726 /* LayoutOps_Universal.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; /* End PBXHeadersBuildPhase section */ /* Begin PBXNativeTarget section */ @@ -460,6 +597,24 @@ productReference = 52D6DA0F1BF000BD002C0205 /* LayoutOps.framework */; productType = "com.apple.product-type.framework"; }; + C44582E223381CEF00340726 /* LayoutOps-Universal */ = { + isa = PBXNativeTarget; + buildConfigurationList = C44582EA23381CEF00340726 /* Build configuration list for PBXNativeTarget "LayoutOps-Universal" */; + buildPhases = ( + C44582DE23381CEF00340726 /* Headers */, + C44582DF23381CEF00340726 /* Sources */, + C44582E023381CEF00340726 /* Frameworks */, + C44582E123381CEF00340726 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = "LayoutOps-Universal"; + productName = "LayoutOps-Universal"; + productReference = C44582E323381CEF00340726 /* LayoutOps_Universal.framework */; + productType = "com.apple.product-type.framework"; + }; C4C8AB5622D2FF2D005626AA /* ExampleApp */ = { isa = PBXNativeTarget; buildConfigurationList = C4C8AB6A22D2FF2E005626AA /* Build configuration list for PBXNativeTarget "ExampleApp" */; @@ -541,6 +696,10 @@ CreatedOnToolsVersion = 7.1; LastSwiftMigration = 1020; }; + C44582E223381CEF00340726 = { + CreatedOnToolsVersion = 11.0; + ProvisioningStyle = Automatic; + }; C4C8AB5622D2FF2D005626AA = { CreatedOnToolsVersion = 11.0; DevelopmentTeam = EVL2DEPTTR; @@ -576,6 +735,7 @@ 52D6D9851BEFF229002C0205 /* LayoutOps-iOS Tests */, DD7502791C68FCFC006590AF /* LayoutOps-macOS Tests */, DD75028C1C690C7A006590AF /* LayoutOps-tvOS Tests */, + C44582E223381CEF00340726 /* LayoutOps-Universal */, ); }; /* End PBXProject section */ @@ -609,6 +769,13 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + C44582E123381CEF00340726 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; C4C8AB5522D2FF2D005626AA /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; @@ -640,24 +807,35 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( + C44583282338234B00340726 /* Layout.VCenter.swift in Sources */, 1B498F47202DD3BB00EFF7FC /* LX.swift in Sources */, + C445830E23381DF700340726 /* Layout.Fill.swift in Sources */, 1B067097202E049C008DDCF0 /* CALayer+LX.swift in Sources */, 1B498F3A202DD3BB00EFF7FC /* SwitchNode.swift in Sources */, 1B498F3F202DD3BB00EFF7FC /* Node.swift in Sources */, 1B498F3D202DD3BB00EFF7FC /* SizeToFit.swift in Sources */, 1B498F33202DD3BB00EFF7FC /* Anchor.swift in Sources */, 1B498F3B202DD3BB00EFF7FC /* Follow.swift in Sources */, + C44583322338239800340726 /* Layout.Align.Top.swift in Sources */, 1B498F36202DD3BB00EFF7FC /* ImageNode.swift in Sources */, + C4458320233822D100340726 /* Layout.Center.swift in Sources */, 1B498F34202DD3BB00EFF7FC /* Basic.swift in Sources */, 1B498F39202DD3BB00EFF7FC /* PutWrap.swift in Sources */, 1B498F41202DD3BB00EFF7FC /* UIView+LX.swift in Sources */, 1B498F45202DD3BB00EFF7FC /* PresentationItem.swift in Sources */, + C445832C2338234F00340726 /* Layout.HCenter.swift in Sources */, 1B498F44202DD3BB00EFF7FC /* Accelerate.swift in Sources */, + C445833D233824A000340726 /* Layout.Align.Start.swift in Sources */, 1B498F49202DD3BB00EFF7FC /* Viewport.swift in Sources */, + C44583162338223F00340726 /* Layout.VFill.swift in Sources */, 1B498F46202DD3BB00EFF7FC /* NSAttributedString+Size.swift in Sources */, 1B498F37202DD3BB00EFF7FC /* RootNode.swift in Sources */, 1B498F51202DD6AC00EFF7FC /* LabelNode.swift in Sources */, 1B498F4A202DD3BB00EFF7FC /* PresentationModel.swift in Sources */, + C445831A2338224400340726 /* Layout.HFill.swift in Sources */, + C44583392338246600340726 /* Layout.Align.End.swift in Sources */, + C445830723381D5600340726 /* Layout.Attributes.swift in Sources */, + C4458342233824B200340726 /* Layout.Align.Bottom.swift in Sources */, 1B498F3C202DD3BB00EFF7FC /* PresentationTableRow.swift in Sources */, 1B498F48202DD3BB00EFF7FC /* PresentationTableHeaderFooter.swift in Sources */, 1B498F42202DD3BB00EFF7FC /* BaseTableViewPresentationAdapter.swift in Sources */, @@ -680,16 +858,27 @@ buildActionMask = 2147483647; files = ( 1B067099202E049C008DDCF0 /* CALayer+LX.swift in Sources */, + C445831023381DF700340726 /* Layout.Fill.swift in Sources */, 1B9A3CA0202DDCF300E244F0 /* Follow.swift in Sources */, + C44583292338234C00340726 /* Layout.VCenter.swift in Sources */, 1B9A3CBB202DDD4C00E244F0 /* UIView+LX.swift in Sources */, + C44583182338224000340726 /* Layout.VFill.swift in Sources */, + C44583342338239900340726 /* Layout.Align.Top.swift in Sources */, 1B9A3C9F202DDCF300E244F0 /* Basic.swift in Sources */, 1B9A3C9D202DDCF300E244F0 /* Accelerate.swift in Sources */, 1B9A3CA3202DDCF300E244F0 /* PutWrap.swift in Sources */, 1B9A3CA1202DDCF300E244F0 /* SizeToFit.swift in Sources */, + C445832E2338235000340726 /* Layout.HCenter.swift in Sources */, 1B0670A3202E4E67008DDCF0 /* Utils.swift in Sources */, + C445833B2338246600340726 /* Layout.Align.End.swift in Sources */, + C445833F233824A100340726 /* Layout.Align.Start.swift in Sources */, 1B9A3CA2202DDCF300E244F0 /* Viewport.swift in Sources */, + C4458322233822D200340726 /* Layout.Center.swift in Sources */, + C445830923381D5700340726 /* Layout.Attributes.swift in Sources */, + C4458344233824B200340726 /* Layout.Align.Bottom.swift in Sources */, 1B9A3C9E202DDCF300E244F0 /* Anchor.swift in Sources */, 1B9A3C9C202DDCF300E244F0 /* LX.swift in Sources */, + C445831C2338224400340726 /* Layout.HFill.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -698,16 +887,70 @@ buildActionMask = 2147483647; files = ( 1B06708F202DEA8C008DDCF0 /* Follow.swift in Sources */, + C445830F23381DF700340726 /* Layout.Fill.swift in Sources */, 1B067098202E049C008DDCF0 /* CALayer+LX.swift in Sources */, + C445832A2338234C00340726 /* Layout.VCenter.swift in Sources */, 1B06708E202DEA8C008DDCF0 /* Basic.swift in Sources */, + C44583172338223F00340726 /* Layout.VFill.swift in Sources */, + C44583332338239800340726 /* Layout.Align.Top.swift in Sources */, 1B06708C202DEA8C008DDCF0 /* Accelerate.swift in Sources */, 1B0670A2202E4E67008DDCF0 /* Utils.swift in Sources */, 1B067092202DEA8C008DDCF0 /* PutWrap.swift in Sources */, 1B067090202DEA8C008DDCF0 /* SizeToFit.swift in Sources */, + C445832D2338235000340726 /* Layout.HCenter.swift in Sources */, 1B067091202DEA8C008DDCF0 /* Viewport.swift in Sources */, + C445833A2338246600340726 /* Layout.Align.End.swift in Sources */, + C445833E233824A100340726 /* Layout.Align.Start.swift in Sources */, 1B06709C202E056F008DDCF0 /* NSView+LX.swift in Sources */, + C4458321233822D200340726 /* Layout.Center.swift in Sources */, + C445830823381D5600340726 /* Layout.Attributes.swift in Sources */, + C4458343233824B200340726 /* Layout.Align.Bottom.swift in Sources */, 1B06708D202DEA8C008DDCF0 /* Anchor.swift in Sources */, 1B06708B202DEA8C008DDCF0 /* LX.swift in Sources */, + C445831B2338224400340726 /* Layout.HFill.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + C44582DF23381CEF00340726 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + C4458340233824A200340726 /* Layout.Align.Start.swift in Sources */, + C44582EB23381D0600340726 /* LX.swift in Sources */, + C445833C2338246600340726 /* Layout.Align.End.swift in Sources */, + C4458323233822D300340726 /* Layout.Center.swift in Sources */, + C44582EC23381D0600340726 /* Basic.swift in Sources */, + C44582ED23381D0600340726 /* Anchor.swift in Sources */, + C445832F2338235100340726 /* Layout.HCenter.swift in Sources */, + C44582EE23381D0600340726 /* Follow.swift in Sources */, + C44582EF23381D0600340726 /* SizeToFit.swift in Sources */, + C44582F023381D0600340726 /* Viewport.swift in Sources */, + C44582F123381D0600340726 /* PutWrap.swift in Sources */, + C44582F223381D0600340726 /* Accelerate.swift in Sources */, + C44582F323381D0600340726 /* Utils.swift in Sources */, + C445830A23381D5800340726 /* Layout.Attributes.swift in Sources */, + C445831D2338224500340726 /* Layout.HFill.swift in Sources */, + C445831123381DF900340726 /* Layout.Fill.swift in Sources */, + C44582F423381D0600340726 /* UIView+LX.swift in Sources */, + C44582F523381D0600340726 /* CALayer+LX.swift in Sources */, + C44582F623381D0600340726 /* NSView+LX.swift in Sources */, + C44582F723381D0600340726 /* Node.swift in Sources */, + C44582F823381D0600340726 /* RootNode.swift in Sources */, + C44582F923381D0600340726 /* LabelNode.swift in Sources */, + C44582FA23381D0600340726 /* ImageNode.swift in Sources */, + C44583352338239900340726 /* Layout.Align.Top.swift in Sources */, + C44583192338224000340726 /* Layout.VFill.swift in Sources */, + C44582FB23381D0600340726 /* SwitchNode.swift in Sources */, + C44582FC23381D0600340726 /* NSAttributedString+Size.swift in Sources */, + C44582FD23381D0600340726 /* PresentationItem.swift in Sources */, + C44582FE23381D0600340726 /* PresentationModel.swift in Sources */, + C44582FF23381D0600340726 /* PresentationTableHeaderFooter.swift in Sources */, + C4458345233824B200340726 /* Layout.Align.Bottom.swift in Sources */, + C445830023381D0600340726 /* PresentationTableRow.swift in Sources */, + C445830123381D0600340726 /* NodeTableViewCell.swift in Sources */, + C445830223381D0600340726 /* BaseTableViewPresentationAdapter.swift in Sources */, + C445832B2338234D00340726 /* Layout.VCenter.swift in Sources */, + C445830323381D0600340726 /* TableViewPresentationAdapter.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -1066,6 +1309,71 @@ }; name = Release; }; + C44582E823381CEF00340726 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CODE_SIGN_STYLE = Automatic; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + GCC_C_LANGUAGE_STANDARD = gnu11; + INFOPLIST_FILE = "LayoutOps-Universal/Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 13.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + MACH_O_TYPE = staticlib; + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; + PRODUCT_BUNDLE_IDENTIFIER = "com.zkhaider.LayoutOps-Universal"; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + SKIP_INSTALL = YES; + SUPPORTED_PLATFORMS = "iphonesimulator iphoneos macosx"; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + VALID_ARCHS = "arm64 arm64e armv7 armv7s x86_64 i386"; + }; + name = Debug; + }; + C44582E923381CEF00340726 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CODE_SIGN_STYLE = Automatic; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + GCC_C_LANGUAGE_STANDARD = gnu11; + INFOPLIST_FILE = "LayoutOps-Universal/Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 13.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + MACH_O_TYPE = staticlib; + MTL_FAST_MATH = YES; + PRODUCT_BUNDLE_IDENTIFIER = "com.zkhaider.LayoutOps-Universal"; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + SKIP_INSTALL = YES; + SUPPORTED_PLATFORMS = "iphonesimulator iphoneos macosx"; + SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + VALID_ARCHS = "arm64 arm64e armv7 armv7s x86_64 i386"; + }; + name = Release; + }; C4C8AB6822D2FF2E005626AA /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { @@ -1227,6 +1535,15 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; + C44582EA23381CEF00340726 /* Build configuration list for PBXNativeTarget "LayoutOps-Universal" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + C44582E823381CEF00340726 /* Debug */, + C44582E923381CEF00340726 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; C4C8AB6A22D2FF2E005626AA /* Build configuration list for PBXNativeTarget "ExampleApp" */ = { isa = XCConfigurationList; buildConfigurations = ( diff --git a/Sources/Basic.swift b/Sources/Basic.swift index 1c6809c..8b1dc3d 100644 --- a/Sources/Basic.swift +++ b/Sources/Basic.swift @@ -321,6 +321,74 @@ struct LXEdgeInsets { self.bottom = bottom self.right = right } + + var congruent: Bool { + return self.top == self.bottom && self.left == self.right && self.top == self.left + } +} + +extension LXEdgeInsets: Codable { + + public init(from decoder: Decoder) throws { + let container = try decoder.singleValueContainer() + if let floatValue = try? container.decode(Float.self) { + self.top = CGFloat(floatValue) + self.left = CGFloat(floatValue) + self.right = CGFloat(floatValue) + self.bottom = CGFloat(floatValue) + } else if let arrayValue = try? container.decode([Float].self), + arrayValue.count >= 4 { + self.left = CGFloat(arrayValue[0]) + self.top = CGFloat(arrayValue[1]) + self.right = CGFloat(arrayValue[2]) + self.bottom = CGFloat(arrayValue[3]) + } else { + self.top = 0.0 + self.left = 0.0 + self.bottom = 0.0 + self.right = 0.0 + } + } + + public func encode(to encoder: Encoder) throws { + var container = encoder.singleValueContainer() + if self.congruent { + try container.encode(self.top) + } else { + let array: [Float] = [Float(left), Float(top), Float(right), Float(bottom)] + try container.encode(array) + } + } + +} + +extension LXEdgeInsets: Hashable { + + public static func ==(lhs: LXEdgeInsets, + rhs: LXEdgeInsets) -> Bool { + if lhs.top != rhs.top { + return false + } + if lhs.left != rhs.left { + return false + } + if lhs.right != rhs.right { + return false + } + if lhs.bottom != rhs.bottom { + return false + } + return true + } + + public func hash(into hasher: inout Hasher) { + if self.congruent { + hasher.combine(self.top) + } else { + hasher.combine(self.left + self.top + self.right + self.bottom) + } + } + } func LXEdgeInsetsInsetRect(_ r: CGRect, _ insets: LXEdgeInsets) -> CGRect { diff --git a/Sources/Layout.Align.Bottom.swift b/Sources/Layout.Align.Bottom.swift new file mode 100644 index 0000000..73aa891 --- /dev/null +++ b/Sources/Layout.Align.Bottom.swift @@ -0,0 +1,58 @@ +// +// Layout.Align.Bottom.swift +// LayoutOps +// +// Created by Haider Khan on 9/22/19. +// Copyright © 2019 LayoutOps. All rights reserved. +// + +import Foundation + +public struct AlignBottom { + let insets: LXEdgeInsets + public init(inset: Float) { + self.insets = LXEdgeInsets(top: 0.0, + left: 0.0, + bottom: CGFloat(inset), + right: 0.0) + } + +} + +extension AlignBottom: Codable { + + private enum RootKeys: String, CodingKey { + case alignBottom + } + + public init(from decoder: Decoder) throws { + let container = try decoder.container(keyedBy: RootKeys.self) + let floatValue = try container.decode(Float.self, forKey: .alignBottom) + self.insets = LXEdgeInsets(top: 0.0, + left: 0.0, + bottom: CGFloat(floatValue), + right: 0.0) + } + + public func encode(to encoder: Encoder) throws { + var container = encoder.container(keyedBy: RootKeys.self) + try container.encode(self.insets.bottom, forKey: .alignBottom) + } + +} + +extension AlignBottom: Hashable { + + public static func ==(lhs: AlignBottom, + rhs: AlignBottom) -> Bool { + if lhs.insets != rhs.insets { + return false + } + return true + } + + public func hash(into hasher: inout Hasher) { + hasher.combine(self.insets) + } + +} diff --git a/Sources/Layout.Align.End.swift b/Sources/Layout.Align.End.swift new file mode 100644 index 0000000..b0d7ffe --- /dev/null +++ b/Sources/Layout.Align.End.swift @@ -0,0 +1,58 @@ +// +// Layout.Align.End.swift +// LayoutOps +// +// Created by Haider Khan on 9/22/19. +// Copyright © 2019 LayoutOps. All rights reserved. +// + +import Foundation + +public struct AlignEnd { + let insets: LXEdgeInsets + public init(inset: Float) { + self.insets = LXEdgeInsets(top: 0.0, + left: 0.0, + bottom: 0.0, + right: CGFloat(inset)) + } + +} + +extension AlignEnd: Codable { + + private enum RootKeys: String, CodingKey { + case alignEnd + } + + public init(from decoder: Decoder) throws { + let container = try decoder.container(keyedBy: RootKeys.self) + let floatValue = try container.decode(Float.self, forKey: .alignEnd) + self.insets = LXEdgeInsets(top: 0.0, + left: 0.0, + bottom: 0.0, + right: CGFloat(floatValue)) + } + + public func encode(to encoder: Encoder) throws { + var container = encoder.container(keyedBy: RootKeys.self) + try container.encode(self.insets.right, forKey: .alignEnd) + } + +} + +extension AlignEnd: Hashable { + + public static func ==(lhs: AlignEnd, + rhs: AlignEnd) -> Bool { + if lhs.insets != rhs.insets { + return false + } + return true + } + + public func hash(into hasher: inout Hasher) { + hasher.combine(self.insets) + } + +} diff --git a/Sources/Layout.Align.Start.swift b/Sources/Layout.Align.Start.swift new file mode 100644 index 0000000..13483c1 --- /dev/null +++ b/Sources/Layout.Align.Start.swift @@ -0,0 +1,58 @@ +// +// Layout.Align.Start.swift +// ExampleApp +// +// Created by Haider Khan on 9/22/19. +// Copyright © 2019 LayoutOps. All rights reserved. +// + +import Foundation + +public struct AlignStart { + let insets: LXEdgeInsets + public init(inset: Float) { + self.insets = LXEdgeInsets(top: 0.0, + left: CGFloat(inset), + bottom: 0.0, + right: 0.0) + } + +} + +extension AlignStart: Codable { + + private enum RootKeys: String, CodingKey { + case alignStart + } + + public init(from decoder: Decoder) throws { + let container = try decoder.container(keyedBy: RootKeys.self) + let floatValue = try container.decode(Float.self, forKey: .alignStart) + self.insets = LXEdgeInsets(top: 0.0, + left: CGFloat(floatValue), + bottom: 0.0, + right: 0.0) + } + + public func encode(to encoder: Encoder) throws { + var container = encoder.container(keyedBy: RootKeys.self) + try container.encode(self.insets.left, forKey: .alignStart) + } + +} + +extension AlignStart: Hashable { + + public static func ==(lhs: AlignStart, + rhs: AlignStart) -> Bool { + if lhs.insets != rhs.insets { + return false + } + return true + } + + public func hash(into hasher: inout Hasher) { + hasher.combine(self.insets) + } + +} diff --git a/Sources/Layout.Align.Top.swift b/Sources/Layout.Align.Top.swift new file mode 100644 index 0000000..0c2c049 --- /dev/null +++ b/Sources/Layout.Align.Top.swift @@ -0,0 +1,58 @@ +// +// Layout.Align.Top.swift +// ExampleApp +// +// Created by Haider Khan on 9/22/19. +// Copyright © 2019 LayoutOps. All rights reserved. +// + +import Foundation + +public struct AlignTop { + let insets: LXEdgeInsets + public init(inset: Float) { + self.insets = LXEdgeInsets(top: CGFloat(inset), + left: 0.0, + bottom: 0.0, + right: 0.0) + } + +} + +extension AlignTop: Codable { + + private enum RootKeys: String, CodingKey { + case alignTop + } + + public init(from decoder: Decoder) throws { + let container = try decoder.container(keyedBy: RootKeys.self) + let floatValue = try container.decode(Float.self, forKey: .alignTop) + self.insets = LXEdgeInsets(top: CGFloat(floatValue), + left: 0.0, + bottom: 0.0, + right: 0.0) + } + + public func encode(to encoder: Encoder) throws { + var container = encoder.container(keyedBy: RootKeys.self) + try container.encode(self.insets.top, forKey: .alignTop) + } + +} + +extension AlignTop: Hashable { + + public static func ==(lhs: AlignTop, + rhs: AlignTop) -> Bool { + if lhs.insets != rhs.insets { + return false + } + return true + } + + public func hash(into hasher: inout Hasher) { + hasher.combine(self.insets) + } + +} diff --git a/Sources/Layout.Attributes.swift b/Sources/Layout.Attributes.swift new file mode 100644 index 0000000..c612467 --- /dev/null +++ b/Sources/Layout.Attributes.swift @@ -0,0 +1,176 @@ +// +// Layout.Attributes.swift +// ExampleApp +// +// Created by Haider Khan on 9/22/19. +// Copyright © 2019 LayoutOps. All rights reserved. +// + +import Foundation + +public enum LayoutAttribute { + + case fill(Fill) + case hFill(HFill) + case vFill(VFill) + + case center(Center) + case hCenter(HCenter) + case vCenter(VCenter) + + case alignTop(AlignTop) + case alignStart(AlignStart) + case alignBottom(AlignBottom) + case alignEnd(AlignEnd) + + case unknown + +} + +extension LayoutAttribute: Codable { + + public init(from decoder: Decoder) throws { + + if let fill = try? Fill(from: decoder) { + self = .fill(fill) + } else if let hFill = try? HFill(from: decoder) { + self = .hFill(hFill) + } else if let vFill = try? VFill(from: decoder) { + self = .vFill(vFill) + } else if let center = try? Center(from: decoder) { + self = .center(center) + } else if let hCenter = try? HCenter(from: decoder) { + self = .hCenter(hCenter) + } else if let vCenter = try? VCenter(from: decoder) { + self = .vCenter(vCenter) + } else if let alignTop = try? AlignTop(from: decoder) { + self = .alignTop(alignTop) + } else if let alignStart = try? AlignStart(from: decoder) { + self = .alignStart(alignStart) + } else if let alignEnd = try? AlignEnd(from: decoder) { + self = .alignEnd(alignEnd) + } else if let alignBottom = try? AlignBottom(from: decoder) { + self = .alignBottom(alignBottom) + } else { + self = .unknown + } + } + + public func encode(to encoder: Encoder) throws { + switch self { + case .fill(let fill): + try fill.encode(to: encoder) + case .hFill(let hFill): + try hFill.encode(to: encoder) + case .vFill(let vFill): + try vFill.encode(to: encoder) + case .center(let center): + try center.encode(to: encoder) + case .hCenter(let hCenter): + try hCenter.encode(to: encoder) + case .vCenter(let vCenter): + try vCenter.encode(to: encoder) + case .alignTop(let alignTop): + try alignTop.encode(to: encoder) + case .alignStart(let alignStart): + try alignStart.encode(to: encoder) + case .alignBottom(let alignBottom): + try alignBottom.encode(to: encoder) + case .alignEnd(let alignEnd): + try alignEnd.encode(to: encoder) + case .unknown: break + } + } + +} + +extension LayoutAttribute: Hashable { + + public static func ==(lhs: LayoutAttribute, + rhs: LayoutAttribute) -> Bool { + switch lhs { + case .fill(let lhsFill): + switch rhs { + case .fill(let rhsFill): return lhsFill == rhsFill + default: return false + } + case .hFill(let lhsHFill): + switch rhs { + case .hFill(let rhsHFill): return lhsHFill == rhsHFill + default: return false + } + case .vFill(let lhsVFill): + switch rhs { + case .vFill(let rhsVFill): return lhsVFill == rhsVFill + default: return false + } + case .center(let lhsCenter): + switch rhs { + case .center(let rhsCenter): return lhsCenter == rhsCenter + default: return false + } + case .hCenter(let lhsHCenter): + switch rhs { + case .hCenter(let rhsHCenter): return lhsHCenter == rhsHCenter + default: return false + } + case .vCenter(let lhsVCenter): + switch rhs { + case .vCenter(let rhsVCenter): return lhsVCenter == rhsVCenter + default: return false + } + case .alignTop(let lhsAlignTop): + switch rhs { + case .alignTop(let rhsAlignTop): return lhsAlignTop == rhsAlignTop + default: return false + } + case .alignStart(let lhsAlignStart): + switch rhs { + case .alignStart(let rhsAlignStart): return lhsAlignStart == rhsAlignStart + default: return false + } + case .alignBottom(let lhsAlignBottom): + switch rhs { + case .alignBottom(let rhsAlignBottom): return lhsAlignBottom == rhsAlignBottom + default: return false + } + case .alignEnd(let lhsAlignEnd): + switch rhs { + case .alignEnd(let rhsAlignEnd): return lhsAlignEnd == rhsAlignEnd + default: return false + } + case .unknown: + switch rhs { + case .unknown: return true + default: return false + } + } + } + + public func hash(into hasher: inout Hasher) { + switch self { + case .fill(let fill): + hasher.combine(fill) + case .hFill(let hFill): + hasher.combine(hFill) + case .vFill(let vFill): + hasher.combine(vFill) + case .center(let center): + hasher.combine(center) + case .hCenter(let hCenter): + hasher.combine(hCenter) + case .vCenter(let vCenter): + hasher.combine(vCenter) + case .alignTop(let alignTop): + hasher.combine(alignTop) + case .alignStart(let alignStart): + hasher.combine(alignStart) + case .alignBottom(let alignBottom): + hasher.combine(alignBottom) + case .alignEnd(let alignEnd): + hasher.combine(alignEnd) + case .unknown: break + } + } + +} diff --git a/Sources/Layout.Center.swift b/Sources/Layout.Center.swift new file mode 100644 index 0000000..1a1dbe5 --- /dev/null +++ b/Sources/Layout.Center.swift @@ -0,0 +1,60 @@ +// +// Layout.Center.swift +// ExampleApp +// +// Created by Haider Khan on 9/22/19. +// Copyright © 2019 LayoutOps. All rights reserved. +// + +import Foundation + +public struct Center { + let insets: LXEdgeInsets + public init(start: Float, + top: Float, + end: Float, + bottom: Float) { + self.insets = LXEdgeInsets(top: CGFloat(top), + left: CGFloat(start), + bottom: CGFloat(bottom), + right: CGFloat(end)) + } + + init(insets: LXEdgeInsets) { + self.insets = insets + } +} + +extension Center: Codable { + + private enum RootKeys: String, CodingKey { + case center + } + + public init(from decoder: Decoder) throws { + let container = try decoder.container(keyedBy: RootKeys.self) + self.insets = try container.decode(LXEdgeInsets.self, forKey: .center) + } + + public func encode(to encoder: Encoder) throws { + var container = encoder.container(keyedBy: RootKeys.self) + try container.encode(self.insets, forKey: .center) + } + +} + +extension Center: Hashable { + + public static func ==(lhs: Center, + rhs: Center) -> Bool { + if lhs.insets != rhs.insets { + return false + } + return true + } + + public func hash(into hasher: inout Hasher) { + hasher.combine(self.insets) + } + +} diff --git a/Sources/Layout.Fill.swift b/Sources/Layout.Fill.swift new file mode 100644 index 0000000..81ca240 --- /dev/null +++ b/Sources/Layout.Fill.swift @@ -0,0 +1,60 @@ +// +// Layout.Fill.swift +// ExampleApp +// +// Created by Haider Khan on 9/22/19. +// Copyright © 2019 LayoutOps. All rights reserved. +// + +import Foundation + +public struct Fill { + let insets: LXEdgeInsets + public init(start: Float, + top: Float, + end: Float, + bottom: Float) { + self.insets = LXEdgeInsets(top: CGFloat(top), + left: CGFloat(start), + bottom: CGFloat(bottom), + right: CGFloat(end)) + } + + init(insets: LXEdgeInsets) { + self.insets = insets + } +} + +extension Fill: Codable { + + private enum RootKeys: String, CodingKey { + case fill + } + + public init(from decoder: Decoder) throws { + let container = try decoder.container(keyedBy: RootKeys.self) + self.insets = try container.decode(LXEdgeInsets.self, forKey: .fill) + } + + public func encode(to encoder: Encoder) throws { + var container = encoder.container(keyedBy: RootKeys.self) + try container.encode(self.insets, forKey: .fill) + } + +} + +extension Fill: Hashable { + + public static func ==(lhs: Fill, + rhs: Fill) -> Bool { + if lhs.insets != rhs.insets { + return false + } + return true + } + + public func hash(into hasher: inout Hasher) { + hasher.combine(self.insets) + } + +} diff --git a/Sources/Layout.HCenter.swift b/Sources/Layout.HCenter.swift new file mode 100644 index 0000000..fd9aad3 --- /dev/null +++ b/Sources/Layout.HCenter.swift @@ -0,0 +1,74 @@ +// +// Layout.HCenter.swift +// ExampleApp +// +// Created by Haider Khan on 9/22/19. +// Copyright © 2019 LayoutOps. All rights reserved. +// + +import Foundation + +public struct HCenter { + let insets: LXEdgeInsets + public init(start: Float, + end: Float) { + self.insets = LXEdgeInsets(top: 0.0, + left: CGFloat(start), + bottom: 0.0, + right: CGFloat(end)) + } +} + +extension HCenter: Codable { + + private enum RootKeys: String, CodingKey { + case hCenter + } + + public init(from decoder: Decoder) throws { + let container = try decoder.container(keyedBy: RootKeys.self) + if let floatValue = try? container.decode(Float.self, forKey: .hCenter) { + self.insets = LXEdgeInsets(top: 0.0, + left: CGFloat(floatValue), + bottom: 0.0, + right: CGFloat(floatValue)) + } else if let arrayValue = try? container.decode([Float].self, forKey: .hCenter), + arrayValue.count == 2 { + self.insets = LXEdgeInsets(top: 0.0, + left: CGFloat(arrayValue[0]), + bottom: 0.0, + right: CGFloat(arrayValue[1])) + } else { + self.insets = LXEdgeInsets(top: 0.0, + left: 0.0, + bottom: 0.0, + right: 0.0) + } + } + + public func encode(to encoder: Encoder) throws { + var container = encoder.container(keyedBy: RootKeys.self) + if self.insets.congruent { + try container.encode(self.insets.left, forKey: .hCenter) + } else { + try container.encode([self.insets.left, self.insets.right], forKey: .hCenter) + } + } + +} + +extension HCenter: Hashable { + + public static func ==(lhs: HCenter, + rhs: HCenter) -> Bool { + if lhs.insets != rhs.insets { + return false + } + return true + } + + public func hash(into hasher: inout Hasher) { + hasher.combine(self.insets) + } + +} diff --git a/Sources/Layout.HFill.swift b/Sources/Layout.HFill.swift new file mode 100644 index 0000000..4f5ac3e --- /dev/null +++ b/Sources/Layout.HFill.swift @@ -0,0 +1,74 @@ +// +// Layout.HFill.swift +// ExampleApp +// +// Created by Haider Khan on 9/22/19. +// Copyright © 2019 LayoutOps. All rights reserved. +// + +import Foundation + +public struct HFill { + let insets: LXEdgeInsets + public init(start: Float, + end: Float) { + self.insets = LXEdgeInsets(top: 0.0, + left: CGFloat(start), + bottom: 0.0, + right: CGFloat(end)) + } +} + +extension HFill: Codable { + + private enum RootKeys: String, CodingKey { + case hFill + } + + public init(from decoder: Decoder) throws { + let container = try decoder.container(keyedBy: RootKeys.self) + if let floatValue = try? container.decode(Float.self, forKey: .hFill) { + self.insets = LXEdgeInsets(top: 0.0, + left: CGFloat(floatValue), + bottom: 0.0, + right: CGFloat(floatValue)) + } else if let arrayValue = try? container.decode([Float].self, forKey: .hFill), + arrayValue.count == 2 { + self.insets = LXEdgeInsets(top: 0.0, + left: CGFloat(arrayValue[0]), + bottom: 0.0, + right: CGFloat(arrayValue[1])) + } else { + self.insets = LXEdgeInsets(top: 0.0, + left: 0.0, + bottom: 0.0, + right: 0.0) + } + } + + public func encode(to encoder: Encoder) throws { + var container = encoder.container(keyedBy: RootKeys.self) + if self.insets.congruent { + try container.encode(self.insets.left, forKey: .hFill) + } else { + try container.encode([self.insets.left, self.insets.right], forKey: .hFill) + } + } + +} + +extension HFill: Hashable { + + public static func ==(lhs: HFill, + rhs: HFill) -> Bool { + if lhs.insets != rhs.insets { + return false + } + return true + } + + public func hash(into hasher: inout Hasher) { + hasher.combine(self.insets) + } + +} diff --git a/Sources/Layout.VCenter.swift b/Sources/Layout.VCenter.swift new file mode 100644 index 0000000..f7ec64d --- /dev/null +++ b/Sources/Layout.VCenter.swift @@ -0,0 +1,74 @@ +// +// Layout.VCenter.swift +// ExampleApp +// +// Created by Haider Khan on 9/22/19. +// Copyright © 2019 LayoutOps. All rights reserved. +// + +import Foundation + +public struct VCenter { + let insets: LXEdgeInsets + public init(top: Float, + bottom: Float) { + self.insets = LXEdgeInsets(top: CGFloat(top), + left: 0.0, + bottom: CGFloat(bottom), + right: 0.0) + } +} + +extension VCenter: Codable { + + private enum RootKeys: String, CodingKey { + case vCenter + } + + public init(from decoder: Decoder) throws { + let container = try decoder.container(keyedBy: RootKeys.self) + if let floatValue = try? container.decode(Float.self, forKey: .vCenter) { + self.insets = LXEdgeInsets(top: CGFloat(floatValue), + left: 0.0, + bottom: CGFloat(floatValue), + right: 0.0) + } else if let arrayValue = try? container.decode([Float].self, forKey: .vCenter), + arrayValue.count == 2 { + self.insets = LXEdgeInsets(top: 0.0, + left: CGFloat(arrayValue[0]), + bottom: 0.0, + right: CGFloat(arrayValue[1])) + } else { + self.insets = LXEdgeInsets(top: 0.0, + left: 0.0, + bottom: 0.0, + right: 0.0) + } + } + + public func encode(to encoder: Encoder) throws { + var container = encoder.container(keyedBy: RootKeys.self) + if self.insets.congruent { + try container.encode(self.insets.top, forKey: .vCenter) + } else { + try container.encode([self.insets.top, self.insets.bottom], forKey: .vCenter) + } + } + +} + +extension VCenter: Hashable { + + public static func ==(lhs: VCenter, + rhs: VCenter) -> Bool { + if lhs.insets != rhs.insets { + return false + } + return true + } + + public func hash(into hasher: inout Hasher) { + hasher.combine(self.insets) + } + +} diff --git a/Sources/Layout.VFill.swift b/Sources/Layout.VFill.swift new file mode 100644 index 0000000..c5de13d --- /dev/null +++ b/Sources/Layout.VFill.swift @@ -0,0 +1,74 @@ +// +// Layout.VFill.swift +// ExampleApp +// +// Created by Haider Khan on 9/22/19. +// Copyright © 2019 LayoutOps. All rights reserved. +// + +import Foundation + +public struct VFill { + let insets: LXEdgeInsets + public init(top: Float, + bottom: Float) { + self.insets = LXEdgeInsets(top: CGFloat(top), + left: 0.0, + bottom: CGFloat(bottom), + right: 0.0) + } +} + +extension VFill: Codable { + + private enum RootKeys: String, CodingKey { + case vFill + } + + public init(from decoder: Decoder) throws { + let container = try decoder.container(keyedBy: RootKeys.self) + if let floatValue = try? container.decode(Float.self, forKey: .vFill) { + self.insets = LXEdgeInsets(top: CGFloat(floatValue), + left: 0.0, + bottom: CGFloat(floatValue), + right: 0.0) + } else if let arrayValue = try? container.decode([Float].self, forKey: .vFill), + arrayValue.count == 2 { + self.insets = LXEdgeInsets(top: 0.0, + left: CGFloat(arrayValue[0]), + bottom: 0.0, + right: CGFloat(arrayValue[1])) + } else { + self.insets = LXEdgeInsets(top: 0.0, + left: 0.0, + bottom: 0.0, + right: 0.0) + } + } + + public func encode(to encoder: Encoder) throws { + var container = encoder.container(keyedBy: RootKeys.self) + if self.insets.congruent { + try container.encode(self.insets.top, forKey: .vFill) + } else { + try container.encode([self.insets.top, self.insets.bottom], forKey: .vFill) + } + } + +} + +extension VFill: Hashable { + + public static func ==(lhs: VFill, + rhs: VFill) -> Bool { + if lhs.insets != rhs.insets { + return false + } + return true + } + + public func hash(into hasher: inout Hasher) { + hasher.combine(self.insets) + } + +} From 64aa01f19f6b74ac6bf4456fbdde0eee2845830d Mon Sep 17 00:00:00 2001 From: Haider Khan Date: Sun, 22 Sep 2019 15:18:14 -0700 Subject: [PATCH 4/9] Added auxillary methods for value types --- Sources/Basic.swift | 66 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 66 insertions(+) diff --git a/Sources/Basic.swift b/Sources/Basic.swift index 8b1dc3d..4899161 100644 --- a/Sources/Basic.swift +++ b/Sources/Basic.swift @@ -40,13 +40,21 @@ extension Layouting where Base: Layoutable { public func center(insets: NSEdgeInsets = NSEdgeInsets()) -> Layouting { return center(insets: LXEdgeInsets(top: insets.top, left: insets.left, bottom: insets.bottom, right: insets.right)) } + #else @discardableResult public func center(insets: UIEdgeInsets = UIEdgeInsets()) -> Layouting { return center(insets: LXEdgeInsets(top: insets.top, left: insets.left, bottom: insets.bottom, right: insets.right)) } + #endif + @discardableResult + public func center(_ center: Center) -> Layouting { + let insets: LXEdgeInsets = center.insets + return self.center(insets: insets) + } + func center(insets: LXEdgeInsets = LXEdgeInsets()) -> Layouting { return processInParent { frame, superviewFrame in return CGRect(x: centerStart(frame.width, superValue: superviewFrame.width, start: insets.left, finish: insets.right), @@ -61,6 +69,13 @@ extension Layouting where Base: Layoutable { return center(insets: LXEdgeInsets(top: top, left: left, bottom: bottom, right: right)) } + @discardableResult + public func hCenter(_ hCenter: HCenter) -> Layouting { + let insets: LXEdgeInsets = hCenter.insets + return self.hcenter(leftInset: insets.left, + rightInset: insets.right) + } + @discardableResult public func hcenter(leftInset: CGFloat = 0, rightInset: CGFloat = 0) -> Layouting { return processInParent { frame, superviewFrame in @@ -71,6 +86,13 @@ extension Layouting where Base: Layoutable { } } + @discardableResult + public func vCenter(_ vCenter: VCenter) -> Layouting { + let insets: LXEdgeInsets = vCenter.insets + return self.vcenter(topInset: insets.top, + bottomInset: insets.bottom) + } + @discardableResult public func vcenter(topInset: CGFloat = 0, bottomInset: CGFloat = 0) -> Layouting { return processInParent { frame, superviewFrame in @@ -94,6 +116,12 @@ extension Layouting where Base: Layoutable { } #endif + @discardableResult + public func fill(_ fill: Fill) -> Layouting { + let insets: LXEdgeInsets = fill.insets + return self.fill(insets: insets) + } + func fill(insets: LXEdgeInsets) -> Layouting { return processInParent { frame, superviewFrame in return LXEdgeInsetsInsetRect(superviewFrame, insets) @@ -110,6 +138,13 @@ extension Layouting where Base: Layoutable { return fill(insets: LXEdgeInsets(top: top, left: left, bottom: bottom, right: right)) } + @discardableResult + public func hFill(_ hFill: HFill) -> Layouting { + let insets: LXEdgeInsets = hFill.insets + return self.hfill(leftInset: insets.left, + rightInset: insets.right) + } + @discardableResult public func hfill(leftInset: CGFloat, rightInset: CGFloat) -> Layouting { return processInParent { frame, superviewFrame in @@ -125,6 +160,13 @@ extension Layouting where Base: Layoutable { return hfill(leftInset: inset, rightInset: inset) } + @discardableResult + public func vFill(_ vFill: VFill) -> Layouting { + let insets: LXEdgeInsets = vFill.insets + return self.vfill(topInset: insets.top, + bottomInset: insets.bottom) + } + @discardableResult public func vfill(topInset: CGFloat, bottomInset: CGFloat) -> Layouting { return processInParent { frame, superviewFrame in @@ -140,6 +182,12 @@ extension Layouting where Base: Layoutable { return vfill(topInset: inset, bottomInset: inset) } + @discardableResult + public func alignTop(_ alignTop: AlignTop) -> Layouting { + let insets: LXEdgeInsets = alignTop.insets + return self.alignTop(insets.top) + } + @discardableResult public func alignTop(_ inset: CGFloat = 0) -> Layouting { return processInParent { frame, superviewFrame in @@ -150,6 +198,12 @@ extension Layouting where Base: Layoutable { } } + @discardableResult + public func alignStart(_ alignStart: AlignStart) -> Layouting { + let insets: LXEdgeInsets = alignStart.insets + return self.alignLeft(insets.left) + } + @discardableResult public func alignLeft(_ inset: CGFloat = 0) -> Layouting { return processInParent { frame, superviewFrame in @@ -160,6 +214,12 @@ extension Layouting where Base: Layoutable { } } + @discardableResult + public func alignBottom(_ alignBottom: AlignBottom) -> Layouting { + let insets: LXEdgeInsets = alignBottom.insets + return self.alignBottom(insets.bottom) + } + @discardableResult public func alignBottom(_ inset: CGFloat = 0) -> Layouting { return processInParent { frame, superviewFrame in @@ -169,6 +229,12 @@ extension Layouting where Base: Layoutable { } } + @discardableResult + public func alignEnd(_ alignEnd: AlignEnd) -> Layouting { + let insets: LXEdgeInsets = alignEnd.insets + return self.alignRight(insets.right) + } + @discardableResult public func alignRight(_ inset: CGFloat = 0) -> Layouting { return processInParent { frame, superviewFrame in From cf0470f09822134261566fbed47c3cd7118190c2 Mon Sep 17 00:00:00 2001 From: Haider Khan Date: Sun, 22 Sep 2019 15:38:10 -0700 Subject: [PATCH 5/9] Changed deployment target --- LayoutOps.xcodeproj/project.pbxproj | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/LayoutOps.xcodeproj/project.pbxproj b/LayoutOps.xcodeproj/project.pbxproj index 929f601..7d5a4c8 100644 --- a/LayoutOps.xcodeproj/project.pbxproj +++ b/LayoutOps.xcodeproj/project.pbxproj @@ -1326,9 +1326,10 @@ GCC_C_LANGUAGE_STANDARD = gnu11; INFOPLIST_FILE = "LayoutOps-Universal/Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 13.0; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; MACH_O_TYPE = staticlib; + MACOSX_DEPLOYMENT_TARGET = 10.13; MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; MTL_FAST_MATH = YES; PRODUCT_BUNDLE_IDENTIFIER = "com.zkhaider.LayoutOps-Universal"; @@ -1359,9 +1360,10 @@ GCC_C_LANGUAGE_STANDARD = gnu11; INFOPLIST_FILE = "LayoutOps-Universal/Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 13.0; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; MACH_O_TYPE = staticlib; + MACOSX_DEPLOYMENT_TARGET = 10.13; MTL_FAST_MATH = YES; PRODUCT_BUNDLE_IDENTIFIER = "com.zkhaider.LayoutOps-Universal"; PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; From 392a76dea57b5f9a41ca94a2dc761f4c62ac2f2e Mon Sep 17 00:00:00 2001 From: Haider Khan Date: Sun, 22 Sep 2019 16:17:29 -0700 Subject: [PATCH 6/9] Added decoding errors in case key does not exist --- Sources/Layout.Align.Bottom.swift | 5 +++++ Sources/Layout.Align.End.swift | 5 +++++ Sources/Layout.Align.Start.swift | 5 +++++ Sources/Layout.Align.Top.swift | 5 +++++ Sources/Layout.Center.swift | 5 +++++ Sources/Layout.Fill.swift | 5 +++++ Sources/Layout.HCenter.swift | 5 +++++ Sources/Layout.HFill.swift | 5 +++++ Sources/Layout.VCenter.swift | 5 +++++ Sources/Layout.VFill.swift | 5 +++++ 10 files changed, 50 insertions(+) diff --git a/Sources/Layout.Align.Bottom.swift b/Sources/Layout.Align.Bottom.swift index 73aa891..91a12e3 100644 --- a/Sources/Layout.Align.Bottom.swift +++ b/Sources/Layout.Align.Bottom.swift @@ -27,6 +27,11 @@ extension AlignBottom: Codable { public init(from decoder: Decoder) throws { let container = try decoder.container(keyedBy: RootKeys.self) + if !container.contains(.alignBottom) { + let context = DecodingError.Context(codingPath: [RootKeys.alignBottom], + debugDescription: "Could not find key \(RootKeys.alignBottom)") + throw DecodingError.keyNotFound(RootKeys.alignBottom, context) + } let floatValue = try container.decode(Float.self, forKey: .alignBottom) self.insets = LXEdgeInsets(top: 0.0, left: 0.0, diff --git a/Sources/Layout.Align.End.swift b/Sources/Layout.Align.End.swift index b0d7ffe..02ea986 100644 --- a/Sources/Layout.Align.End.swift +++ b/Sources/Layout.Align.End.swift @@ -27,6 +27,11 @@ extension AlignEnd: Codable { public init(from decoder: Decoder) throws { let container = try decoder.container(keyedBy: RootKeys.self) + if !container.contains(.alignEnd) { + let context = DecodingError.Context(codingPath: [RootKeys.alignEnd], + debugDescription: "Could not find key \(RootKeys.alignEnd)") + throw DecodingError.keyNotFound(RootKeys.alignEnd, context) + } let floatValue = try container.decode(Float.self, forKey: .alignEnd) self.insets = LXEdgeInsets(top: 0.0, left: 0.0, diff --git a/Sources/Layout.Align.Start.swift b/Sources/Layout.Align.Start.swift index 13483c1..19dfff2 100644 --- a/Sources/Layout.Align.Start.swift +++ b/Sources/Layout.Align.Start.swift @@ -27,6 +27,11 @@ extension AlignStart: Codable { public init(from decoder: Decoder) throws { let container = try decoder.container(keyedBy: RootKeys.self) + if !container.contains(.alignStart) { + let context = DecodingError.Context(codingPath: [RootKeys.alignStart], + debugDescription: "Could not find key \(RootKeys.alignStart)") + throw DecodingError.keyNotFound(RootKeys.alignStart, context) + } let floatValue = try container.decode(Float.self, forKey: .alignStart) self.insets = LXEdgeInsets(top: 0.0, left: CGFloat(floatValue), diff --git a/Sources/Layout.Align.Top.swift b/Sources/Layout.Align.Top.swift index 0c2c049..cde2419 100644 --- a/Sources/Layout.Align.Top.swift +++ b/Sources/Layout.Align.Top.swift @@ -27,6 +27,11 @@ extension AlignTop: Codable { public init(from decoder: Decoder) throws { let container = try decoder.container(keyedBy: RootKeys.self) + if !container.contains(.alignTop) { + let context = DecodingError.Context(codingPath: [RootKeys.alignTop], + debugDescription: "Could not find key \(RootKeys.alignTop)") + throw DecodingError.keyNotFound(RootKeys.alignTop, context) + } let floatValue = try container.decode(Float.self, forKey: .alignTop) self.insets = LXEdgeInsets(top: CGFloat(floatValue), left: 0.0, diff --git a/Sources/Layout.Center.swift b/Sources/Layout.Center.swift index 1a1dbe5..9cd057b 100644 --- a/Sources/Layout.Center.swift +++ b/Sources/Layout.Center.swift @@ -33,6 +33,11 @@ extension Center: Codable { public init(from decoder: Decoder) throws { let container = try decoder.container(keyedBy: RootKeys.self) + if !container.contains(.center) { + let context = DecodingError.Context(codingPath: [RootKeys.center], + debugDescription: "Could not find key \(RootKeys.center)") + throw DecodingError.keyNotFound(RootKeys.center, context) + } self.insets = try container.decode(LXEdgeInsets.self, forKey: .center) } diff --git a/Sources/Layout.Fill.swift b/Sources/Layout.Fill.swift index 81ca240..b172066 100644 --- a/Sources/Layout.Fill.swift +++ b/Sources/Layout.Fill.swift @@ -33,6 +33,11 @@ extension Fill: Codable { public init(from decoder: Decoder) throws { let container = try decoder.container(keyedBy: RootKeys.self) + if !container.contains(.fill) { + let context = DecodingError.Context(codingPath: [RootKeys.fill], + debugDescription: "Could not find key \(RootKeys.fill)") + throw DecodingError.keyNotFound(RootKeys.fill, context) + } self.insets = try container.decode(LXEdgeInsets.self, forKey: .fill) } diff --git a/Sources/Layout.HCenter.swift b/Sources/Layout.HCenter.swift index fd9aad3..77510b3 100644 --- a/Sources/Layout.HCenter.swift +++ b/Sources/Layout.HCenter.swift @@ -27,6 +27,11 @@ extension HCenter: Codable { public init(from decoder: Decoder) throws { let container = try decoder.container(keyedBy: RootKeys.self) + if !container.contains(.hCenter) { + let context = DecodingError.Context(codingPath: [RootKeys.hCenter], + debugDescription: "Could not find key \(RootKeys.hCenter)") + throw DecodingError.keyNotFound(RootKeys.hCenter, context) + } if let floatValue = try? container.decode(Float.self, forKey: .hCenter) { self.insets = LXEdgeInsets(top: 0.0, left: CGFloat(floatValue), diff --git a/Sources/Layout.HFill.swift b/Sources/Layout.HFill.swift index 4f5ac3e..587dc70 100644 --- a/Sources/Layout.HFill.swift +++ b/Sources/Layout.HFill.swift @@ -27,6 +27,11 @@ extension HFill: Codable { public init(from decoder: Decoder) throws { let container = try decoder.container(keyedBy: RootKeys.self) + if !container.contains(.hFill) { + let context = DecodingError.Context(codingPath: [RootKeys.hFill], + debugDescription: "Could not find key \(RootKeys.hFill)") + throw DecodingError.keyNotFound(RootKeys.hFill, context) + } if let floatValue = try? container.decode(Float.self, forKey: .hFill) { self.insets = LXEdgeInsets(top: 0.0, left: CGFloat(floatValue), diff --git a/Sources/Layout.VCenter.swift b/Sources/Layout.VCenter.swift index f7ec64d..0b7abef 100644 --- a/Sources/Layout.VCenter.swift +++ b/Sources/Layout.VCenter.swift @@ -27,6 +27,11 @@ extension VCenter: Codable { public init(from decoder: Decoder) throws { let container = try decoder.container(keyedBy: RootKeys.self) + if !container.contains(.vCenter) { + let context = DecodingError.Context(codingPath: [RootKeys.vCenter], + debugDescription: "Could not find key \(RootKeys.vCenter)") + throw DecodingError.keyNotFound(RootKeys.vCenter, context) + } if let floatValue = try? container.decode(Float.self, forKey: .vCenter) { self.insets = LXEdgeInsets(top: CGFloat(floatValue), left: 0.0, diff --git a/Sources/Layout.VFill.swift b/Sources/Layout.VFill.swift index c5de13d..ba01bba 100644 --- a/Sources/Layout.VFill.swift +++ b/Sources/Layout.VFill.swift @@ -27,6 +27,11 @@ extension VFill: Codable { public init(from decoder: Decoder) throws { let container = try decoder.container(keyedBy: RootKeys.self) + if !container.contains(.vFill) { + let context = DecodingError.Context(codingPath: [RootKeys.vFill], + debugDescription: "Could not find key \(RootKeys.vFill)") + throw DecodingError.keyNotFound(RootKeys.vFill, context) + } if let floatValue = try? container.decode(Float.self, forKey: .vFill) { self.insets = LXEdgeInsets(top: CGFloat(floatValue), left: 0.0, From 49eeddb2a32bee95822171c34ae7e153fdc5f459 Mon Sep 17 00:00:00 2001 From: ZkHaider Date: Sun, 16 Feb 2020 00:51:42 -0800 Subject: [PATCH 7/9] Modified for SPM --- LayoutOps.xcodeproj/LayoutOpsTests_Info.plist | 25 + LayoutOps.xcodeproj/LayoutOps_Info.plist | 25 + LayoutOps.xcodeproj/project.pbxproj | 2556 +++++++---------- .../contents.xcworkspacedata | 2 +- .../xcshareddata/WorkspaceSettings.xcsettings | 8 + .../xcschemes/LayoutOps-Package.xcscheme | 68 + Package.swift | 41 +- 7 files changed, 1136 insertions(+), 1589 deletions(-) create mode 100644 LayoutOps.xcodeproj/LayoutOpsTests_Info.plist create mode 100644 LayoutOps.xcodeproj/LayoutOps_Info.plist create mode 100644 LayoutOps.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings create mode 100644 LayoutOps.xcodeproj/xcshareddata/xcschemes/LayoutOps-Package.xcscheme diff --git a/LayoutOps.xcodeproj/LayoutOpsTests_Info.plist b/LayoutOps.xcodeproj/LayoutOpsTests_Info.plist new file mode 100644 index 0000000..7c23420 --- /dev/null +++ b/LayoutOps.xcodeproj/LayoutOpsTests_Info.plist @@ -0,0 +1,25 @@ + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + BNDL + CFBundleShortVersionString + 1.0 + CFBundleSignature + ???? + CFBundleVersion + $(CURRENT_PROJECT_VERSION) + NSPrincipalClass + + + diff --git a/LayoutOps.xcodeproj/LayoutOps_Info.plist b/LayoutOps.xcodeproj/LayoutOps_Info.plist new file mode 100644 index 0000000..57ada9f --- /dev/null +++ b/LayoutOps.xcodeproj/LayoutOps_Info.plist @@ -0,0 +1,25 @@ + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + FMWK + CFBundleShortVersionString + 1.0 + CFBundleSignature + ???? + CFBundleVersion + $(CURRENT_PROJECT_VERSION) + NSPrincipalClass + + + diff --git a/LayoutOps.xcodeproj/project.pbxproj b/LayoutOps.xcodeproj/project.pbxproj index 7d5a4c8..127b2f5 100644 --- a/LayoutOps.xcodeproj/project.pbxproj +++ b/LayoutOps.xcodeproj/project.pbxproj @@ -1,1579 +1,983 @@ // !$*UTF8*$! { - archiveVersion = 1; - classes = { - }; - objectVersion = 47; - objects = { - -/* Begin PBXBuildFile section */ - 1B06708B202DEA8C008DDCF0 /* LX.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1B498F2F202DD3BB00EFF7FC /* LX.swift */; }; - 1B06708C202DEA8C008DDCF0 /* Accelerate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1B498F2C202DD3BB00EFF7FC /* Accelerate.swift */; }; - 1B06708D202DEA8C008DDCF0 /* Anchor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1B498F1A202DD3BA00EFF7FC /* Anchor.swift */; }; - 1B06708E202DEA8C008DDCF0 /* Basic.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1B498F1B202DD3BA00EFF7FC /* Basic.swift */; }; - 1B06708F202DEA8C008DDCF0 /* Follow.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1B498F22202DD3BB00EFF7FC /* Follow.swift */; }; - 1B067090202DEA8C008DDCF0 /* SizeToFit.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1B498F24202DD3BB00EFF7FC /* SizeToFit.swift */; }; - 1B067091202DEA8C008DDCF0 /* Viewport.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1B498F31202DD3BB00EFF7FC /* Viewport.swift */; }; - 1B067092202DEA8C008DDCF0 /* PutWrap.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1B498F20202DD3BA00EFF7FC /* PutWrap.swift */; }; - 1B067097202E049C008DDCF0 /* CALayer+LX.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1B067096202E049C008DDCF0 /* CALayer+LX.swift */; }; - 1B067098202E049C008DDCF0 /* CALayer+LX.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1B067096202E049C008DDCF0 /* CALayer+LX.swift */; }; - 1B067099202E049C008DDCF0 /* CALayer+LX.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1B067096202E049C008DDCF0 /* CALayer+LX.swift */; }; - 1B06709C202E056F008DDCF0 /* NSView+LX.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1B06709A202E056F008DDCF0 /* NSView+LX.swift */; }; - 1B0670A1202E4E67008DDCF0 /* Utils.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1B0670A0202E4E67008DDCF0 /* Utils.swift */; }; - 1B0670A2202E4E67008DDCF0 /* Utils.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1B0670A0202E4E67008DDCF0 /* Utils.swift */; }; - 1B0670A3202E4E67008DDCF0 /* Utils.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1B0670A0202E4E67008DDCF0 /* Utils.swift */; }; - 1B498F33202DD3BB00EFF7FC /* Anchor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1B498F1A202DD3BA00EFF7FC /* Anchor.swift */; }; - 1B498F34202DD3BB00EFF7FC /* Basic.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1B498F1B202DD3BA00EFF7FC /* Basic.swift */; }; - 1B498F36202DD3BB00EFF7FC /* ImageNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1B498F1D202DD3BA00EFF7FC /* ImageNode.swift */; }; - 1B498F37202DD3BB00EFF7FC /* RootNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1B498F1E202DD3BA00EFF7FC /* RootNode.swift */; }; - 1B498F39202DD3BB00EFF7FC /* PutWrap.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1B498F20202DD3BA00EFF7FC /* PutWrap.swift */; }; - 1B498F3A202DD3BB00EFF7FC /* SwitchNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1B498F21202DD3BB00EFF7FC /* SwitchNode.swift */; }; - 1B498F3B202DD3BB00EFF7FC /* Follow.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1B498F22202DD3BB00EFF7FC /* Follow.swift */; }; - 1B498F3C202DD3BB00EFF7FC /* PresentationTableRow.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1B498F23202DD3BB00EFF7FC /* PresentationTableRow.swift */; }; - 1B498F3D202DD3BB00EFF7FC /* SizeToFit.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1B498F24202DD3BB00EFF7FC /* SizeToFit.swift */; }; - 1B498F3F202DD3BB00EFF7FC /* Node.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1B498F26202DD3BB00EFF7FC /* Node.swift */; }; - 1B498F40202DD3BB00EFF7FC /* NodeTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1B498F28202DD3BB00EFF7FC /* NodeTableViewCell.swift */; }; - 1B498F41202DD3BB00EFF7FC /* UIView+LX.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1B498F29202DD3BB00EFF7FC /* UIView+LX.swift */; }; - 1B498F42202DD3BB00EFF7FC /* BaseTableViewPresentationAdapter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1B498F2A202DD3BB00EFF7FC /* BaseTableViewPresentationAdapter.swift */; }; - 1B498F43202DD3BB00EFF7FC /* TableViewPresentationAdapter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1B498F2B202DD3BB00EFF7FC /* TableViewPresentationAdapter.swift */; }; - 1B498F44202DD3BB00EFF7FC /* Accelerate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1B498F2C202DD3BB00EFF7FC /* Accelerate.swift */; }; - 1B498F45202DD3BB00EFF7FC /* PresentationItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1B498F2D202DD3BB00EFF7FC /* PresentationItem.swift */; }; - 1B498F46202DD3BB00EFF7FC /* NSAttributedString+Size.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1B498F2E202DD3BB00EFF7FC /* NSAttributedString+Size.swift */; }; - 1B498F47202DD3BB00EFF7FC /* LX.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1B498F2F202DD3BB00EFF7FC /* LX.swift */; }; - 1B498F48202DD3BB00EFF7FC /* PresentationTableHeaderFooter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1B498F30202DD3BB00EFF7FC /* PresentationTableHeaderFooter.swift */; }; - 1B498F49202DD3BB00EFF7FC /* Viewport.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1B498F31202DD3BB00EFF7FC /* Viewport.swift */; }; - 1B498F4A202DD3BB00EFF7FC /* PresentationModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1B498F32202DD3BB00EFF7FC /* PresentationModel.swift */; }; - 1B498F51202DD6AC00EFF7FC /* LabelNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1B498F1F202DD3BA00EFF7FC /* LabelNode.swift */; }; - 1B9A3C9C202DDCF300E244F0 /* LX.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1B498F2F202DD3BB00EFF7FC /* LX.swift */; }; - 1B9A3C9D202DDCF300E244F0 /* Accelerate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1B498F2C202DD3BB00EFF7FC /* Accelerate.swift */; }; - 1B9A3C9E202DDCF300E244F0 /* Anchor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1B498F1A202DD3BA00EFF7FC /* Anchor.swift */; }; - 1B9A3C9F202DDCF300E244F0 /* Basic.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1B498F1B202DD3BA00EFF7FC /* Basic.swift */; }; - 1B9A3CA0202DDCF300E244F0 /* Follow.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1B498F22202DD3BB00EFF7FC /* Follow.swift */; }; - 1B9A3CA1202DDCF300E244F0 /* SizeToFit.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1B498F24202DD3BB00EFF7FC /* SizeToFit.swift */; }; - 1B9A3CA2202DDCF300E244F0 /* Viewport.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1B498F31202DD3BB00EFF7FC /* Viewport.swift */; }; - 1B9A3CA3202DDCF300E244F0 /* PutWrap.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1B498F20202DD3BA00EFF7FC /* PutWrap.swift */; }; - 1B9A3CBB202DDD4C00E244F0 /* UIView+LX.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1B498F29202DD3BB00EFF7FC /* UIView+LX.swift */; }; - 52D6D9871BEFF229002C0205 /* LayoutOps.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 52D6D97C1BEFF229002C0205 /* LayoutOps.framework */; }; - 8933C78E1EB5B82C000D00A4 /* LayoutOpsTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8933C7891EB5B82A000D00A4 /* LayoutOpsTests.swift */; }; - 8933C78F1EB5B82C000D00A4 /* LayoutOpsTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8933C7891EB5B82A000D00A4 /* LayoutOpsTests.swift */; }; - 8933C7901EB5B82D000D00A4 /* LayoutOpsTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8933C7891EB5B82A000D00A4 /* LayoutOpsTests.swift */; }; - C44582E723381CEF00340726 /* LayoutOps_Universal.h in Headers */ = {isa = PBXBuildFile; fileRef = C44582E523381CEF00340726 /* LayoutOps_Universal.h */; settings = {ATTRIBUTES = (Public, ); }; }; - C44582EB23381D0600340726 /* LX.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1B498F2F202DD3BB00EFF7FC /* LX.swift */; }; - C44582EC23381D0600340726 /* Basic.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1B498F1B202DD3BA00EFF7FC /* Basic.swift */; }; - C44582ED23381D0600340726 /* Anchor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1B498F1A202DD3BA00EFF7FC /* Anchor.swift */; }; - C44582EE23381D0600340726 /* Follow.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1B498F22202DD3BB00EFF7FC /* Follow.swift */; }; - C44582EF23381D0600340726 /* SizeToFit.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1B498F24202DD3BB00EFF7FC /* SizeToFit.swift */; }; - C44582F023381D0600340726 /* Viewport.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1B498F31202DD3BB00EFF7FC /* Viewport.swift */; }; - C44582F123381D0600340726 /* PutWrap.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1B498F20202DD3BA00EFF7FC /* PutWrap.swift */; }; - C44582F223381D0600340726 /* Accelerate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1B498F2C202DD3BB00EFF7FC /* Accelerate.swift */; }; - C44582F323381D0600340726 /* Utils.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1B0670A0202E4E67008DDCF0 /* Utils.swift */; }; - C44582F423381D0600340726 /* UIView+LX.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1B498F29202DD3BB00EFF7FC /* UIView+LX.swift */; }; - C44582F523381D0600340726 /* CALayer+LX.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1B067096202E049C008DDCF0 /* CALayer+LX.swift */; }; - C44582F623381D0600340726 /* NSView+LX.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1B06709A202E056F008DDCF0 /* NSView+LX.swift */; }; - C44582F723381D0600340726 /* Node.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1B498F26202DD3BB00EFF7FC /* Node.swift */; }; - C44582F823381D0600340726 /* RootNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1B498F1E202DD3BA00EFF7FC /* RootNode.swift */; }; - C44582F923381D0600340726 /* LabelNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1B498F1F202DD3BA00EFF7FC /* LabelNode.swift */; }; - C44582FA23381D0600340726 /* ImageNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1B498F1D202DD3BA00EFF7FC /* ImageNode.swift */; }; - C44582FB23381D0600340726 /* SwitchNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1B498F21202DD3BB00EFF7FC /* SwitchNode.swift */; }; - C44582FC23381D0600340726 /* NSAttributedString+Size.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1B498F2E202DD3BB00EFF7FC /* NSAttributedString+Size.swift */; }; - C44582FD23381D0600340726 /* PresentationItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1B498F2D202DD3BB00EFF7FC /* PresentationItem.swift */; }; - C44582FE23381D0600340726 /* PresentationModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1B498F32202DD3BB00EFF7FC /* PresentationModel.swift */; }; - C44582FF23381D0600340726 /* PresentationTableHeaderFooter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1B498F30202DD3BB00EFF7FC /* PresentationTableHeaderFooter.swift */; }; - C445830023381D0600340726 /* PresentationTableRow.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1B498F23202DD3BB00EFF7FC /* PresentationTableRow.swift */; }; - C445830123381D0600340726 /* NodeTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1B498F28202DD3BB00EFF7FC /* NodeTableViewCell.swift */; }; - C445830223381D0600340726 /* BaseTableViewPresentationAdapter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1B498F2A202DD3BB00EFF7FC /* BaseTableViewPresentationAdapter.swift */; }; - C445830323381D0600340726 /* TableViewPresentationAdapter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1B498F2B202DD3BB00EFF7FC /* TableViewPresentationAdapter.swift */; }; - C445830723381D5600340726 /* Layout.Attributes.swift in Sources */ = {isa = PBXBuildFile; fileRef = C445830523381D5200340726 /* Layout.Attributes.swift */; }; - C445830823381D5600340726 /* Layout.Attributes.swift in Sources */ = {isa = PBXBuildFile; fileRef = C445830523381D5200340726 /* Layout.Attributes.swift */; }; - C445830923381D5700340726 /* Layout.Attributes.swift in Sources */ = {isa = PBXBuildFile; fileRef = C445830523381D5200340726 /* Layout.Attributes.swift */; }; - C445830A23381D5800340726 /* Layout.Attributes.swift in Sources */ = {isa = PBXBuildFile; fileRef = C445830523381D5200340726 /* Layout.Attributes.swift */; }; - C445830E23381DF700340726 /* Layout.Fill.swift in Sources */ = {isa = PBXBuildFile; fileRef = C445830C23381DF200340726 /* Layout.Fill.swift */; }; - C445830F23381DF700340726 /* Layout.Fill.swift in Sources */ = {isa = PBXBuildFile; fileRef = C445830C23381DF200340726 /* Layout.Fill.swift */; }; - C445831023381DF700340726 /* Layout.Fill.swift in Sources */ = {isa = PBXBuildFile; fileRef = C445830C23381DF200340726 /* Layout.Fill.swift */; }; - C445831123381DF900340726 /* Layout.Fill.swift in Sources */ = {isa = PBXBuildFile; fileRef = C445830C23381DF200340726 /* Layout.Fill.swift */; }; - C44583162338223F00340726 /* Layout.VFill.swift in Sources */ = {isa = PBXBuildFile; fileRef = C4458314233821C900340726 /* Layout.VFill.swift */; }; - C44583172338223F00340726 /* Layout.VFill.swift in Sources */ = {isa = PBXBuildFile; fileRef = C4458314233821C900340726 /* Layout.VFill.swift */; }; - C44583182338224000340726 /* Layout.VFill.swift in Sources */ = {isa = PBXBuildFile; fileRef = C4458314233821C900340726 /* Layout.VFill.swift */; }; - C44583192338224000340726 /* Layout.VFill.swift in Sources */ = {isa = PBXBuildFile; fileRef = C4458314233821C900340726 /* Layout.VFill.swift */; }; - C445831A2338224400340726 /* Layout.HFill.swift in Sources */ = {isa = PBXBuildFile; fileRef = C4458312233820A700340726 /* Layout.HFill.swift */; }; - C445831B2338224400340726 /* Layout.HFill.swift in Sources */ = {isa = PBXBuildFile; fileRef = C4458312233820A700340726 /* Layout.HFill.swift */; }; - C445831C2338224400340726 /* Layout.HFill.swift in Sources */ = {isa = PBXBuildFile; fileRef = C4458312233820A700340726 /* Layout.HFill.swift */; }; - C445831D2338224500340726 /* Layout.HFill.swift in Sources */ = {isa = PBXBuildFile; fileRef = C4458312233820A700340726 /* Layout.HFill.swift */; }; - C4458320233822D100340726 /* Layout.Center.swift in Sources */ = {isa = PBXBuildFile; fileRef = C445831E2338225700340726 /* Layout.Center.swift */; }; - C4458321233822D200340726 /* Layout.Center.swift in Sources */ = {isa = PBXBuildFile; fileRef = C445831E2338225700340726 /* Layout.Center.swift */; }; - C4458322233822D200340726 /* Layout.Center.swift in Sources */ = {isa = PBXBuildFile; fileRef = C445831E2338225700340726 /* Layout.Center.swift */; }; - C4458323233822D300340726 /* Layout.Center.swift in Sources */ = {isa = PBXBuildFile; fileRef = C445831E2338225700340726 /* Layout.Center.swift */; }; - C44583282338234B00340726 /* Layout.VCenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = C44583262338231B00340726 /* Layout.VCenter.swift */; }; - C44583292338234C00340726 /* Layout.VCenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = C44583262338231B00340726 /* Layout.VCenter.swift */; }; - C445832A2338234C00340726 /* Layout.VCenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = C44583262338231B00340726 /* Layout.VCenter.swift */; }; - C445832B2338234D00340726 /* Layout.VCenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = C44583262338231B00340726 /* Layout.VCenter.swift */; }; - C445832C2338234F00340726 /* Layout.HCenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = C4458324233822EE00340726 /* Layout.HCenter.swift */; }; - C445832D2338235000340726 /* Layout.HCenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = C4458324233822EE00340726 /* Layout.HCenter.swift */; }; - C445832E2338235000340726 /* Layout.HCenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = C4458324233822EE00340726 /* Layout.HCenter.swift */; }; - C445832F2338235100340726 /* Layout.HCenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = C4458324233822EE00340726 /* Layout.HCenter.swift */; }; - C44583322338239800340726 /* Layout.Align.Top.swift in Sources */ = {isa = PBXBuildFile; fileRef = C44583302338239500340726 /* Layout.Align.Top.swift */; }; - C44583332338239800340726 /* Layout.Align.Top.swift in Sources */ = {isa = PBXBuildFile; fileRef = C44583302338239500340726 /* Layout.Align.Top.swift */; }; - C44583342338239900340726 /* Layout.Align.Top.swift in Sources */ = {isa = PBXBuildFile; fileRef = C44583302338239500340726 /* Layout.Align.Top.swift */; }; - C44583352338239900340726 /* Layout.Align.Top.swift in Sources */ = {isa = PBXBuildFile; fileRef = C44583302338239500340726 /* Layout.Align.Top.swift */; }; - C44583392338246600340726 /* Layout.Align.End.swift in Sources */ = {isa = PBXBuildFile; fileRef = C44583382338246600340726 /* Layout.Align.End.swift */; }; - C445833A2338246600340726 /* Layout.Align.End.swift in Sources */ = {isa = PBXBuildFile; fileRef = C44583382338246600340726 /* Layout.Align.End.swift */; }; - C445833B2338246600340726 /* Layout.Align.End.swift in Sources */ = {isa = PBXBuildFile; fileRef = C44583382338246600340726 /* Layout.Align.End.swift */; }; - C445833C2338246600340726 /* Layout.Align.End.swift in Sources */ = {isa = PBXBuildFile; fileRef = C44583382338246600340726 /* Layout.Align.End.swift */; }; - C445833D233824A000340726 /* Layout.Align.Start.swift in Sources */ = {isa = PBXBuildFile; fileRef = C44583362338240C00340726 /* Layout.Align.Start.swift */; }; - C445833E233824A100340726 /* Layout.Align.Start.swift in Sources */ = {isa = PBXBuildFile; fileRef = C44583362338240C00340726 /* Layout.Align.Start.swift */; }; - C445833F233824A100340726 /* Layout.Align.Start.swift in Sources */ = {isa = PBXBuildFile; fileRef = C44583362338240C00340726 /* Layout.Align.Start.swift */; }; - C4458340233824A200340726 /* Layout.Align.Start.swift in Sources */ = {isa = PBXBuildFile; fileRef = C44583362338240C00340726 /* Layout.Align.Start.swift */; }; - C4458342233824B200340726 /* Layout.Align.Bottom.swift in Sources */ = {isa = PBXBuildFile; fileRef = C4458341233824B200340726 /* Layout.Align.Bottom.swift */; }; - C4458343233824B200340726 /* Layout.Align.Bottom.swift in Sources */ = {isa = PBXBuildFile; fileRef = C4458341233824B200340726 /* Layout.Align.Bottom.swift */; }; - C4458344233824B200340726 /* Layout.Align.Bottom.swift in Sources */ = {isa = PBXBuildFile; fileRef = C4458341233824B200340726 /* Layout.Align.Bottom.swift */; }; - C4458345233824B200340726 /* Layout.Align.Bottom.swift in Sources */ = {isa = PBXBuildFile; fileRef = C4458341233824B200340726 /* Layout.Align.Bottom.swift */; }; - C4C8AB5A22D2FF2D005626AA /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = C4C8AB5922D2FF2D005626AA /* AppDelegate.swift */; }; - C4C8AB5C22D2FF2D005626AA /* SceneDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = C4C8AB5B22D2FF2D005626AA /* SceneDelegate.swift */; }; - C4C8AB5E22D2FF2D005626AA /* ViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = C4C8AB5D22D2FF2D005626AA /* ViewController.swift */; }; - C4C8AB6122D2FF2D005626AA /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = C4C8AB5F22D2FF2D005626AA /* Main.storyboard */; }; - C4C8AB6322D2FF2E005626AA /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = C4C8AB6222D2FF2E005626AA /* Assets.xcassets */; }; - C4C8AB6622D2FF2E005626AA /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = C4C8AB6422D2FF2E005626AA /* LaunchScreen.storyboard */; }; - C4C8AB6C22D2FF4F005626AA /* LayoutOps.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 52D6D97C1BEFF229002C0205 /* LayoutOps.framework */; }; - C4C8AB6D22D2FF4F005626AA /* LayoutOps.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 52D6D97C1BEFF229002C0205 /* LayoutOps.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; - DD7502881C68FEDE006590AF /* LayoutOps.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 52D6DA0F1BF000BD002C0205 /* LayoutOps.framework */; }; - DD7502921C690C7A006590AF /* LayoutOps.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 52D6D9F01BEFFFBE002C0205 /* LayoutOps.framework */; }; -/* End PBXBuildFile section */ - -/* Begin PBXContainerItemProxy section */ - 52D6D9881BEFF229002C0205 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 52D6D9731BEFF229002C0205 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 52D6D97B1BEFF229002C0205; - remoteInfo = LayoutOps; - }; - C4C8AB6E22D2FF4F005626AA /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 52D6D9731BEFF229002C0205 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 52D6D97B1BEFF229002C0205; - remoteInfo = "LayoutOps-iOS"; - }; - DD7502801C68FCFC006590AF /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 52D6D9731BEFF229002C0205 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 52D6DA0E1BF000BD002C0205; - remoteInfo = "LayoutOps-macOS"; - }; - DD7502931C690C7A006590AF /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 52D6D9731BEFF229002C0205 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 52D6D9EF1BEFFFBE002C0205; - remoteInfo = "LayoutOps-tvOS"; - }; -/* End PBXContainerItemProxy section */ - -/* Begin PBXCopyFilesBuildPhase section */ - C4C8AB7022D2FF50005626AA /* Embed Frameworks */ = { - isa = PBXCopyFilesBuildPhase; - buildActionMask = 2147483647; - dstPath = ""; - dstSubfolderSpec = 10; - files = ( - C4C8AB6D22D2FF4F005626AA /* LayoutOps.framework in Embed Frameworks */, - ); - name = "Embed Frameworks"; - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXCopyFilesBuildPhase section */ - -/* Begin PBXFileReference section */ - 1B067096202E049C008DDCF0 /* CALayer+LX.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = "CALayer+LX.swift"; path = "Sources/CALayer+LX.swift"; sourceTree = SOURCE_ROOT; }; - 1B06709A202E056F008DDCF0 /* NSView+LX.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "NSView+LX.swift"; sourceTree = ""; }; - 1B0670A0202E4E67008DDCF0 /* Utils.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Utils.swift; sourceTree = ""; }; - 1B498F1A202DD3BA00EFF7FC /* Anchor.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Anchor.swift; sourceTree = ""; }; - 1B498F1B202DD3BA00EFF7FC /* Basic.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Basic.swift; sourceTree = ""; }; - 1B498F1D202DD3BA00EFF7FC /* ImageNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ImageNode.swift; sourceTree = ""; }; - 1B498F1E202DD3BA00EFF7FC /* RootNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RootNode.swift; sourceTree = ""; }; - 1B498F1F202DD3BA00EFF7FC /* LabelNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LabelNode.swift; sourceTree = ""; }; - 1B498F20202DD3BA00EFF7FC /* PutWrap.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PutWrap.swift; sourceTree = ""; }; - 1B498F21202DD3BB00EFF7FC /* SwitchNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SwitchNode.swift; sourceTree = ""; }; - 1B498F22202DD3BB00EFF7FC /* Follow.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Follow.swift; sourceTree = ""; }; - 1B498F23202DD3BB00EFF7FC /* PresentationTableRow.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PresentationTableRow.swift; sourceTree = ""; }; - 1B498F24202DD3BB00EFF7FC /* SizeToFit.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SizeToFit.swift; sourceTree = ""; }; - 1B498F26202DD3BB00EFF7FC /* Node.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Node.swift; sourceTree = ""; }; - 1B498F28202DD3BB00EFF7FC /* NodeTableViewCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NodeTableViewCell.swift; sourceTree = ""; }; - 1B498F29202DD3BB00EFF7FC /* UIView+LX.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "UIView+LX.swift"; sourceTree = ""; }; - 1B498F2A202DD3BB00EFF7FC /* BaseTableViewPresentationAdapter.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BaseTableViewPresentationAdapter.swift; sourceTree = ""; }; - 1B498F2B202DD3BB00EFF7FC /* TableViewPresentationAdapter.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TableViewPresentationAdapter.swift; sourceTree = ""; }; - 1B498F2C202DD3BB00EFF7FC /* Accelerate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Accelerate.swift; sourceTree = ""; }; - 1B498F2D202DD3BB00EFF7FC /* PresentationItem.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PresentationItem.swift; sourceTree = ""; }; - 1B498F2E202DD3BB00EFF7FC /* NSAttributedString+Size.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "NSAttributedString+Size.swift"; sourceTree = ""; }; - 1B498F2F202DD3BB00EFF7FC /* LX.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LX.swift; sourceTree = ""; }; - 1B498F30202DD3BB00EFF7FC /* PresentationTableHeaderFooter.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PresentationTableHeaderFooter.swift; sourceTree = ""; }; - 1B498F31202DD3BB00EFF7FC /* Viewport.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Viewport.swift; sourceTree = ""; }; - 1B498F32202DD3BB00EFF7FC /* PresentationModel.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PresentationModel.swift; sourceTree = ""; }; - 52D6D97C1BEFF229002C0205 /* LayoutOps.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = LayoutOps.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 52D6D9861BEFF229002C0205 /* LayoutOps-iOS Tests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "LayoutOps-iOS Tests.xctest"; sourceTree = BUILT_PRODUCTS_DIR; }; - 52D6D9F01BEFFFBE002C0205 /* LayoutOps.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = LayoutOps.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 52D6DA0F1BF000BD002C0205 /* LayoutOps.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = LayoutOps.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 8933C7891EB5B82A000D00A4 /* LayoutOpsTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LayoutOpsTests.swift; sourceTree = ""; }; - AD2FAA261CD0B6D800659CF4 /* LayoutOps.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = LayoutOps.plist; sourceTree = ""; }; - AD2FAA281CD0B6E100659CF4 /* LayoutOpsTests.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = LayoutOpsTests.plist; sourceTree = ""; }; - C44582E323381CEF00340726 /* LayoutOps_Universal.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = LayoutOps_Universal.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - C44582E523381CEF00340726 /* LayoutOps_Universal.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = LayoutOps_Universal.h; sourceTree = ""; }; - C44582E623381CEF00340726 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - C445830523381D5200340726 /* Layout.Attributes.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Layout.Attributes.swift; sourceTree = ""; }; - C445830C23381DF200340726 /* Layout.Fill.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Layout.Fill.swift; sourceTree = ""; }; - C4458312233820A700340726 /* Layout.HFill.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Layout.HFill.swift; sourceTree = ""; }; - C4458314233821C900340726 /* Layout.VFill.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Layout.VFill.swift; sourceTree = ""; }; - C445831E2338225700340726 /* Layout.Center.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Layout.Center.swift; sourceTree = ""; }; - C4458324233822EE00340726 /* Layout.HCenter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Layout.HCenter.swift; sourceTree = ""; }; - C44583262338231B00340726 /* Layout.VCenter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Layout.VCenter.swift; sourceTree = ""; }; - C44583302338239500340726 /* Layout.Align.Top.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Layout.Align.Top.swift; sourceTree = ""; }; - C44583362338240C00340726 /* Layout.Align.Start.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Layout.Align.Start.swift; sourceTree = ""; }; - C44583382338246600340726 /* Layout.Align.End.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Layout.Align.End.swift; sourceTree = ""; }; - C4458341233824B200340726 /* Layout.Align.Bottom.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Layout.Align.Bottom.swift; sourceTree = ""; }; - C4C8AB5722D2FF2D005626AA /* ExampleApp.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = ExampleApp.app; sourceTree = BUILT_PRODUCTS_DIR; }; - C4C8AB5922D2FF2D005626AA /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; - C4C8AB5B22D2FF2D005626AA /* SceneDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SceneDelegate.swift; sourceTree = ""; }; - C4C8AB5D22D2FF2D005626AA /* ViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ViewController.swift; sourceTree = ""; }; - C4C8AB6022D2FF2D005626AA /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; - C4C8AB6222D2FF2E005626AA /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; - C4C8AB6522D2FF2E005626AA /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; - C4C8AB6722D2FF2E005626AA /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - DD75027A1C68FCFC006590AF /* LayoutOps-macOS Tests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "LayoutOps-macOS Tests.xctest"; sourceTree = BUILT_PRODUCTS_DIR; }; - DD75028D1C690C7A006590AF /* LayoutOps-tvOS Tests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "LayoutOps-tvOS Tests.xctest"; sourceTree = BUILT_PRODUCTS_DIR; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - 52D6D9781BEFF229002C0205 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 52D6D9831BEFF229002C0205 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 52D6D9871BEFF229002C0205 /* LayoutOps.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 52D6D9EC1BEFFFBE002C0205 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 52D6DA0B1BF000BD002C0205 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - C44582E023381CEF00340726 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - C4C8AB5422D2FF2D005626AA /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - C4C8AB6C22D2FF4F005626AA /* LayoutOps.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - DD7502771C68FCFC006590AF /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - DD7502881C68FEDE006590AF /* LayoutOps.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - DD75028A1C690C7A006590AF /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - DD7502921C690C7A006590AF /* LayoutOps.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - 1B498F27202DD3BB00EFF7FC /* UIKit */ = { - isa = PBXGroup; - children = ( - 1B498F29202DD3BB00EFF7FC /* UIView+LX.swift */, - 1B067096202E049C008DDCF0 /* CALayer+LX.swift */, - 1B06709A202E056F008DDCF0 /* NSView+LX.swift */, - ); - path = UIKit; - sourceTree = ""; - }; - 1B498F4D202DD43600EFF7FC /* LX */ = { - isa = PBXGroup; - children = ( - 1B498F2F202DD3BB00EFF7FC /* LX.swift */, - 1B498F1B202DD3BA00EFF7FC /* Basic.swift */, - 1B498F1A202DD3BA00EFF7FC /* Anchor.swift */, - 1B498F22202DD3BB00EFF7FC /* Follow.swift */, - 1B498F24202DD3BB00EFF7FC /* SizeToFit.swift */, - 1B498F31202DD3BB00EFF7FC /* Viewport.swift */, - 1B498F20202DD3BA00EFF7FC /* PutWrap.swift */, - 1B498F2C202DD3BB00EFF7FC /* Accelerate.swift */, - 1B0670A0202E4E67008DDCF0 /* Utils.swift */, - ); - name = LX; - sourceTree = ""; - }; - 1B498F4E202DD44600EFF7FC /* Nodes */ = { - isa = PBXGroup; - children = ( - 1B498F26202DD3BB00EFF7FC /* Node.swift */, - 1B498F1E202DD3BA00EFF7FC /* RootNode.swift */, - 1B498F1F202DD3BA00EFF7FC /* LabelNode.swift */, - 1B498F1D202DD3BA00EFF7FC /* ImageNode.swift */, - 1B498F21202DD3BB00EFF7FC /* SwitchNode.swift */, - 1B498F2E202DD3BB00EFF7FC /* NSAttributedString+Size.swift */, - ); - name = Nodes; - sourceTree = ""; - }; - 1B498F50202DD45D00EFF7FC /* Table */ = { - isa = PBXGroup; - children = ( - 1B498F2D202DD3BB00EFF7FC /* PresentationItem.swift */, - 1B498F32202DD3BB00EFF7FC /* PresentationModel.swift */, - 1B498F30202DD3BB00EFF7FC /* PresentationTableHeaderFooter.swift */, - 1B498F23202DD3BB00EFF7FC /* PresentationTableRow.swift */, - 1B498F28202DD3BB00EFF7FC /* NodeTableViewCell.swift */, - 1B498F2A202DD3BB00EFF7FC /* BaseTableViewPresentationAdapter.swift */, - 1B498F2B202DD3BB00EFF7FC /* TableViewPresentationAdapter.swift */, - ); - name = Table; - sourceTree = ""; - }; - 52D6D9721BEFF229002C0205 = { - isa = PBXGroup; - children = ( - C4C8AB5822D2FF2D005626AA /* ExampleApp */, - 8933C7811EB5B7E0000D00A4 /* Sources */, - 8933C7831EB5B7EB000D00A4 /* Tests */, - 52D6D99C1BEFF38C002C0205 /* Configs */, - C44582E423381CEF00340726 /* LayoutOps-Universal */, - 52D6D97D1BEFF229002C0205 /* Products */, - C4C8AB6B22D2FF4F005626AA /* Frameworks */, - ); - sourceTree = ""; - }; - 52D6D97D1BEFF229002C0205 /* Products */ = { - isa = PBXGroup; - children = ( - 52D6D97C1BEFF229002C0205 /* LayoutOps.framework */, - 52D6D9861BEFF229002C0205 /* LayoutOps-iOS Tests.xctest */, - 52D6D9F01BEFFFBE002C0205 /* LayoutOps.framework */, - 52D6DA0F1BF000BD002C0205 /* LayoutOps.framework */, - DD75027A1C68FCFC006590AF /* LayoutOps-macOS Tests.xctest */, - DD75028D1C690C7A006590AF /* LayoutOps-tvOS Tests.xctest */, - C4C8AB5722D2FF2D005626AA /* ExampleApp.app */, - C44582E323381CEF00340726 /* LayoutOps_Universal.framework */, - ); - name = Products; - sourceTree = ""; - }; - 52D6D99C1BEFF38C002C0205 /* Configs */ = { - isa = PBXGroup; - children = ( - DD7502721C68FC1B006590AF /* Frameworks */, - DD7502731C68FC20006590AF /* Tests */, - ); - path = Configs; - sourceTree = ""; - }; - 8933C7811EB5B7E0000D00A4 /* Sources */ = { - isa = PBXGroup; - children = ( - C445830423381D4500340726 /* Attributes */, - 1B498F4D202DD43600EFF7FC /* LX */, - 1B498F27202DD3BB00EFF7FC /* UIKit */, - 1B498F4E202DD44600EFF7FC /* Nodes */, - 1B498F50202DD45D00EFF7FC /* Table */, - ); - path = Sources; - sourceTree = ""; - }; - 8933C7831EB5B7EB000D00A4 /* Tests */ = { - isa = PBXGroup; - children = ( - 8933C7891EB5B82A000D00A4 /* LayoutOpsTests.swift */, - ); - name = Tests; - path = Tests/LayoutOpsTests; - sourceTree = ""; - }; - C44582E423381CEF00340726 /* LayoutOps-Universal */ = { - isa = PBXGroup; - children = ( - C44582E523381CEF00340726 /* LayoutOps_Universal.h */, - C44582E623381CEF00340726 /* Info.plist */, - ); - path = "LayoutOps-Universal"; - sourceTree = ""; - }; - C445830423381D4500340726 /* Attributes */ = { - isa = PBXGroup; - children = ( - C445830B23381DE500340726 /* Values */, - C445830523381D5200340726 /* Layout.Attributes.swift */, - ); - name = Attributes; - sourceTree = ""; - }; - C445830B23381DE500340726 /* Values */ = { - isa = PBXGroup; - children = ( - C445830C23381DF200340726 /* Layout.Fill.swift */, - C4458312233820A700340726 /* Layout.HFill.swift */, - C4458314233821C900340726 /* Layout.VFill.swift */, - C445831E2338225700340726 /* Layout.Center.swift */, - C4458324233822EE00340726 /* Layout.HCenter.swift */, - C44583262338231B00340726 /* Layout.VCenter.swift */, - C44583302338239500340726 /* Layout.Align.Top.swift */, - C44583362338240C00340726 /* Layout.Align.Start.swift */, - C44583382338246600340726 /* Layout.Align.End.swift */, - C4458341233824B200340726 /* Layout.Align.Bottom.swift */, - ); - name = Values; - sourceTree = ""; - }; - C4C8AB5822D2FF2D005626AA /* ExampleApp */ = { - isa = PBXGroup; - children = ( - C4C8AB5922D2FF2D005626AA /* AppDelegate.swift */, - C4C8AB5B22D2FF2D005626AA /* SceneDelegate.swift */, - C4C8AB5D22D2FF2D005626AA /* ViewController.swift */, - C4C8AB5F22D2FF2D005626AA /* Main.storyboard */, - C4C8AB6222D2FF2E005626AA /* Assets.xcassets */, - C4C8AB6422D2FF2E005626AA /* LaunchScreen.storyboard */, - C4C8AB6722D2FF2E005626AA /* Info.plist */, - ); - path = ExampleApp; - sourceTree = ""; - }; - C4C8AB6B22D2FF4F005626AA /* Frameworks */ = { - isa = PBXGroup; - children = ( - ); - name = Frameworks; - sourceTree = ""; - }; - DD7502721C68FC1B006590AF /* Frameworks */ = { - isa = PBXGroup; - children = ( - AD2FAA261CD0B6D800659CF4 /* LayoutOps.plist */, - ); - name = Frameworks; - sourceTree = ""; - }; - DD7502731C68FC20006590AF /* Tests */ = { - isa = PBXGroup; - children = ( - AD2FAA281CD0B6E100659CF4 /* LayoutOpsTests.plist */, - ); - name = Tests; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXHeadersBuildPhase section */ - 52D6D9791BEFF229002C0205 /* Headers */ = { - isa = PBXHeadersBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 52D6D9ED1BEFFFBE002C0205 /* Headers */ = { - isa = PBXHeadersBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 52D6DA0C1BF000BD002C0205 /* Headers */ = { - isa = PBXHeadersBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - C44582DE23381CEF00340726 /* Headers */ = { - isa = PBXHeadersBuildPhase; - buildActionMask = 2147483647; - files = ( - C44582E723381CEF00340726 /* LayoutOps_Universal.h in Headers */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXHeadersBuildPhase section */ - -/* Begin PBXNativeTarget section */ - 52D6D97B1BEFF229002C0205 /* LayoutOps-iOS */ = { - isa = PBXNativeTarget; - buildConfigurationList = 52D6D9901BEFF229002C0205 /* Build configuration list for PBXNativeTarget "LayoutOps-iOS" */; - buildPhases = ( - 52D6D9771BEFF229002C0205 /* Sources */, - 52D6D9781BEFF229002C0205 /* Frameworks */, - 52D6D9791BEFF229002C0205 /* Headers */, - 52D6D97A1BEFF229002C0205 /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = "LayoutOps-iOS"; - productName = LayoutOps; - productReference = 52D6D97C1BEFF229002C0205 /* LayoutOps.framework */; - productType = "com.apple.product-type.framework"; - }; - 52D6D9851BEFF229002C0205 /* LayoutOps-iOS Tests */ = { - isa = PBXNativeTarget; - buildConfigurationList = 52D6D9931BEFF229002C0205 /* Build configuration list for PBXNativeTarget "LayoutOps-iOS Tests" */; - buildPhases = ( - 52D6D9821BEFF229002C0205 /* Sources */, - 52D6D9831BEFF229002C0205 /* Frameworks */, - 52D6D9841BEFF229002C0205 /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - 52D6D9891BEFF229002C0205 /* PBXTargetDependency */, - ); - name = "LayoutOps-iOS Tests"; - productName = LayoutOpsTests; - productReference = 52D6D9861BEFF229002C0205 /* LayoutOps-iOS Tests.xctest */; - productType = "com.apple.product-type.bundle.unit-test"; - }; - 52D6D9EF1BEFFFBE002C0205 /* LayoutOps-tvOS */ = { - isa = PBXNativeTarget; - buildConfigurationList = 52D6DA011BEFFFBE002C0205 /* Build configuration list for PBXNativeTarget "LayoutOps-tvOS" */; - buildPhases = ( - 52D6D9EB1BEFFFBE002C0205 /* Sources */, - 52D6D9EC1BEFFFBE002C0205 /* Frameworks */, - 52D6D9ED1BEFFFBE002C0205 /* Headers */, - 52D6D9EE1BEFFFBE002C0205 /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = "LayoutOps-tvOS"; - productName = "LayoutOps-tvOS"; - productReference = 52D6D9F01BEFFFBE002C0205 /* LayoutOps.framework */; - productType = "com.apple.product-type.framework"; - }; - 52D6DA0E1BF000BD002C0205 /* LayoutOps-macOS */ = { - isa = PBXNativeTarget; - buildConfigurationList = 52D6DA201BF000BD002C0205 /* Build configuration list for PBXNativeTarget "LayoutOps-macOS" */; - buildPhases = ( - 52D6DA0A1BF000BD002C0205 /* Sources */, - 52D6DA0B1BF000BD002C0205 /* Frameworks */, - 52D6DA0C1BF000BD002C0205 /* Headers */, - 52D6DA0D1BF000BD002C0205 /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = "LayoutOps-macOS"; - productName = "LayoutOps-macOS"; - productReference = 52D6DA0F1BF000BD002C0205 /* LayoutOps.framework */; - productType = "com.apple.product-type.framework"; - }; - C44582E223381CEF00340726 /* LayoutOps-Universal */ = { - isa = PBXNativeTarget; - buildConfigurationList = C44582EA23381CEF00340726 /* Build configuration list for PBXNativeTarget "LayoutOps-Universal" */; - buildPhases = ( - C44582DE23381CEF00340726 /* Headers */, - C44582DF23381CEF00340726 /* Sources */, - C44582E023381CEF00340726 /* Frameworks */, - C44582E123381CEF00340726 /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = "LayoutOps-Universal"; - productName = "LayoutOps-Universal"; - productReference = C44582E323381CEF00340726 /* LayoutOps_Universal.framework */; - productType = "com.apple.product-type.framework"; - }; - C4C8AB5622D2FF2D005626AA /* ExampleApp */ = { - isa = PBXNativeTarget; - buildConfigurationList = C4C8AB6A22D2FF2E005626AA /* Build configuration list for PBXNativeTarget "ExampleApp" */; - buildPhases = ( - C4C8AB5322D2FF2D005626AA /* Sources */, - C4C8AB5422D2FF2D005626AA /* Frameworks */, - C4C8AB5522D2FF2D005626AA /* Resources */, - C4C8AB7022D2FF50005626AA /* Embed Frameworks */, - ); - buildRules = ( - ); - dependencies = ( - C4C8AB6F22D2FF4F005626AA /* PBXTargetDependency */, - ); - name = ExampleApp; - productName = ExampleApp; - productReference = C4C8AB5722D2FF2D005626AA /* ExampleApp.app */; - productType = "com.apple.product-type.application"; - }; - DD7502791C68FCFC006590AF /* LayoutOps-macOS Tests */ = { - isa = PBXNativeTarget; - buildConfigurationList = DD7502821C68FCFC006590AF /* Build configuration list for PBXNativeTarget "LayoutOps-macOS Tests" */; - buildPhases = ( - DD7502761C68FCFC006590AF /* Sources */, - DD7502771C68FCFC006590AF /* Frameworks */, - DD7502781C68FCFC006590AF /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - DD7502811C68FCFC006590AF /* PBXTargetDependency */, - ); - name = "LayoutOps-macOS Tests"; - productName = "LayoutOps-OS Tests"; - productReference = DD75027A1C68FCFC006590AF /* LayoutOps-macOS Tests.xctest */; - productType = "com.apple.product-type.bundle.unit-test"; - }; - DD75028C1C690C7A006590AF /* LayoutOps-tvOS Tests */ = { - isa = PBXNativeTarget; - buildConfigurationList = DD7502951C690C7A006590AF /* Build configuration list for PBXNativeTarget "LayoutOps-tvOS Tests" */; - buildPhases = ( - DD7502891C690C7A006590AF /* Sources */, - DD75028A1C690C7A006590AF /* Frameworks */, - DD75028B1C690C7A006590AF /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - DD7502941C690C7A006590AF /* PBXTargetDependency */, - ); - name = "LayoutOps-tvOS Tests"; - productName = "LayoutOps-tvOS Tests"; - productReference = DD75028D1C690C7A006590AF /* LayoutOps-tvOS Tests.xctest */; - productType = "com.apple.product-type.bundle.unit-test"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - 52D6D9731BEFF229002C0205 /* Project object */ = { - isa = PBXProject; - attributes = { - LastSwiftUpdateCheck = 1100; - LastUpgradeCheck = 1020; - ORGANIZATIONNAME = LayoutOps; - TargetAttributes = { - 52D6D97B1BEFF229002C0205 = { - CreatedOnToolsVersion = 7.1; - LastSwiftMigration = 1020; - }; - 52D6D9851BEFF229002C0205 = { - CreatedOnToolsVersion = 7.1; - LastSwiftMigration = 1020; - }; - 52D6D9EF1BEFFFBE002C0205 = { - CreatedOnToolsVersion = 7.1; - LastSwiftMigration = 1020; - }; - 52D6DA0E1BF000BD002C0205 = { - CreatedOnToolsVersion = 7.1; - LastSwiftMigration = 1020; - }; - C44582E223381CEF00340726 = { - CreatedOnToolsVersion = 11.0; - ProvisioningStyle = Automatic; - }; - C4C8AB5622D2FF2D005626AA = { - CreatedOnToolsVersion = 11.0; - DevelopmentTeam = EVL2DEPTTR; - ProvisioningStyle = Automatic; - }; - DD7502791C68FCFC006590AF = { - CreatedOnToolsVersion = 7.2.1; - LastSwiftMigration = 1020; - }; - DD75028C1C690C7A006590AF = { - CreatedOnToolsVersion = 7.2.1; - LastSwiftMigration = 1020; - }; - }; - }; - buildConfigurationList = 52D6D9761BEFF229002C0205 /* Build configuration list for PBXProject "LayoutOps" */; - compatibilityVersion = "Xcode 6.3"; - developmentRegion = en; - hasScannedForEncodings = 0; - knownRegions = ( - en, - Base, - ); - mainGroup = 52D6D9721BEFF229002C0205; - productRefGroup = 52D6D97D1BEFF229002C0205 /* Products */; - projectDirPath = ""; - projectRoot = ""; - targets = ( - C4C8AB5622D2FF2D005626AA /* ExampleApp */, - 52D6D97B1BEFF229002C0205 /* LayoutOps-iOS */, - 52D6DA0E1BF000BD002C0205 /* LayoutOps-macOS */, - 52D6D9EF1BEFFFBE002C0205 /* LayoutOps-tvOS */, - 52D6D9851BEFF229002C0205 /* LayoutOps-iOS Tests */, - DD7502791C68FCFC006590AF /* LayoutOps-macOS Tests */, - DD75028C1C690C7A006590AF /* LayoutOps-tvOS Tests */, - C44582E223381CEF00340726 /* LayoutOps-Universal */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXResourcesBuildPhase section */ - 52D6D97A1BEFF229002C0205 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 52D6D9841BEFF229002C0205 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 52D6D9EE1BEFFFBE002C0205 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 52D6DA0D1BF000BD002C0205 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - C44582E123381CEF00340726 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - C4C8AB5522D2FF2D005626AA /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - C4C8AB6622D2FF2E005626AA /* LaunchScreen.storyboard in Resources */, - C4C8AB6322D2FF2E005626AA /* Assets.xcassets in Resources */, - C4C8AB6122D2FF2D005626AA /* Main.storyboard in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - DD7502781C68FCFC006590AF /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - DD75028B1C690C7A006590AF /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXResourcesBuildPhase section */ - -/* Begin PBXSourcesBuildPhase section */ - 52D6D9771BEFF229002C0205 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - C44583282338234B00340726 /* Layout.VCenter.swift in Sources */, - 1B498F47202DD3BB00EFF7FC /* LX.swift in Sources */, - C445830E23381DF700340726 /* Layout.Fill.swift in Sources */, - 1B067097202E049C008DDCF0 /* CALayer+LX.swift in Sources */, - 1B498F3A202DD3BB00EFF7FC /* SwitchNode.swift in Sources */, - 1B498F3F202DD3BB00EFF7FC /* Node.swift in Sources */, - 1B498F3D202DD3BB00EFF7FC /* SizeToFit.swift in Sources */, - 1B498F33202DD3BB00EFF7FC /* Anchor.swift in Sources */, - 1B498F3B202DD3BB00EFF7FC /* Follow.swift in Sources */, - C44583322338239800340726 /* Layout.Align.Top.swift in Sources */, - 1B498F36202DD3BB00EFF7FC /* ImageNode.swift in Sources */, - C4458320233822D100340726 /* Layout.Center.swift in Sources */, - 1B498F34202DD3BB00EFF7FC /* Basic.swift in Sources */, - 1B498F39202DD3BB00EFF7FC /* PutWrap.swift in Sources */, - 1B498F41202DD3BB00EFF7FC /* UIView+LX.swift in Sources */, - 1B498F45202DD3BB00EFF7FC /* PresentationItem.swift in Sources */, - C445832C2338234F00340726 /* Layout.HCenter.swift in Sources */, - 1B498F44202DD3BB00EFF7FC /* Accelerate.swift in Sources */, - C445833D233824A000340726 /* Layout.Align.Start.swift in Sources */, - 1B498F49202DD3BB00EFF7FC /* Viewport.swift in Sources */, - C44583162338223F00340726 /* Layout.VFill.swift in Sources */, - 1B498F46202DD3BB00EFF7FC /* NSAttributedString+Size.swift in Sources */, - 1B498F37202DD3BB00EFF7FC /* RootNode.swift in Sources */, - 1B498F51202DD6AC00EFF7FC /* LabelNode.swift in Sources */, - 1B498F4A202DD3BB00EFF7FC /* PresentationModel.swift in Sources */, - C445831A2338224400340726 /* Layout.HFill.swift in Sources */, - C44583392338246600340726 /* Layout.Align.End.swift in Sources */, - C445830723381D5600340726 /* Layout.Attributes.swift in Sources */, - C4458342233824B200340726 /* Layout.Align.Bottom.swift in Sources */, - 1B498F3C202DD3BB00EFF7FC /* PresentationTableRow.swift in Sources */, - 1B498F48202DD3BB00EFF7FC /* PresentationTableHeaderFooter.swift in Sources */, - 1B498F42202DD3BB00EFF7FC /* BaseTableViewPresentationAdapter.swift in Sources */, - 1B498F43202DD3BB00EFF7FC /* TableViewPresentationAdapter.swift in Sources */, - 1B498F40202DD3BB00EFF7FC /* NodeTableViewCell.swift in Sources */, - 1B0670A1202E4E67008DDCF0 /* Utils.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 52D6D9821BEFF229002C0205 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 8933C7901EB5B82D000D00A4 /* LayoutOpsTests.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 52D6D9EB1BEFFFBE002C0205 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 1B067099202E049C008DDCF0 /* CALayer+LX.swift in Sources */, - C445831023381DF700340726 /* Layout.Fill.swift in Sources */, - 1B9A3CA0202DDCF300E244F0 /* Follow.swift in Sources */, - C44583292338234C00340726 /* Layout.VCenter.swift in Sources */, - 1B9A3CBB202DDD4C00E244F0 /* UIView+LX.swift in Sources */, - C44583182338224000340726 /* Layout.VFill.swift in Sources */, - C44583342338239900340726 /* Layout.Align.Top.swift in Sources */, - 1B9A3C9F202DDCF300E244F0 /* Basic.swift in Sources */, - 1B9A3C9D202DDCF300E244F0 /* Accelerate.swift in Sources */, - 1B9A3CA3202DDCF300E244F0 /* PutWrap.swift in Sources */, - 1B9A3CA1202DDCF300E244F0 /* SizeToFit.swift in Sources */, - C445832E2338235000340726 /* Layout.HCenter.swift in Sources */, - 1B0670A3202E4E67008DDCF0 /* Utils.swift in Sources */, - C445833B2338246600340726 /* Layout.Align.End.swift in Sources */, - C445833F233824A100340726 /* Layout.Align.Start.swift in Sources */, - 1B9A3CA2202DDCF300E244F0 /* Viewport.swift in Sources */, - C4458322233822D200340726 /* Layout.Center.swift in Sources */, - C445830923381D5700340726 /* Layout.Attributes.swift in Sources */, - C4458344233824B200340726 /* Layout.Align.Bottom.swift in Sources */, - 1B9A3C9E202DDCF300E244F0 /* Anchor.swift in Sources */, - 1B9A3C9C202DDCF300E244F0 /* LX.swift in Sources */, - C445831C2338224400340726 /* Layout.HFill.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 52D6DA0A1BF000BD002C0205 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 1B06708F202DEA8C008DDCF0 /* Follow.swift in Sources */, - C445830F23381DF700340726 /* Layout.Fill.swift in Sources */, - 1B067098202E049C008DDCF0 /* CALayer+LX.swift in Sources */, - C445832A2338234C00340726 /* Layout.VCenter.swift in Sources */, - 1B06708E202DEA8C008DDCF0 /* Basic.swift in Sources */, - C44583172338223F00340726 /* Layout.VFill.swift in Sources */, - C44583332338239800340726 /* Layout.Align.Top.swift in Sources */, - 1B06708C202DEA8C008DDCF0 /* Accelerate.swift in Sources */, - 1B0670A2202E4E67008DDCF0 /* Utils.swift in Sources */, - 1B067092202DEA8C008DDCF0 /* PutWrap.swift in Sources */, - 1B067090202DEA8C008DDCF0 /* SizeToFit.swift in Sources */, - C445832D2338235000340726 /* Layout.HCenter.swift in Sources */, - 1B067091202DEA8C008DDCF0 /* Viewport.swift in Sources */, - C445833A2338246600340726 /* Layout.Align.End.swift in Sources */, - C445833E233824A100340726 /* Layout.Align.Start.swift in Sources */, - 1B06709C202E056F008DDCF0 /* NSView+LX.swift in Sources */, - C4458321233822D200340726 /* Layout.Center.swift in Sources */, - C445830823381D5600340726 /* Layout.Attributes.swift in Sources */, - C4458343233824B200340726 /* Layout.Align.Bottom.swift in Sources */, - 1B06708D202DEA8C008DDCF0 /* Anchor.swift in Sources */, - 1B06708B202DEA8C008DDCF0 /* LX.swift in Sources */, - C445831B2338224400340726 /* Layout.HFill.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - C44582DF23381CEF00340726 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - C4458340233824A200340726 /* Layout.Align.Start.swift in Sources */, - C44582EB23381D0600340726 /* LX.swift in Sources */, - C445833C2338246600340726 /* Layout.Align.End.swift in Sources */, - C4458323233822D300340726 /* Layout.Center.swift in Sources */, - C44582EC23381D0600340726 /* Basic.swift in Sources */, - C44582ED23381D0600340726 /* Anchor.swift in Sources */, - C445832F2338235100340726 /* Layout.HCenter.swift in Sources */, - C44582EE23381D0600340726 /* Follow.swift in Sources */, - C44582EF23381D0600340726 /* SizeToFit.swift in Sources */, - C44582F023381D0600340726 /* Viewport.swift in Sources */, - C44582F123381D0600340726 /* PutWrap.swift in Sources */, - C44582F223381D0600340726 /* Accelerate.swift in Sources */, - C44582F323381D0600340726 /* Utils.swift in Sources */, - C445830A23381D5800340726 /* Layout.Attributes.swift in Sources */, - C445831D2338224500340726 /* Layout.HFill.swift in Sources */, - C445831123381DF900340726 /* Layout.Fill.swift in Sources */, - C44582F423381D0600340726 /* UIView+LX.swift in Sources */, - C44582F523381D0600340726 /* CALayer+LX.swift in Sources */, - C44582F623381D0600340726 /* NSView+LX.swift in Sources */, - C44582F723381D0600340726 /* Node.swift in Sources */, - C44582F823381D0600340726 /* RootNode.swift in Sources */, - C44582F923381D0600340726 /* LabelNode.swift in Sources */, - C44582FA23381D0600340726 /* ImageNode.swift in Sources */, - C44583352338239900340726 /* Layout.Align.Top.swift in Sources */, - C44583192338224000340726 /* Layout.VFill.swift in Sources */, - C44582FB23381D0600340726 /* SwitchNode.swift in Sources */, - C44582FC23381D0600340726 /* NSAttributedString+Size.swift in Sources */, - C44582FD23381D0600340726 /* PresentationItem.swift in Sources */, - C44582FE23381D0600340726 /* PresentationModel.swift in Sources */, - C44582FF23381D0600340726 /* PresentationTableHeaderFooter.swift in Sources */, - C4458345233824B200340726 /* Layout.Align.Bottom.swift in Sources */, - C445830023381D0600340726 /* PresentationTableRow.swift in Sources */, - C445830123381D0600340726 /* NodeTableViewCell.swift in Sources */, - C445830223381D0600340726 /* BaseTableViewPresentationAdapter.swift in Sources */, - C445832B2338234D00340726 /* Layout.VCenter.swift in Sources */, - C445830323381D0600340726 /* TableViewPresentationAdapter.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - C4C8AB5322D2FF2D005626AA /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - C4C8AB5E22D2FF2D005626AA /* ViewController.swift in Sources */, - C4C8AB5A22D2FF2D005626AA /* AppDelegate.swift in Sources */, - C4C8AB5C22D2FF2D005626AA /* SceneDelegate.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - DD7502761C68FCFC006590AF /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 8933C78F1EB5B82C000D00A4 /* LayoutOpsTests.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - DD7502891C690C7A006590AF /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 8933C78E1EB5B82C000D00A4 /* LayoutOpsTests.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin PBXTargetDependency section */ - 52D6D9891BEFF229002C0205 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 52D6D97B1BEFF229002C0205 /* LayoutOps-iOS */; - targetProxy = 52D6D9881BEFF229002C0205 /* PBXContainerItemProxy */; - }; - C4C8AB6F22D2FF4F005626AA /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 52D6D97B1BEFF229002C0205 /* LayoutOps-iOS */; - targetProxy = C4C8AB6E22D2FF4F005626AA /* PBXContainerItemProxy */; - }; - DD7502811C68FCFC006590AF /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 52D6DA0E1BF000BD002C0205 /* LayoutOps-macOS */; - targetProxy = DD7502801C68FCFC006590AF /* PBXContainerItemProxy */; - }; - DD7502941C690C7A006590AF /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 52D6D9EF1BEFFFBE002C0205 /* LayoutOps-tvOS */; - targetProxy = DD7502931C690C7A006590AF /* PBXContainerItemProxy */; - }; -/* End PBXTargetDependency section */ - -/* Begin PBXVariantGroup section */ - C4C8AB5F22D2FF2D005626AA /* Main.storyboard */ = { - isa = PBXVariantGroup; - children = ( - C4C8AB6022D2FF2D005626AA /* Base */, - ); - name = Main.storyboard; - sourceTree = ""; - }; - C4C8AB6422D2FF2E005626AA /* LaunchScreen.storyboard */ = { - isa = PBXVariantGroup; - children = ( - C4C8AB6522D2FF2E005626AA /* Base */, - ); - name = LaunchScreen.storyboard; - sourceTree = ""; - }; -/* End PBXVariantGroup section */ - -/* Begin XCBuildConfiguration section */ - 52D6D98E1BEFF229002C0205 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = dwarf; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - MTL_ENABLE_DEBUG_INFO = YES; - ONLY_ACTIVE_ARCH = YES; - SDKROOT = iphoneos; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - SWIFT_VERSION = 4.0; - TARGETED_DEVICE_FAMILY = "1,2"; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Debug; - }; - 52D6D98F1BEFF229002C0205 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - MTL_ENABLE_DEBUG_INFO = NO; - SDKROOT = iphoneos; - SWIFT_VERSION = 4.0; - TARGETED_DEVICE_FAMILY = "1,2"; - VALIDATE_PRODUCT = YES; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Release; - }; - 52D6D9911BEFF229002C0205 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - APPLICATION_EXTENSION_API_ONLY = YES; - CLANG_ENABLE_MODULES = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - INFOPLIST_FILE = Configs/LayoutOps.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MACH_O_TYPE = staticlib; - ONLY_ACTIVE_ARCH = NO; - PRODUCT_BUNDLE_IDENTIFIER = "com.LayoutOps.LayoutOps-iOS"; - PRODUCT_NAME = LayoutOps; - SKIP_INSTALL = YES; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - SWIFT_VERSION = 4.0; - }; - name = Debug; - }; - 52D6D9921BEFF229002C0205 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - APPLICATION_EXTENSION_API_ONLY = YES; - CLANG_ENABLE_MODULES = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - INFOPLIST_FILE = Configs/LayoutOps.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MACH_O_TYPE = staticlib; - PRODUCT_BUNDLE_IDENTIFIER = "com.LayoutOps.LayoutOps-iOS"; - PRODUCT_NAME = LayoutOps; - SKIP_INSTALL = YES; - SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; - SWIFT_VERSION = 4.0; - }; - name = Release; - }; - 52D6D9941BEFF229002C0205 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; - CLANG_ENABLE_MODULES = YES; - INFOPLIST_FILE = Configs/LayoutOpsTests.plist; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = "com.LayoutOps.LayoutOps-iOS-Tests"; - PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - SWIFT_VERSION = 4.0; - }; - name = Debug; - }; - 52D6D9951BEFF229002C0205 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; - CLANG_ENABLE_MODULES = YES; - INFOPLIST_FILE = Configs/LayoutOpsTests.plist; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = "com.LayoutOps.LayoutOps-iOS-Tests"; - PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; - SWIFT_VERSION = 4.0; - }; - name = Release; - }; - 52D6DA021BEFFFBE002C0205 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - APPLICATION_EXTENSION_API_ONLY = YES; - "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - INFOPLIST_FILE = Configs/LayoutOps.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MACH_O_TYPE = staticlib; - PRODUCT_BUNDLE_IDENTIFIER = "com.LayoutOps.LayoutOps-tvOS"; - PRODUCT_NAME = LayoutOps; - SDKROOT = appletvos; - SKIP_INSTALL = YES; - SWIFT_VERSION = 4.0; - TARGETED_DEVICE_FAMILY = 3; - TVOS_DEPLOYMENT_TARGET = 9.0; - }; - name = Debug; - }; - 52D6DA031BEFFFBE002C0205 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - APPLICATION_EXTENSION_API_ONLY = YES; - "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - INFOPLIST_FILE = Configs/LayoutOps.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MACH_O_TYPE = staticlib; - PRODUCT_BUNDLE_IDENTIFIER = "com.LayoutOps.LayoutOps-tvOS"; - PRODUCT_NAME = LayoutOps; - SDKROOT = appletvos; - SKIP_INSTALL = YES; - SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; - SWIFT_VERSION = 4.0; - TARGETED_DEVICE_FAMILY = 3; - TVOS_DEPLOYMENT_TARGET = 9.0; - }; - name = Release; - }; - 52D6DA211BF000BD002C0205 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - APPLICATION_EXTENSION_API_ONLY = YES; - CODE_SIGN_IDENTITY = "-"; - COMBINE_HIDPI_IMAGES = YES; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - FRAMEWORK_VERSION = A; - INFOPLIST_FILE = Configs/LayoutOps.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/Frameworks"; - MACH_O_TYPE = staticlib; - MACOSX_DEPLOYMENT_TARGET = 10.10; - PRODUCT_BUNDLE_IDENTIFIER = "com.LayoutOps.LayoutOps-macOS"; - PRODUCT_NAME = LayoutOps; - SDKROOT = macosx; - SKIP_INSTALL = YES; - SWIFT_VERSION = 4.0; - }; - name = Debug; - }; - 52D6DA221BF000BD002C0205 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - APPLICATION_EXTENSION_API_ONLY = YES; - CODE_SIGN_IDENTITY = "-"; - COMBINE_HIDPI_IMAGES = YES; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - FRAMEWORK_VERSION = A; - INFOPLIST_FILE = Configs/LayoutOps.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/Frameworks"; - MACH_O_TYPE = staticlib; - MACOSX_DEPLOYMENT_TARGET = 10.10; - PRODUCT_BUNDLE_IDENTIFIER = "com.LayoutOps.LayoutOps-macOS"; - PRODUCT_NAME = LayoutOps; - SDKROOT = macosx; - SKIP_INSTALL = YES; - SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; - SWIFT_VERSION = 4.0; - }; - name = Release; - }; - C44582E823381CEF00340726 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_ENABLE_OBJC_WEAK = YES; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CODE_SIGN_STYLE = Automatic; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - GCC_C_LANGUAGE_STANDARD = gnu11; - INFOPLIST_FILE = "LayoutOps-Universal/Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MACH_O_TYPE = staticlib; - MACOSX_DEPLOYMENT_TARGET = 10.13; - MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; - MTL_FAST_MATH = YES; - PRODUCT_BUNDLE_IDENTIFIER = "com.zkhaider.LayoutOps-Universal"; - PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; - SKIP_INSTALL = YES; - SUPPORTED_PLATFORMS = "iphonesimulator iphoneos macosx"; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = "1,2"; - VALID_ARCHS = "arm64 arm64e armv7 armv7s x86_64 i386"; - }; - name = Debug; - }; - C44582E923381CEF00340726 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_ENABLE_OBJC_WEAK = YES; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CODE_SIGN_STYLE = Automatic; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - GCC_C_LANGUAGE_STANDARD = gnu11; - INFOPLIST_FILE = "LayoutOps-Universal/Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MACH_O_TYPE = staticlib; - MACOSX_DEPLOYMENT_TARGET = 10.13; - MTL_FAST_MATH = YES; - PRODUCT_BUNDLE_IDENTIFIER = "com.zkhaider.LayoutOps-Universal"; - PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; - SKIP_INSTALL = YES; - SUPPORTED_PLATFORMS = "iphonesimulator iphoneos macosx"; - SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = "1,2"; - VALID_ARCHS = "arm64 arm64e armv7 armv7s x86_64 i386"; - }; - name = Release; - }; - C4C8AB6822D2FF2E005626AA /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_ENABLE_OBJC_WEAK = YES; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CODE_SIGN_STYLE = Automatic; - DEVELOPMENT_TEAM = EVL2DEPTTR; - GCC_C_LANGUAGE_STANDARD = gnu11; - INFOPLIST_FILE = ExampleApp/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 13.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; - MTL_FAST_MATH = YES; - PRODUCT_BUNDLE_IDENTIFIER = com.zkhaider.ExampleApp; - PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = Debug; - }; - C4C8AB6922D2FF2E005626AA /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_ENABLE_OBJC_WEAK = YES; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CODE_SIGN_STYLE = Automatic; - DEVELOPMENT_TEAM = EVL2DEPTTR; - GCC_C_LANGUAGE_STANDARD = gnu11; - INFOPLIST_FILE = ExampleApp/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 13.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - MTL_FAST_MATH = YES; - PRODUCT_BUNDLE_IDENTIFIER = com.zkhaider.ExampleApp; - PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = Release; - }; - DD7502831C68FCFC006590AF /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; - CODE_SIGN_IDENTITY = "-"; - COMBINE_HIDPI_IMAGES = YES; - INFOPLIST_FILE = Configs/LayoutOpsTests.plist; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/../Frameworks"; - MACOSX_DEPLOYMENT_TARGET = 10.11; - PRODUCT_BUNDLE_IDENTIFIER = "com.LayoutOps.LayoutOps-macOS-Tests"; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = macosx; - SWIFT_VERSION = 4.0; - }; - name = Debug; - }; - DD7502841C68FCFC006590AF /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; - CODE_SIGN_IDENTITY = "-"; - COMBINE_HIDPI_IMAGES = YES; - INFOPLIST_FILE = Configs/LayoutOpsTests.plist; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/../Frameworks"; - MACOSX_DEPLOYMENT_TARGET = 10.11; - PRODUCT_BUNDLE_IDENTIFIER = "com.LayoutOps.LayoutOps-macOS-Tests"; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = macosx; - SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; - SWIFT_VERSION = 4.0; - }; - name = Release; - }; - DD7502961C690C7A006590AF /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; - INFOPLIST_FILE = Configs/LayoutOpsTests.plist; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = "com.LayoutOps.LayoutOps-tvOS-Tests"; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = appletvos; - SWIFT_VERSION = 4.0; - TVOS_DEPLOYMENT_TARGET = 9.1; - }; - name = Debug; - }; - DD7502971C690C7A006590AF /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; - INFOPLIST_FILE = Configs/LayoutOpsTests.plist; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = "com.LayoutOps.LayoutOps-tvOS-Tests"; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = appletvos; - SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; - SWIFT_VERSION = 4.0; - TVOS_DEPLOYMENT_TARGET = 9.1; - }; - name = Release; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - 52D6D9761BEFF229002C0205 /* Build configuration list for PBXProject "LayoutOps" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 52D6D98E1BEFF229002C0205 /* Debug */, - 52D6D98F1BEFF229002C0205 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 52D6D9901BEFF229002C0205 /* Build configuration list for PBXNativeTarget "LayoutOps-iOS" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 52D6D9911BEFF229002C0205 /* Debug */, - 52D6D9921BEFF229002C0205 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 52D6D9931BEFF229002C0205 /* Build configuration list for PBXNativeTarget "LayoutOps-iOS Tests" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 52D6D9941BEFF229002C0205 /* Debug */, - 52D6D9951BEFF229002C0205 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 52D6DA011BEFFFBE002C0205 /* Build configuration list for PBXNativeTarget "LayoutOps-tvOS" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 52D6DA021BEFFFBE002C0205 /* Debug */, - 52D6DA031BEFFFBE002C0205 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 52D6DA201BF000BD002C0205 /* Build configuration list for PBXNativeTarget "LayoutOps-macOS" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 52D6DA211BF000BD002C0205 /* Debug */, - 52D6DA221BF000BD002C0205 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - C44582EA23381CEF00340726 /* Build configuration list for PBXNativeTarget "LayoutOps-Universal" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - C44582E823381CEF00340726 /* Debug */, - C44582E923381CEF00340726 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - C4C8AB6A22D2FF2E005626AA /* Build configuration list for PBXNativeTarget "ExampleApp" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - C4C8AB6822D2FF2E005626AA /* Debug */, - C4C8AB6922D2FF2E005626AA /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - DD7502821C68FCFC006590AF /* Build configuration list for PBXNativeTarget "LayoutOps-macOS Tests" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - DD7502831C68FCFC006590AF /* Debug */, - DD7502841C68FCFC006590AF /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - DD7502951C690C7A006590AF /* Build configuration list for PBXNativeTarget "LayoutOps-tvOS Tests" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - DD7502961C690C7A006590AF /* Debug */, - DD7502971C690C7A006590AF /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; -/* End XCConfigurationList section */ - }; - rootObject = 52D6D9731BEFF229002C0205 /* Project object */; + archiveVersion = "1"; + objectVersion = "46"; + objects = { + "LayoutOps::LayoutOps" = { + isa = "PBXNativeTarget"; + buildConfigurationList = "OBJ_59"; + buildPhases = ( + "OBJ_62", + "OBJ_99" + ); + dependencies = ( + ); + name = "LayoutOps"; + productName = "LayoutOps"; + productReference = "LayoutOps::LayoutOps::Product"; + productType = "com.apple.product-type.framework"; + }; + "LayoutOps::LayoutOps::Product" = { + isa = "PBXFileReference"; + path = "LayoutOps.framework"; + sourceTree = "BUILT_PRODUCTS_DIR"; + }; + "LayoutOps::LayoutOpsPackageTests::ProductTarget" = { + isa = "PBXAggregateTarget"; + buildConfigurationList = "OBJ_107"; + buildPhases = ( + ); + dependencies = ( + "OBJ_110" + ); + name = "LayoutOpsPackageTests"; + productName = "LayoutOpsPackageTests"; + }; + "LayoutOps::LayoutOpsTests" = { + isa = "PBXNativeTarget"; + buildConfigurationList = "OBJ_112"; + buildPhases = ( + "OBJ_115", + "OBJ_117" + ); + dependencies = ( + "OBJ_119" + ); + name = "LayoutOpsTests"; + productName = "LayoutOpsTests"; + productReference = "LayoutOps::LayoutOpsTests::Product"; + productType = "com.apple.product-type.bundle.unit-test"; + }; + "LayoutOps::LayoutOpsTests::Product" = { + isa = "PBXFileReference"; + path = "LayoutOpsTests.xctest"; + sourceTree = "BUILT_PRODUCTS_DIR"; + }; + "LayoutOps::SwiftPMPackageDescription" = { + isa = "PBXNativeTarget"; + buildConfigurationList = "OBJ_101"; + buildPhases = ( + "OBJ_104" + ); + dependencies = ( + ); + name = "LayoutOpsPackageDescription"; + productName = "LayoutOpsPackageDescription"; + productType = "com.apple.product-type.framework"; + }; + "OBJ_1" = { + isa = "PBXProject"; + attributes = { + LastSwiftMigration = "9999"; + LastUpgradeCheck = "9999"; + }; + buildConfigurationList = "OBJ_2"; + compatibilityVersion = "Xcode 3.2"; + developmentRegion = "en"; + hasScannedForEncodings = "0"; + knownRegions = ( + "en" + ); + mainGroup = "OBJ_5"; + productRefGroup = "OBJ_48"; + projectDirPath = "."; + targets = ( + "LayoutOps::LayoutOps", + "LayoutOps::SwiftPMPackageDescription", + "LayoutOps::LayoutOpsPackageTests::ProductTarget", + "LayoutOps::LayoutOpsTests" + ); + }; + "OBJ_10" = { + isa = "PBXFileReference"; + path = "BaseTableViewPresentationAdapter.swift"; + sourceTree = ""; + }; + "OBJ_101" = { + isa = "XCConfigurationList"; + buildConfigurations = ( + "OBJ_102", + "OBJ_103" + ); + defaultConfigurationIsVisible = "0"; + defaultConfigurationName = "Release"; + }; + "OBJ_102" = { + isa = "XCBuildConfiguration"; + buildSettings = { + LD = "/usr/bin/true"; + OTHER_SWIFT_FLAGS = ( + "-swift-version", + "5", + "-I", + "$(TOOLCHAIN_DIR)/usr/lib/swift/pm/4_2", + "-target", + "x86_64-apple-macosx10.10", + "-sdk", + "/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk", + "-package-description-version", + "5.1" + ); + SWIFT_VERSION = "5.0"; + }; + name = "Debug"; + }; + "OBJ_103" = { + isa = "XCBuildConfiguration"; + buildSettings = { + LD = "/usr/bin/true"; + OTHER_SWIFT_FLAGS = ( + "-swift-version", + "5", + "-I", + "$(TOOLCHAIN_DIR)/usr/lib/swift/pm/4_2", + "-target", + "x86_64-apple-macosx10.10", + "-sdk", + "/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk", + "-package-description-version", + "5.1" + ); + SWIFT_VERSION = "5.0"; + }; + name = "Release"; + }; + "OBJ_104" = { + isa = "PBXSourcesBuildPhase"; + files = ( + "OBJ_105" + ); + }; + "OBJ_105" = { + isa = "PBXBuildFile"; + fileRef = "OBJ_6"; + }; + "OBJ_107" = { + isa = "XCConfigurationList"; + buildConfigurations = ( + "OBJ_108", + "OBJ_109" + ); + defaultConfigurationIsVisible = "0"; + defaultConfigurationName = "Release"; + }; + "OBJ_108" = { + isa = "XCBuildConfiguration"; + buildSettings = { + }; + name = "Debug"; + }; + "OBJ_109" = { + isa = "XCBuildConfiguration"; + buildSettings = { + }; + name = "Release"; + }; + "OBJ_11" = { + isa = "PBXFileReference"; + path = "Basic.swift"; + sourceTree = ""; + }; + "OBJ_110" = { + isa = "PBXTargetDependency"; + target = "LayoutOps::LayoutOpsTests"; + }; + "OBJ_112" = { + isa = "XCConfigurationList"; + buildConfigurations = ( + "OBJ_113", + "OBJ_114" + ); + defaultConfigurationIsVisible = "0"; + defaultConfigurationName = "Release"; + }; + "OBJ_113" = { + isa = "XCBuildConfiguration"; + buildSettings = { + CLANG_ENABLE_MODULES = "YES"; + EMBEDDED_CONTENT_CONTAINS_SWIFT = "YES"; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PLATFORM_DIR)/Developer/Library/Frameworks" + ); + HEADER_SEARCH_PATHS = ( + "$(inherited)" + ); + INFOPLIST_FILE = "LayoutOps.xcodeproj/LayoutOpsTests_Info.plist"; + IPHONEOS_DEPLOYMENT_TARGET = "8.0"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@loader_path/../Frameworks", + "@loader_path/Frameworks" + ); + MACOSX_DEPLOYMENT_TARGET = "10.10"; + OTHER_CFLAGS = ( + "$(inherited)" + ); + OTHER_LDFLAGS = ( + "$(inherited)" + ); + OTHER_SWIFT_FLAGS = ( + "$(inherited)" + ); + SWIFT_ACTIVE_COMPILATION_CONDITIONS = ( + "$(inherited)" + ); + SWIFT_VERSION = "5.0"; + TARGET_NAME = "LayoutOpsTests"; + TVOS_DEPLOYMENT_TARGET = "9.0"; + WATCHOS_DEPLOYMENT_TARGET = "2.0"; + }; + name = "Debug"; + }; + "OBJ_114" = { + isa = "XCBuildConfiguration"; + buildSettings = { + CLANG_ENABLE_MODULES = "YES"; + EMBEDDED_CONTENT_CONTAINS_SWIFT = "YES"; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PLATFORM_DIR)/Developer/Library/Frameworks" + ); + HEADER_SEARCH_PATHS = ( + "$(inherited)" + ); + INFOPLIST_FILE = "LayoutOps.xcodeproj/LayoutOpsTests_Info.plist"; + IPHONEOS_DEPLOYMENT_TARGET = "8.0"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@loader_path/../Frameworks", + "@loader_path/Frameworks" + ); + MACOSX_DEPLOYMENT_TARGET = "10.10"; + OTHER_CFLAGS = ( + "$(inherited)" + ); + OTHER_LDFLAGS = ( + "$(inherited)" + ); + OTHER_SWIFT_FLAGS = ( + "$(inherited)" + ); + SWIFT_ACTIVE_COMPILATION_CONDITIONS = ( + "$(inherited)" + ); + SWIFT_VERSION = "5.0"; + TARGET_NAME = "LayoutOpsTests"; + TVOS_DEPLOYMENT_TARGET = "9.0"; + WATCHOS_DEPLOYMENT_TARGET = "2.0"; + }; + name = "Release"; + }; + "OBJ_115" = { + isa = "PBXSourcesBuildPhase"; + files = ( + "OBJ_116" + ); + }; + "OBJ_116" = { + isa = "PBXBuildFile"; + fileRef = "OBJ_47"; + }; + "OBJ_117" = { + isa = "PBXFrameworksBuildPhase"; + files = ( + "OBJ_118" + ); + }; + "OBJ_118" = { + isa = "PBXBuildFile"; + fileRef = "LayoutOps::LayoutOps::Product"; + }; + "OBJ_119" = { + isa = "PBXTargetDependency"; + target = "LayoutOps::LayoutOps"; + }; + "OBJ_12" = { + isa = "PBXFileReference"; + path = "CALayer+LX.swift"; + sourceTree = ""; + }; + "OBJ_13" = { + isa = "PBXFileReference"; + path = "Follow.swift"; + sourceTree = ""; + }; + "OBJ_14" = { + isa = "PBXFileReference"; + path = "ImageNode.swift"; + sourceTree = ""; + }; + "OBJ_15" = { + isa = "PBXFileReference"; + path = "LX.swift"; + sourceTree = ""; + }; + "OBJ_16" = { + isa = "PBXFileReference"; + path = "LabelNode.swift"; + sourceTree = ""; + }; + "OBJ_17" = { + isa = "PBXFileReference"; + path = "Layout.Align.Bottom.swift"; + sourceTree = ""; + }; + "OBJ_18" = { + isa = "PBXFileReference"; + path = "Layout.Align.End.swift"; + sourceTree = ""; + }; + "OBJ_19" = { + isa = "PBXFileReference"; + path = "Layout.Align.Start.swift"; + sourceTree = ""; + }; + "OBJ_2" = { + isa = "XCConfigurationList"; + buildConfigurations = ( + "OBJ_3", + "OBJ_4" + ); + defaultConfigurationIsVisible = "0"; + defaultConfigurationName = "Release"; + }; + "OBJ_20" = { + isa = "PBXFileReference"; + path = "Layout.Align.Top.swift"; + sourceTree = ""; + }; + "OBJ_21" = { + isa = "PBXFileReference"; + path = "Layout.Attributes.swift"; + sourceTree = ""; + }; + "OBJ_22" = { + isa = "PBXFileReference"; + path = "Layout.Center.swift"; + sourceTree = ""; + }; + "OBJ_23" = { + isa = "PBXFileReference"; + path = "Layout.Fill.swift"; + sourceTree = ""; + }; + "OBJ_24" = { + isa = "PBXFileReference"; + path = "Layout.HCenter.swift"; + sourceTree = ""; + }; + "OBJ_25" = { + isa = "PBXFileReference"; + path = "Layout.HFill.swift"; + sourceTree = ""; + }; + "OBJ_26" = { + isa = "PBXFileReference"; + path = "Layout.VCenter.swift"; + sourceTree = ""; + }; + "OBJ_27" = { + isa = "PBXFileReference"; + path = "Layout.VFill.swift"; + sourceTree = ""; + }; + "OBJ_28" = { + isa = "PBXFileReference"; + path = "NSAttributedString+Size.swift"; + sourceTree = ""; + }; + "OBJ_29" = { + isa = "PBXFileReference"; + path = "Node.swift"; + sourceTree = ""; + }; + "OBJ_3" = { + isa = "XCBuildConfiguration"; + buildSettings = { + CLANG_ENABLE_OBJC_ARC = "YES"; + COMBINE_HIDPI_IMAGES = "YES"; + COPY_PHASE_STRIP = "NO"; + DEBUG_INFORMATION_FORMAT = "dwarf"; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + ENABLE_NS_ASSERTIONS = "YES"; + GCC_OPTIMIZATION_LEVEL = "0"; + GCC_PREPROCESSOR_DEFINITIONS = ( + "$(inherited)", + "SWIFT_PACKAGE=1", + "DEBUG=1" + ); + MACOSX_DEPLOYMENT_TARGET = "10.10"; + ONLY_ACTIVE_ARCH = "YES"; + OTHER_SWIFT_FLAGS = ( + "$(inherited)", + "-DXcode" + ); + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = "macosx"; + SUPPORTED_PLATFORMS = ( + "macosx", + "iphoneos", + "iphonesimulator", + "appletvos", + "appletvsimulator", + "watchos", + "watchsimulator" + ); + SWIFT_ACTIVE_COMPILATION_CONDITIONS = ( + "$(inherited)", + "SWIFT_PACKAGE", + "DEBUG" + ); + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + USE_HEADERMAP = "NO"; + }; + name = "Debug"; + }; + "OBJ_30" = { + isa = "PBXFileReference"; + path = "NodeTableViewCell.swift"; + sourceTree = ""; + }; + "OBJ_31" = { + isa = "PBXFileReference"; + path = "PresentationItem.swift"; + sourceTree = ""; + }; + "OBJ_32" = { + isa = "PBXFileReference"; + path = "PresentationModel.swift"; + sourceTree = ""; + }; + "OBJ_33" = { + isa = "PBXFileReference"; + path = "PresentationTableHeaderFooter.swift"; + sourceTree = ""; + }; + "OBJ_34" = { + isa = "PBXFileReference"; + path = "PresentationTableRow.swift"; + sourceTree = ""; + }; + "OBJ_35" = { + isa = "PBXFileReference"; + path = "PutWrap.swift"; + sourceTree = ""; + }; + "OBJ_36" = { + isa = "PBXFileReference"; + path = "RootNode.swift"; + sourceTree = ""; + }; + "OBJ_37" = { + isa = "PBXFileReference"; + path = "SizeToFit.swift"; + sourceTree = ""; + }; + "OBJ_38" = { + isa = "PBXFileReference"; + path = "SwitchNode.swift"; + sourceTree = ""; + }; + "OBJ_39" = { + isa = "PBXFileReference"; + path = "TableViewPresentationAdapter.swift"; + sourceTree = ""; + }; + "OBJ_4" = { + isa = "XCBuildConfiguration"; + buildSettings = { + CLANG_ENABLE_OBJC_ARC = "YES"; + COMBINE_HIDPI_IMAGES = "YES"; + COPY_PHASE_STRIP = "YES"; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + GCC_OPTIMIZATION_LEVEL = "s"; + GCC_PREPROCESSOR_DEFINITIONS = ( + "$(inherited)", + "SWIFT_PACKAGE=1" + ); + MACOSX_DEPLOYMENT_TARGET = "10.10"; + OTHER_SWIFT_FLAGS = ( + "$(inherited)", + "-DXcode" + ); + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = "macosx"; + SUPPORTED_PLATFORMS = ( + "macosx", + "iphoneos", + "iphonesimulator", + "appletvos", + "appletvsimulator", + "watchos", + "watchsimulator" + ); + SWIFT_ACTIVE_COMPILATION_CONDITIONS = ( + "$(inherited)", + "SWIFT_PACKAGE" + ); + SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; + USE_HEADERMAP = "NO"; + }; + name = "Release"; + }; + "OBJ_40" = { + isa = "PBXGroup"; + children = ( + "OBJ_41", + "OBJ_42" + ); + name = "UIKit"; + path = "UIKit"; + sourceTree = ""; + }; + "OBJ_41" = { + isa = "PBXFileReference"; + path = "NSView+LX.swift"; + sourceTree = ""; + }; + "OBJ_42" = { + isa = "PBXFileReference"; + path = "UIView+LX.swift"; + sourceTree = ""; + }; + "OBJ_43" = { + isa = "PBXFileReference"; + path = "Utils.swift"; + sourceTree = ""; + }; + "OBJ_44" = { + isa = "PBXFileReference"; + path = "Viewport.swift"; + sourceTree = ""; + }; + "OBJ_45" = { + isa = "PBXGroup"; + children = ( + "OBJ_46" + ); + name = "Tests"; + path = ""; + sourceTree = "SOURCE_ROOT"; + }; + "OBJ_46" = { + isa = "PBXGroup"; + children = ( + "OBJ_47" + ); + name = "LayoutOpsTests"; + path = "Tests/LayoutOpsTests"; + sourceTree = "SOURCE_ROOT"; + }; + "OBJ_47" = { + isa = "PBXFileReference"; + path = "LayoutOpsTests.swift"; + sourceTree = ""; + }; + "OBJ_48" = { + isa = "PBXGroup"; + children = ( + "LayoutOps::LayoutOps::Product", + "LayoutOps::LayoutOpsTests::Product" + ); + name = "Products"; + path = ""; + sourceTree = "BUILT_PRODUCTS_DIR"; + }; + "OBJ_5" = { + isa = "PBXGroup"; + children = ( + "OBJ_6", + "OBJ_7", + "OBJ_45", + "OBJ_48", + "OBJ_51", + "OBJ_52", + "OBJ_53", + "OBJ_54", + "OBJ_55", + "OBJ_56", + "OBJ_57" + ); + path = ""; + sourceTree = ""; + }; + "OBJ_51" = { + isa = "PBXFileReference"; + path = "README"; + sourceTree = "SOURCE_ROOT"; + }; + "OBJ_52" = { + isa = "PBXFileReference"; + path = "LayoutOps-Universal"; + sourceTree = "SOURCE_ROOT"; + }; + "OBJ_53" = { + isa = "PBXFileReference"; + path = "Configs"; + sourceTree = "SOURCE_ROOT"; + }; + "OBJ_54" = { + isa = "PBXFileReference"; + path = "Demos"; + sourceTree = "SOURCE_ROOT"; + }; + "OBJ_55" = { + isa = "PBXFileReference"; + path = "ExampleApp"; + sourceTree = "SOURCE_ROOT"; + }; + "OBJ_56" = { + isa = "PBXFileReference"; + path = "LICENSE"; + sourceTree = ""; + }; + "OBJ_57" = { + isa = "PBXFileReference"; + path = "README.md"; + sourceTree = ""; + }; + "OBJ_59" = { + isa = "XCConfigurationList"; + buildConfigurations = ( + "OBJ_60", + "OBJ_61" + ); + defaultConfigurationIsVisible = "0"; + defaultConfigurationName = "Release"; + }; + "OBJ_6" = { + isa = "PBXFileReference"; + explicitFileType = "sourcecode.swift"; + path = "Package.swift"; + sourceTree = ""; + }; + "OBJ_60" = { + isa = "XCBuildConfiguration"; + buildSettings = { + ENABLE_TESTABILITY = "YES"; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PLATFORM_DIR)/Developer/Library/Frameworks" + ); + HEADER_SEARCH_PATHS = ( + "$(inherited)" + ); + INFOPLIST_FILE = "LayoutOps.xcodeproj/LayoutOps_Info.plist"; + IPHONEOS_DEPLOYMENT_TARGET = "8.0"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "$(TOOLCHAIN_DIR)/usr/lib/swift/macosx" + ); + MACOSX_DEPLOYMENT_TARGET = "10.10"; + OTHER_CFLAGS = ( + "$(inherited)" + ); + OTHER_LDFLAGS = ( + "$(inherited)" + ); + OTHER_SWIFT_FLAGS = ( + "$(inherited)" + ); + PRODUCT_BUNDLE_IDENTIFIER = "LayoutOps"; + PRODUCT_MODULE_NAME = "$(TARGET_NAME:c99extidentifier)"; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + SKIP_INSTALL = "YES"; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = ( + "$(inherited)" + ); + SWIFT_VERSION = "5.0"; + TARGET_NAME = "LayoutOps"; + TVOS_DEPLOYMENT_TARGET = "9.0"; + WATCHOS_DEPLOYMENT_TARGET = "2.0"; + }; + name = "Debug"; + }; + "OBJ_61" = { + isa = "XCBuildConfiguration"; + buildSettings = { + ENABLE_TESTABILITY = "YES"; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PLATFORM_DIR)/Developer/Library/Frameworks" + ); + HEADER_SEARCH_PATHS = ( + "$(inherited)" + ); + INFOPLIST_FILE = "LayoutOps.xcodeproj/LayoutOps_Info.plist"; + IPHONEOS_DEPLOYMENT_TARGET = "8.0"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "$(TOOLCHAIN_DIR)/usr/lib/swift/macosx" + ); + MACOSX_DEPLOYMENT_TARGET = "10.10"; + OTHER_CFLAGS = ( + "$(inherited)" + ); + OTHER_LDFLAGS = ( + "$(inherited)" + ); + OTHER_SWIFT_FLAGS = ( + "$(inherited)" + ); + PRODUCT_BUNDLE_IDENTIFIER = "LayoutOps"; + PRODUCT_MODULE_NAME = "$(TARGET_NAME:c99extidentifier)"; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + SKIP_INSTALL = "YES"; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = ( + "$(inherited)" + ); + SWIFT_VERSION = "5.0"; + TARGET_NAME = "LayoutOps"; + TVOS_DEPLOYMENT_TARGET = "9.0"; + WATCHOS_DEPLOYMENT_TARGET = "2.0"; + }; + name = "Release"; + }; + "OBJ_62" = { + isa = "PBXSourcesBuildPhase"; + files = ( + "OBJ_63", + "OBJ_64", + "OBJ_65", + "OBJ_66", + "OBJ_67", + "OBJ_68", + "OBJ_69", + "OBJ_70", + "OBJ_71", + "OBJ_72", + "OBJ_73", + "OBJ_74", + "OBJ_75", + "OBJ_76", + "OBJ_77", + "OBJ_78", + "OBJ_79", + "OBJ_80", + "OBJ_81", + "OBJ_82", + "OBJ_83", + "OBJ_84", + "OBJ_85", + "OBJ_86", + "OBJ_87", + "OBJ_88", + "OBJ_89", + "OBJ_90", + "OBJ_91", + "OBJ_92", + "OBJ_93", + "OBJ_94", + "OBJ_95", + "OBJ_96", + "OBJ_97", + "OBJ_98" + ); + }; + "OBJ_63" = { + isa = "PBXBuildFile"; + fileRef = "OBJ_8"; + }; + "OBJ_64" = { + isa = "PBXBuildFile"; + fileRef = "OBJ_9"; + }; + "OBJ_65" = { + isa = "PBXBuildFile"; + fileRef = "OBJ_10"; + }; + "OBJ_66" = { + isa = "PBXBuildFile"; + fileRef = "OBJ_11"; + }; + "OBJ_67" = { + isa = "PBXBuildFile"; + fileRef = "OBJ_12"; + }; + "OBJ_68" = { + isa = "PBXBuildFile"; + fileRef = "OBJ_13"; + }; + "OBJ_69" = { + isa = "PBXBuildFile"; + fileRef = "OBJ_14"; + }; + "OBJ_7" = { + isa = "PBXGroup"; + children = ( + "OBJ_8", + "OBJ_9", + "OBJ_10", + "OBJ_11", + "OBJ_12", + "OBJ_13", + "OBJ_14", + "OBJ_15", + "OBJ_16", + "OBJ_17", + "OBJ_18", + "OBJ_19", + "OBJ_20", + "OBJ_21", + "OBJ_22", + "OBJ_23", + "OBJ_24", + "OBJ_25", + "OBJ_26", + "OBJ_27", + "OBJ_28", + "OBJ_29", + "OBJ_30", + "OBJ_31", + "OBJ_32", + "OBJ_33", + "OBJ_34", + "OBJ_35", + "OBJ_36", + "OBJ_37", + "OBJ_38", + "OBJ_39", + "OBJ_40", + "OBJ_43", + "OBJ_44" + ); + name = "Sources"; + path = "Sources"; + sourceTree = "SOURCE_ROOT"; + }; + "OBJ_70" = { + isa = "PBXBuildFile"; + fileRef = "OBJ_15"; + }; + "OBJ_71" = { + isa = "PBXBuildFile"; + fileRef = "OBJ_16"; + }; + "OBJ_72" = { + isa = "PBXBuildFile"; + fileRef = "OBJ_17"; + }; + "OBJ_73" = { + isa = "PBXBuildFile"; + fileRef = "OBJ_18"; + }; + "OBJ_74" = { + isa = "PBXBuildFile"; + fileRef = "OBJ_19"; + }; + "OBJ_75" = { + isa = "PBXBuildFile"; + fileRef = "OBJ_20"; + }; + "OBJ_76" = { + isa = "PBXBuildFile"; + fileRef = "OBJ_21"; + }; + "OBJ_77" = { + isa = "PBXBuildFile"; + fileRef = "OBJ_22"; + }; + "OBJ_78" = { + isa = "PBXBuildFile"; + fileRef = "OBJ_23"; + }; + "OBJ_79" = { + isa = "PBXBuildFile"; + fileRef = "OBJ_24"; + }; + "OBJ_8" = { + isa = "PBXFileReference"; + path = "Accelerate.swift"; + sourceTree = ""; + }; + "OBJ_80" = { + isa = "PBXBuildFile"; + fileRef = "OBJ_25"; + }; + "OBJ_81" = { + isa = "PBXBuildFile"; + fileRef = "OBJ_26"; + }; + "OBJ_82" = { + isa = "PBXBuildFile"; + fileRef = "OBJ_27"; + }; + "OBJ_83" = { + isa = "PBXBuildFile"; + fileRef = "OBJ_28"; + }; + "OBJ_84" = { + isa = "PBXBuildFile"; + fileRef = "OBJ_29"; + }; + "OBJ_85" = { + isa = "PBXBuildFile"; + fileRef = "OBJ_30"; + }; + "OBJ_86" = { + isa = "PBXBuildFile"; + fileRef = "OBJ_31"; + }; + "OBJ_87" = { + isa = "PBXBuildFile"; + fileRef = "OBJ_32"; + }; + "OBJ_88" = { + isa = "PBXBuildFile"; + fileRef = "OBJ_33"; + }; + "OBJ_89" = { + isa = "PBXBuildFile"; + fileRef = "OBJ_34"; + }; + "OBJ_9" = { + isa = "PBXFileReference"; + path = "Anchor.swift"; + sourceTree = ""; + }; + "OBJ_90" = { + isa = "PBXBuildFile"; + fileRef = "OBJ_35"; + }; + "OBJ_91" = { + isa = "PBXBuildFile"; + fileRef = "OBJ_36"; + }; + "OBJ_92" = { + isa = "PBXBuildFile"; + fileRef = "OBJ_37"; + }; + "OBJ_93" = { + isa = "PBXBuildFile"; + fileRef = "OBJ_38"; + }; + "OBJ_94" = { + isa = "PBXBuildFile"; + fileRef = "OBJ_39"; + }; + "OBJ_95" = { + isa = "PBXBuildFile"; + fileRef = "OBJ_41"; + }; + "OBJ_96" = { + isa = "PBXBuildFile"; + fileRef = "OBJ_42"; + }; + "OBJ_97" = { + isa = "PBXBuildFile"; + fileRef = "OBJ_43"; + }; + "OBJ_98" = { + isa = "PBXBuildFile"; + fileRef = "OBJ_44"; + }; + "OBJ_99" = { + isa = "PBXFrameworksBuildPhase"; + files = ( + ); + }; + }; + rootObject = "OBJ_1"; } diff --git a/LayoutOps.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/LayoutOps.xcodeproj/project.xcworkspace/contents.xcworkspacedata index 919434a..fe1aa71 100644 --- a/LayoutOps.xcodeproj/project.xcworkspace/contents.xcworkspacedata +++ b/LayoutOps.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -4,4 +4,4 @@ - + \ No newline at end of file diff --git a/LayoutOps.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings b/LayoutOps.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings new file mode 100644 index 0000000..a72dc2b --- /dev/null +++ b/LayoutOps.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings @@ -0,0 +1,8 @@ + + + + + IDEWorkspaceSharedSettings_AutocreateContextsIfNeeded + + + \ No newline at end of file diff --git a/LayoutOps.xcodeproj/xcshareddata/xcschemes/LayoutOps-Package.xcscheme b/LayoutOps.xcodeproj/xcshareddata/xcschemes/LayoutOps-Package.xcscheme new file mode 100644 index 0000000..b638f32 --- /dev/null +++ b/LayoutOps.xcodeproj/xcshareddata/xcschemes/LayoutOps-Package.xcscheme @@ -0,0 +1,68 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Package.swift b/Package.swift index de90f3f..ad24946 100644 --- a/Package.swift +++ b/Package.swift @@ -3,15 +3,32 @@ import PackageDescription -let package = Package(name: "LayoutOps", - platforms: [.macOS(.v10_10), - .iOS(.v8), - .tvOS(.v9)], - products: [.library(name: "LayoutOps", - targets: ["LayoutOps"])], - targets: [.target(name: "LayoutOps", - path: "Sources"), - .testTarget( - name: "LayoutOpsTests", - dependencies: ["LayoutOps"]),], - swiftLanguageVersions: [.v5]) +let package = Package( + name: "LayoutOps", + platforms: [ + .macOS(.v10_10), + .iOS(.v8), + .tvOS(.v9)], + products: [ + .library( + name: "LayoutOps", + targets: ["LayoutOps"] + ) + ], + targets: [ + .target( + name: "LayoutOps", + path: "Sources" + ), + .testTarget( + name: "LayoutOpsTests", + dependencies: ["LayoutOps"] + ), + .target( + name: "LayoutOps-Universal", + dependencies: ["LayoutOps"], + path: "LayoutOps-Universal" + ) + ], + swiftLanguageVersions: [.v5] +) From 9f8fb0faeb7f22bbb067af48d220b3524a5a41f5 Mon Sep 17 00:00:00 2001 From: ZkHaider Date: Sun, 16 Feb 2020 00:58:10 -0800 Subject: [PATCH 8/9] Fixed CoreGraphics imports --- Sources/Layout.Align.Bottom.swift | 1 + Sources/Layout.Align.End.swift | 1 + Sources/Layout.Align.Start.swift | 1 + Sources/Layout.Align.Top.swift | 1 + Sources/Layout.Center.swift | 1 + Sources/Layout.Fill.swift | 1 + Sources/Layout.HCenter.swift | 1 + Sources/Layout.HFill.swift | 1 + Sources/Layout.VCenter.swift | 1 + Sources/Layout.VFill.swift | 1 + 10 files changed, 10 insertions(+) diff --git a/Sources/Layout.Align.Bottom.swift b/Sources/Layout.Align.Bottom.swift index 91a12e3..5f6c507 100644 --- a/Sources/Layout.Align.Bottom.swift +++ b/Sources/Layout.Align.Bottom.swift @@ -7,6 +7,7 @@ // import Foundation +import CoreGraphics public struct AlignBottom { let insets: LXEdgeInsets diff --git a/Sources/Layout.Align.End.swift b/Sources/Layout.Align.End.swift index 02ea986..5ff26ee 100644 --- a/Sources/Layout.Align.End.swift +++ b/Sources/Layout.Align.End.swift @@ -7,6 +7,7 @@ // import Foundation +import CoreGraphics public struct AlignEnd { let insets: LXEdgeInsets diff --git a/Sources/Layout.Align.Start.swift b/Sources/Layout.Align.Start.swift index 19dfff2..b207016 100644 --- a/Sources/Layout.Align.Start.swift +++ b/Sources/Layout.Align.Start.swift @@ -7,6 +7,7 @@ // import Foundation +import CoreGraphics public struct AlignStart { let insets: LXEdgeInsets diff --git a/Sources/Layout.Align.Top.swift b/Sources/Layout.Align.Top.swift index cde2419..135ac7f 100644 --- a/Sources/Layout.Align.Top.swift +++ b/Sources/Layout.Align.Top.swift @@ -7,6 +7,7 @@ // import Foundation +import CoreGraphics public struct AlignTop { let insets: LXEdgeInsets diff --git a/Sources/Layout.Center.swift b/Sources/Layout.Center.swift index 9cd057b..977f1b9 100644 --- a/Sources/Layout.Center.swift +++ b/Sources/Layout.Center.swift @@ -7,6 +7,7 @@ // import Foundation +import CoreGraphics public struct Center { let insets: LXEdgeInsets diff --git a/Sources/Layout.Fill.swift b/Sources/Layout.Fill.swift index b172066..cdd12d4 100644 --- a/Sources/Layout.Fill.swift +++ b/Sources/Layout.Fill.swift @@ -7,6 +7,7 @@ // import Foundation +import CoreGraphics public struct Fill { let insets: LXEdgeInsets diff --git a/Sources/Layout.HCenter.swift b/Sources/Layout.HCenter.swift index 77510b3..233a555 100644 --- a/Sources/Layout.HCenter.swift +++ b/Sources/Layout.HCenter.swift @@ -7,6 +7,7 @@ // import Foundation +import CoreGraphics public struct HCenter { let insets: LXEdgeInsets diff --git a/Sources/Layout.HFill.swift b/Sources/Layout.HFill.swift index 587dc70..f8467fd 100644 --- a/Sources/Layout.HFill.swift +++ b/Sources/Layout.HFill.swift @@ -7,6 +7,7 @@ // import Foundation +import CoreGraphics public struct HFill { let insets: LXEdgeInsets diff --git a/Sources/Layout.VCenter.swift b/Sources/Layout.VCenter.swift index 0b7abef..2c6b950 100644 --- a/Sources/Layout.VCenter.swift +++ b/Sources/Layout.VCenter.swift @@ -7,6 +7,7 @@ // import Foundation +import CoreGraphics public struct VCenter { let insets: LXEdgeInsets diff --git a/Sources/Layout.VFill.swift b/Sources/Layout.VFill.swift index ba01bba..7b92ec7 100644 --- a/Sources/Layout.VFill.swift +++ b/Sources/Layout.VFill.swift @@ -7,6 +7,7 @@ // import Foundation +import CoreGraphics public struct VFill { let insets: LXEdgeInsets From 54d7ca67dd2c1b8aaeed613c432a7a22c62a1784 Mon Sep 17 00:00:00 2001 From: ZkHaider Date: Sun, 16 Feb 2020 20:51:48 -0800 Subject: [PATCH 9/9] Added universal scheme --- LayoutOps.xcodeproj/project.pbxproj | 1613 +++++++---------- .../xcshareddata/xcschemes/LayoutOps.xcscheme | 67 + 2 files changed, 700 insertions(+), 980 deletions(-) create mode 100644 LayoutOps.xcodeproj/xcshareddata/xcschemes/LayoutOps.xcscheme diff --git a/LayoutOps.xcodeproj/project.pbxproj b/LayoutOps.xcodeproj/project.pbxproj index 127b2f5..146d33d 100644 --- a/LayoutOps.xcodeproj/project.pbxproj +++ b/LayoutOps.xcodeproj/project.pbxproj @@ -1,983 +1,636 @@ // !$*UTF8*$! { - archiveVersion = "1"; - objectVersion = "46"; - objects = { - "LayoutOps::LayoutOps" = { - isa = "PBXNativeTarget"; - buildConfigurationList = "OBJ_59"; - buildPhases = ( - "OBJ_62", - "OBJ_99" - ); - dependencies = ( - ); - name = "LayoutOps"; - productName = "LayoutOps"; - productReference = "LayoutOps::LayoutOps::Product"; - productType = "com.apple.product-type.framework"; - }; - "LayoutOps::LayoutOps::Product" = { - isa = "PBXFileReference"; - path = "LayoutOps.framework"; - sourceTree = "BUILT_PRODUCTS_DIR"; - }; - "LayoutOps::LayoutOpsPackageTests::ProductTarget" = { - isa = "PBXAggregateTarget"; - buildConfigurationList = "OBJ_107"; - buildPhases = ( - ); - dependencies = ( - "OBJ_110" - ); - name = "LayoutOpsPackageTests"; - productName = "LayoutOpsPackageTests"; - }; - "LayoutOps::LayoutOpsTests" = { - isa = "PBXNativeTarget"; - buildConfigurationList = "OBJ_112"; - buildPhases = ( - "OBJ_115", - "OBJ_117" - ); - dependencies = ( - "OBJ_119" - ); - name = "LayoutOpsTests"; - productName = "LayoutOpsTests"; - productReference = "LayoutOps::LayoutOpsTests::Product"; - productType = "com.apple.product-type.bundle.unit-test"; - }; - "LayoutOps::LayoutOpsTests::Product" = { - isa = "PBXFileReference"; - path = "LayoutOpsTests.xctest"; - sourceTree = "BUILT_PRODUCTS_DIR"; - }; - "LayoutOps::SwiftPMPackageDescription" = { - isa = "PBXNativeTarget"; - buildConfigurationList = "OBJ_101"; - buildPhases = ( - "OBJ_104" - ); - dependencies = ( - ); - name = "LayoutOpsPackageDescription"; - productName = "LayoutOpsPackageDescription"; - productType = "com.apple.product-type.framework"; - }; - "OBJ_1" = { - isa = "PBXProject"; - attributes = { - LastSwiftMigration = "9999"; - LastUpgradeCheck = "9999"; - }; - buildConfigurationList = "OBJ_2"; - compatibilityVersion = "Xcode 3.2"; - developmentRegion = "en"; - hasScannedForEncodings = "0"; - knownRegions = ( - "en" - ); - mainGroup = "OBJ_5"; - productRefGroup = "OBJ_48"; - projectDirPath = "."; - targets = ( - "LayoutOps::LayoutOps", - "LayoutOps::SwiftPMPackageDescription", - "LayoutOps::LayoutOpsPackageTests::ProductTarget", - "LayoutOps::LayoutOpsTests" - ); - }; - "OBJ_10" = { - isa = "PBXFileReference"; - path = "BaseTableViewPresentationAdapter.swift"; - sourceTree = ""; - }; - "OBJ_101" = { - isa = "XCConfigurationList"; - buildConfigurations = ( - "OBJ_102", - "OBJ_103" - ); - defaultConfigurationIsVisible = "0"; - defaultConfigurationName = "Release"; - }; - "OBJ_102" = { - isa = "XCBuildConfiguration"; - buildSettings = { - LD = "/usr/bin/true"; - OTHER_SWIFT_FLAGS = ( - "-swift-version", - "5", - "-I", - "$(TOOLCHAIN_DIR)/usr/lib/swift/pm/4_2", - "-target", - "x86_64-apple-macosx10.10", - "-sdk", - "/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk", - "-package-description-version", - "5.1" - ); - SWIFT_VERSION = "5.0"; - }; - name = "Debug"; - }; - "OBJ_103" = { - isa = "XCBuildConfiguration"; - buildSettings = { - LD = "/usr/bin/true"; - OTHER_SWIFT_FLAGS = ( - "-swift-version", - "5", - "-I", - "$(TOOLCHAIN_DIR)/usr/lib/swift/pm/4_2", - "-target", - "x86_64-apple-macosx10.10", - "-sdk", - "/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk", - "-package-description-version", - "5.1" - ); - SWIFT_VERSION = "5.0"; - }; - name = "Release"; - }; - "OBJ_104" = { - isa = "PBXSourcesBuildPhase"; - files = ( - "OBJ_105" - ); - }; - "OBJ_105" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_6"; - }; - "OBJ_107" = { - isa = "XCConfigurationList"; - buildConfigurations = ( - "OBJ_108", - "OBJ_109" - ); - defaultConfigurationIsVisible = "0"; - defaultConfigurationName = "Release"; - }; - "OBJ_108" = { - isa = "XCBuildConfiguration"; - buildSettings = { - }; - name = "Debug"; - }; - "OBJ_109" = { - isa = "XCBuildConfiguration"; - buildSettings = { - }; - name = "Release"; - }; - "OBJ_11" = { - isa = "PBXFileReference"; - path = "Basic.swift"; - sourceTree = ""; - }; - "OBJ_110" = { - isa = "PBXTargetDependency"; - target = "LayoutOps::LayoutOpsTests"; - }; - "OBJ_112" = { - isa = "XCConfigurationList"; - buildConfigurations = ( - "OBJ_113", - "OBJ_114" - ); - defaultConfigurationIsVisible = "0"; - defaultConfigurationName = "Release"; - }; - "OBJ_113" = { - isa = "XCBuildConfiguration"; - buildSettings = { - CLANG_ENABLE_MODULES = "YES"; - EMBEDDED_CONTENT_CONTAINS_SWIFT = "YES"; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(PLATFORM_DIR)/Developer/Library/Frameworks" - ); - HEADER_SEARCH_PATHS = ( - "$(inherited)" - ); - INFOPLIST_FILE = "LayoutOps.xcodeproj/LayoutOpsTests_Info.plist"; - IPHONEOS_DEPLOYMENT_TARGET = "8.0"; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@loader_path/../Frameworks", - "@loader_path/Frameworks" - ); - MACOSX_DEPLOYMENT_TARGET = "10.10"; - OTHER_CFLAGS = ( - "$(inherited)" - ); - OTHER_LDFLAGS = ( - "$(inherited)" - ); - OTHER_SWIFT_FLAGS = ( - "$(inherited)" - ); - SWIFT_ACTIVE_COMPILATION_CONDITIONS = ( - "$(inherited)" - ); - SWIFT_VERSION = "5.0"; - TARGET_NAME = "LayoutOpsTests"; - TVOS_DEPLOYMENT_TARGET = "9.0"; - WATCHOS_DEPLOYMENT_TARGET = "2.0"; - }; - name = "Debug"; - }; - "OBJ_114" = { - isa = "XCBuildConfiguration"; - buildSettings = { - CLANG_ENABLE_MODULES = "YES"; - EMBEDDED_CONTENT_CONTAINS_SWIFT = "YES"; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(PLATFORM_DIR)/Developer/Library/Frameworks" - ); - HEADER_SEARCH_PATHS = ( - "$(inherited)" - ); - INFOPLIST_FILE = "LayoutOps.xcodeproj/LayoutOpsTests_Info.plist"; - IPHONEOS_DEPLOYMENT_TARGET = "8.0"; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@loader_path/../Frameworks", - "@loader_path/Frameworks" - ); - MACOSX_DEPLOYMENT_TARGET = "10.10"; - OTHER_CFLAGS = ( - "$(inherited)" - ); - OTHER_LDFLAGS = ( - "$(inherited)" - ); - OTHER_SWIFT_FLAGS = ( - "$(inherited)" - ); - SWIFT_ACTIVE_COMPILATION_CONDITIONS = ( - "$(inherited)" - ); - SWIFT_VERSION = "5.0"; - TARGET_NAME = "LayoutOpsTests"; - TVOS_DEPLOYMENT_TARGET = "9.0"; - WATCHOS_DEPLOYMENT_TARGET = "2.0"; - }; - name = "Release"; - }; - "OBJ_115" = { - isa = "PBXSourcesBuildPhase"; - files = ( - "OBJ_116" - ); - }; - "OBJ_116" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_47"; - }; - "OBJ_117" = { - isa = "PBXFrameworksBuildPhase"; - files = ( - "OBJ_118" - ); - }; - "OBJ_118" = { - isa = "PBXBuildFile"; - fileRef = "LayoutOps::LayoutOps::Product"; - }; - "OBJ_119" = { - isa = "PBXTargetDependency"; - target = "LayoutOps::LayoutOps"; - }; - "OBJ_12" = { - isa = "PBXFileReference"; - path = "CALayer+LX.swift"; - sourceTree = ""; - }; - "OBJ_13" = { - isa = "PBXFileReference"; - path = "Follow.swift"; - sourceTree = ""; - }; - "OBJ_14" = { - isa = "PBXFileReference"; - path = "ImageNode.swift"; - sourceTree = ""; - }; - "OBJ_15" = { - isa = "PBXFileReference"; - path = "LX.swift"; - sourceTree = ""; - }; - "OBJ_16" = { - isa = "PBXFileReference"; - path = "LabelNode.swift"; - sourceTree = ""; - }; - "OBJ_17" = { - isa = "PBXFileReference"; - path = "Layout.Align.Bottom.swift"; - sourceTree = ""; - }; - "OBJ_18" = { - isa = "PBXFileReference"; - path = "Layout.Align.End.swift"; - sourceTree = ""; - }; - "OBJ_19" = { - isa = "PBXFileReference"; - path = "Layout.Align.Start.swift"; - sourceTree = ""; - }; - "OBJ_2" = { - isa = "XCConfigurationList"; - buildConfigurations = ( - "OBJ_3", - "OBJ_4" - ); - defaultConfigurationIsVisible = "0"; - defaultConfigurationName = "Release"; - }; - "OBJ_20" = { - isa = "PBXFileReference"; - path = "Layout.Align.Top.swift"; - sourceTree = ""; - }; - "OBJ_21" = { - isa = "PBXFileReference"; - path = "Layout.Attributes.swift"; - sourceTree = ""; - }; - "OBJ_22" = { - isa = "PBXFileReference"; - path = "Layout.Center.swift"; - sourceTree = ""; - }; - "OBJ_23" = { - isa = "PBXFileReference"; - path = "Layout.Fill.swift"; - sourceTree = ""; - }; - "OBJ_24" = { - isa = "PBXFileReference"; - path = "Layout.HCenter.swift"; - sourceTree = ""; - }; - "OBJ_25" = { - isa = "PBXFileReference"; - path = "Layout.HFill.swift"; - sourceTree = ""; - }; - "OBJ_26" = { - isa = "PBXFileReference"; - path = "Layout.VCenter.swift"; - sourceTree = ""; - }; - "OBJ_27" = { - isa = "PBXFileReference"; - path = "Layout.VFill.swift"; - sourceTree = ""; - }; - "OBJ_28" = { - isa = "PBXFileReference"; - path = "NSAttributedString+Size.swift"; - sourceTree = ""; - }; - "OBJ_29" = { - isa = "PBXFileReference"; - path = "Node.swift"; - sourceTree = ""; - }; - "OBJ_3" = { - isa = "XCBuildConfiguration"; - buildSettings = { - CLANG_ENABLE_OBJC_ARC = "YES"; - COMBINE_HIDPI_IMAGES = "YES"; - COPY_PHASE_STRIP = "NO"; - DEBUG_INFORMATION_FORMAT = "dwarf"; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_NS_ASSERTIONS = "YES"; - GCC_OPTIMIZATION_LEVEL = "0"; - GCC_PREPROCESSOR_DEFINITIONS = ( - "$(inherited)", - "SWIFT_PACKAGE=1", - "DEBUG=1" - ); - MACOSX_DEPLOYMENT_TARGET = "10.10"; - ONLY_ACTIVE_ARCH = "YES"; - OTHER_SWIFT_FLAGS = ( - "$(inherited)", - "-DXcode" - ); - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = "macosx"; - SUPPORTED_PLATFORMS = ( - "macosx", - "iphoneos", - "iphonesimulator", - "appletvos", - "appletvsimulator", - "watchos", - "watchsimulator" - ); - SWIFT_ACTIVE_COMPILATION_CONDITIONS = ( - "$(inherited)", - "SWIFT_PACKAGE", - "DEBUG" - ); - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - USE_HEADERMAP = "NO"; - }; - name = "Debug"; - }; - "OBJ_30" = { - isa = "PBXFileReference"; - path = "NodeTableViewCell.swift"; - sourceTree = ""; - }; - "OBJ_31" = { - isa = "PBXFileReference"; - path = "PresentationItem.swift"; - sourceTree = ""; - }; - "OBJ_32" = { - isa = "PBXFileReference"; - path = "PresentationModel.swift"; - sourceTree = ""; - }; - "OBJ_33" = { - isa = "PBXFileReference"; - path = "PresentationTableHeaderFooter.swift"; - sourceTree = ""; - }; - "OBJ_34" = { - isa = "PBXFileReference"; - path = "PresentationTableRow.swift"; - sourceTree = ""; - }; - "OBJ_35" = { - isa = "PBXFileReference"; - path = "PutWrap.swift"; - sourceTree = ""; - }; - "OBJ_36" = { - isa = "PBXFileReference"; - path = "RootNode.swift"; - sourceTree = ""; - }; - "OBJ_37" = { - isa = "PBXFileReference"; - path = "SizeToFit.swift"; - sourceTree = ""; - }; - "OBJ_38" = { - isa = "PBXFileReference"; - path = "SwitchNode.swift"; - sourceTree = ""; - }; - "OBJ_39" = { - isa = "PBXFileReference"; - path = "TableViewPresentationAdapter.swift"; - sourceTree = ""; - }; - "OBJ_4" = { - isa = "XCBuildConfiguration"; - buildSettings = { - CLANG_ENABLE_OBJC_ARC = "YES"; - COMBINE_HIDPI_IMAGES = "YES"; - COPY_PHASE_STRIP = "YES"; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - GCC_OPTIMIZATION_LEVEL = "s"; - GCC_PREPROCESSOR_DEFINITIONS = ( - "$(inherited)", - "SWIFT_PACKAGE=1" - ); - MACOSX_DEPLOYMENT_TARGET = "10.10"; - OTHER_SWIFT_FLAGS = ( - "$(inherited)", - "-DXcode" - ); - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = "macosx"; - SUPPORTED_PLATFORMS = ( - "macosx", - "iphoneos", - "iphonesimulator", - "appletvos", - "appletvsimulator", - "watchos", - "watchsimulator" - ); - SWIFT_ACTIVE_COMPILATION_CONDITIONS = ( - "$(inherited)", - "SWIFT_PACKAGE" - ); - SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; - USE_HEADERMAP = "NO"; - }; - name = "Release"; - }; - "OBJ_40" = { - isa = "PBXGroup"; - children = ( - "OBJ_41", - "OBJ_42" - ); - name = "UIKit"; - path = "UIKit"; - sourceTree = ""; - }; - "OBJ_41" = { - isa = "PBXFileReference"; - path = "NSView+LX.swift"; - sourceTree = ""; - }; - "OBJ_42" = { - isa = "PBXFileReference"; - path = "UIView+LX.swift"; - sourceTree = ""; - }; - "OBJ_43" = { - isa = "PBXFileReference"; - path = "Utils.swift"; - sourceTree = ""; - }; - "OBJ_44" = { - isa = "PBXFileReference"; - path = "Viewport.swift"; - sourceTree = ""; - }; - "OBJ_45" = { - isa = "PBXGroup"; - children = ( - "OBJ_46" - ); - name = "Tests"; - path = ""; - sourceTree = "SOURCE_ROOT"; - }; - "OBJ_46" = { - isa = "PBXGroup"; - children = ( - "OBJ_47" - ); - name = "LayoutOpsTests"; - path = "Tests/LayoutOpsTests"; - sourceTree = "SOURCE_ROOT"; - }; - "OBJ_47" = { - isa = "PBXFileReference"; - path = "LayoutOpsTests.swift"; - sourceTree = ""; - }; - "OBJ_48" = { - isa = "PBXGroup"; - children = ( - "LayoutOps::LayoutOps::Product", - "LayoutOps::LayoutOpsTests::Product" - ); - name = "Products"; - path = ""; - sourceTree = "BUILT_PRODUCTS_DIR"; - }; - "OBJ_5" = { - isa = "PBXGroup"; - children = ( - "OBJ_6", - "OBJ_7", - "OBJ_45", - "OBJ_48", - "OBJ_51", - "OBJ_52", - "OBJ_53", - "OBJ_54", - "OBJ_55", - "OBJ_56", - "OBJ_57" - ); - path = ""; - sourceTree = ""; - }; - "OBJ_51" = { - isa = "PBXFileReference"; - path = "README"; - sourceTree = "SOURCE_ROOT"; - }; - "OBJ_52" = { - isa = "PBXFileReference"; - path = "LayoutOps-Universal"; - sourceTree = "SOURCE_ROOT"; - }; - "OBJ_53" = { - isa = "PBXFileReference"; - path = "Configs"; - sourceTree = "SOURCE_ROOT"; - }; - "OBJ_54" = { - isa = "PBXFileReference"; - path = "Demos"; - sourceTree = "SOURCE_ROOT"; - }; - "OBJ_55" = { - isa = "PBXFileReference"; - path = "ExampleApp"; - sourceTree = "SOURCE_ROOT"; - }; - "OBJ_56" = { - isa = "PBXFileReference"; - path = "LICENSE"; - sourceTree = ""; - }; - "OBJ_57" = { - isa = "PBXFileReference"; - path = "README.md"; - sourceTree = ""; - }; - "OBJ_59" = { - isa = "XCConfigurationList"; - buildConfigurations = ( - "OBJ_60", - "OBJ_61" - ); - defaultConfigurationIsVisible = "0"; - defaultConfigurationName = "Release"; - }; - "OBJ_6" = { - isa = "PBXFileReference"; - explicitFileType = "sourcecode.swift"; - path = "Package.swift"; - sourceTree = ""; - }; - "OBJ_60" = { - isa = "XCBuildConfiguration"; - buildSettings = { - ENABLE_TESTABILITY = "YES"; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(PLATFORM_DIR)/Developer/Library/Frameworks" - ); - HEADER_SEARCH_PATHS = ( - "$(inherited)" - ); - INFOPLIST_FILE = "LayoutOps.xcodeproj/LayoutOps_Info.plist"; - IPHONEOS_DEPLOYMENT_TARGET = "8.0"; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "$(TOOLCHAIN_DIR)/usr/lib/swift/macosx" - ); - MACOSX_DEPLOYMENT_TARGET = "10.10"; - OTHER_CFLAGS = ( - "$(inherited)" - ); - OTHER_LDFLAGS = ( - "$(inherited)" - ); - OTHER_SWIFT_FLAGS = ( - "$(inherited)" - ); - PRODUCT_BUNDLE_IDENTIFIER = "LayoutOps"; - PRODUCT_MODULE_NAME = "$(TARGET_NAME:c99extidentifier)"; - PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; - SKIP_INSTALL = "YES"; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = ( - "$(inherited)" - ); - SWIFT_VERSION = "5.0"; - TARGET_NAME = "LayoutOps"; - TVOS_DEPLOYMENT_TARGET = "9.0"; - WATCHOS_DEPLOYMENT_TARGET = "2.0"; - }; - name = "Debug"; - }; - "OBJ_61" = { - isa = "XCBuildConfiguration"; - buildSettings = { - ENABLE_TESTABILITY = "YES"; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(PLATFORM_DIR)/Developer/Library/Frameworks" - ); - HEADER_SEARCH_PATHS = ( - "$(inherited)" - ); - INFOPLIST_FILE = "LayoutOps.xcodeproj/LayoutOps_Info.plist"; - IPHONEOS_DEPLOYMENT_TARGET = "8.0"; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "$(TOOLCHAIN_DIR)/usr/lib/swift/macosx" - ); - MACOSX_DEPLOYMENT_TARGET = "10.10"; - OTHER_CFLAGS = ( - "$(inherited)" - ); - OTHER_LDFLAGS = ( - "$(inherited)" - ); - OTHER_SWIFT_FLAGS = ( - "$(inherited)" - ); - PRODUCT_BUNDLE_IDENTIFIER = "LayoutOps"; - PRODUCT_MODULE_NAME = "$(TARGET_NAME:c99extidentifier)"; - PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; - SKIP_INSTALL = "YES"; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = ( - "$(inherited)" - ); - SWIFT_VERSION = "5.0"; - TARGET_NAME = "LayoutOps"; - TVOS_DEPLOYMENT_TARGET = "9.0"; - WATCHOS_DEPLOYMENT_TARGET = "2.0"; - }; - name = "Release"; - }; - "OBJ_62" = { - isa = "PBXSourcesBuildPhase"; - files = ( - "OBJ_63", - "OBJ_64", - "OBJ_65", - "OBJ_66", - "OBJ_67", - "OBJ_68", - "OBJ_69", - "OBJ_70", - "OBJ_71", - "OBJ_72", - "OBJ_73", - "OBJ_74", - "OBJ_75", - "OBJ_76", - "OBJ_77", - "OBJ_78", - "OBJ_79", - "OBJ_80", - "OBJ_81", - "OBJ_82", - "OBJ_83", - "OBJ_84", - "OBJ_85", - "OBJ_86", - "OBJ_87", - "OBJ_88", - "OBJ_89", - "OBJ_90", - "OBJ_91", - "OBJ_92", - "OBJ_93", - "OBJ_94", - "OBJ_95", - "OBJ_96", - "OBJ_97", - "OBJ_98" - ); - }; - "OBJ_63" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_8"; - }; - "OBJ_64" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_9"; - }; - "OBJ_65" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_10"; - }; - "OBJ_66" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_11"; - }; - "OBJ_67" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_12"; - }; - "OBJ_68" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_13"; - }; - "OBJ_69" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_14"; - }; - "OBJ_7" = { - isa = "PBXGroup"; - children = ( - "OBJ_8", - "OBJ_9", - "OBJ_10", - "OBJ_11", - "OBJ_12", - "OBJ_13", - "OBJ_14", - "OBJ_15", - "OBJ_16", - "OBJ_17", - "OBJ_18", - "OBJ_19", - "OBJ_20", - "OBJ_21", - "OBJ_22", - "OBJ_23", - "OBJ_24", - "OBJ_25", - "OBJ_26", - "OBJ_27", - "OBJ_28", - "OBJ_29", - "OBJ_30", - "OBJ_31", - "OBJ_32", - "OBJ_33", - "OBJ_34", - "OBJ_35", - "OBJ_36", - "OBJ_37", - "OBJ_38", - "OBJ_39", - "OBJ_40", - "OBJ_43", - "OBJ_44" - ); - name = "Sources"; - path = "Sources"; - sourceTree = "SOURCE_ROOT"; - }; - "OBJ_70" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_15"; - }; - "OBJ_71" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_16"; - }; - "OBJ_72" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_17"; - }; - "OBJ_73" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_18"; - }; - "OBJ_74" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_19"; - }; - "OBJ_75" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_20"; - }; - "OBJ_76" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_21"; - }; - "OBJ_77" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_22"; - }; - "OBJ_78" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_23"; - }; - "OBJ_79" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_24"; - }; - "OBJ_8" = { - isa = "PBXFileReference"; - path = "Accelerate.swift"; - sourceTree = ""; - }; - "OBJ_80" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_25"; - }; - "OBJ_81" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_26"; - }; - "OBJ_82" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_27"; - }; - "OBJ_83" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_28"; - }; - "OBJ_84" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_29"; - }; - "OBJ_85" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_30"; - }; - "OBJ_86" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_31"; - }; - "OBJ_87" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_32"; - }; - "OBJ_88" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_33"; - }; - "OBJ_89" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_34"; - }; - "OBJ_9" = { - isa = "PBXFileReference"; - path = "Anchor.swift"; - sourceTree = ""; - }; - "OBJ_90" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_35"; - }; - "OBJ_91" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_36"; - }; - "OBJ_92" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_37"; - }; - "OBJ_93" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_38"; - }; - "OBJ_94" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_39"; - }; - "OBJ_95" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_41"; - }; - "OBJ_96" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_42"; - }; - "OBJ_97" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_43"; - }; - "OBJ_98" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_44"; - }; - "OBJ_99" = { - isa = "PBXFrameworksBuildPhase"; - files = ( - ); - }; - }; - rootObject = "OBJ_1"; + archiveVersion = 1; + classes = { + }; + objectVersion = 46; + objects = { + +/* Begin PBXAggregateTarget section */ + "LayoutOps::LayoutOpsPackageTests::ProductTarget" /* LayoutOpsPackageTests */ = { + isa = PBXAggregateTarget; + buildConfigurationList = OBJ_107 /* Build configuration list for PBXAggregateTarget "LayoutOpsPackageTests" */; + buildPhases = ( + ); + dependencies = ( + OBJ_110 /* PBXTargetDependency */, + ); + name = LayoutOpsPackageTests; + productName = LayoutOpsPackageTests; + }; +/* End PBXAggregateTarget section */ + +/* Begin PBXBuildFile section */ + OBJ_105 /* Package.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_6 /* Package.swift */; }; + OBJ_116 /* LayoutOpsTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_47 /* LayoutOpsTests.swift */; }; + OBJ_118 /* LayoutOps.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = "LayoutOps::LayoutOps::Product" /* LayoutOps.framework */; }; + OBJ_63 /* Accelerate.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_8 /* Accelerate.swift */; }; + OBJ_64 /* Anchor.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_9 /* Anchor.swift */; }; + OBJ_65 /* BaseTableViewPresentationAdapter.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_10 /* BaseTableViewPresentationAdapter.swift */; }; + OBJ_66 /* Basic.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_11 /* Basic.swift */; }; + OBJ_67 /* CALayer+LX.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_12 /* CALayer+LX.swift */; }; + OBJ_68 /* Follow.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_13 /* Follow.swift */; }; + OBJ_69 /* ImageNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_14 /* ImageNode.swift */; }; + OBJ_70 /* LX.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_15 /* LX.swift */; }; + OBJ_71 /* LabelNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_16 /* LabelNode.swift */; }; + OBJ_72 /* Layout.Align.Bottom.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_17 /* Layout.Align.Bottom.swift */; }; + OBJ_73 /* Layout.Align.End.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_18 /* Layout.Align.End.swift */; }; + OBJ_74 /* Layout.Align.Start.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_19 /* Layout.Align.Start.swift */; }; + OBJ_75 /* Layout.Align.Top.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_20 /* Layout.Align.Top.swift */; }; + OBJ_76 /* Layout.Attributes.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_21 /* Layout.Attributes.swift */; }; + OBJ_77 /* Layout.Center.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_22 /* Layout.Center.swift */; }; + OBJ_78 /* Layout.Fill.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_23 /* Layout.Fill.swift */; }; + OBJ_79 /* Layout.HCenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_24 /* Layout.HCenter.swift */; }; + OBJ_80 /* Layout.HFill.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_25 /* Layout.HFill.swift */; }; + OBJ_81 /* Layout.VCenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_26 /* Layout.VCenter.swift */; }; + OBJ_82 /* Layout.VFill.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_27 /* Layout.VFill.swift */; }; + OBJ_83 /* NSAttributedString+Size.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_28 /* NSAttributedString+Size.swift */; }; + OBJ_84 /* Node.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_29 /* Node.swift */; }; + OBJ_85 /* NodeTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_30 /* NodeTableViewCell.swift */; }; + OBJ_86 /* PresentationItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_31 /* PresentationItem.swift */; }; + OBJ_87 /* PresentationModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_32 /* PresentationModel.swift */; }; + OBJ_88 /* PresentationTableHeaderFooter.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_33 /* PresentationTableHeaderFooter.swift */; }; + OBJ_89 /* PresentationTableRow.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_34 /* PresentationTableRow.swift */; }; + OBJ_90 /* PutWrap.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_35 /* PutWrap.swift */; }; + OBJ_91 /* RootNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_36 /* RootNode.swift */; }; + OBJ_92 /* SizeToFit.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_37 /* SizeToFit.swift */; }; + OBJ_93 /* SwitchNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_38 /* SwitchNode.swift */; }; + OBJ_94 /* TableViewPresentationAdapter.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_39 /* TableViewPresentationAdapter.swift */; }; + OBJ_95 /* NSView+LX.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_41 /* NSView+LX.swift */; }; + OBJ_96 /* UIView+LX.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_42 /* UIView+LX.swift */; }; + OBJ_97 /* Utils.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_43 /* Utils.swift */; }; + OBJ_98 /* Viewport.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_44 /* Viewport.swift */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + C4D5FDD523FA533400E9ADBC /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = OBJ_1 /* Project object */; + proxyType = 1; + remoteGlobalIDString = "LayoutOps::LayoutOps"; + remoteInfo = LayoutOps; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXFileReference section */ + "LayoutOps::LayoutOps::Product" /* LayoutOps.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = LayoutOps.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + "LayoutOps::LayoutOpsTests::Product" /* LayoutOpsTests.xctest */ = {isa = PBXFileReference; lastKnownFileType = file; path = LayoutOpsTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; + OBJ_10 /* BaseTableViewPresentationAdapter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BaseTableViewPresentationAdapter.swift; sourceTree = ""; }; + OBJ_11 /* Basic.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Basic.swift; sourceTree = ""; }; + OBJ_12 /* CALayer+LX.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "CALayer+LX.swift"; sourceTree = ""; }; + OBJ_13 /* Follow.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Follow.swift; sourceTree = ""; }; + OBJ_14 /* ImageNode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ImageNode.swift; sourceTree = ""; }; + OBJ_15 /* LX.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LX.swift; sourceTree = ""; }; + OBJ_16 /* LabelNode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LabelNode.swift; sourceTree = ""; }; + OBJ_17 /* Layout.Align.Bottom.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Layout.Align.Bottom.swift; sourceTree = ""; }; + OBJ_18 /* Layout.Align.End.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Layout.Align.End.swift; sourceTree = ""; }; + OBJ_19 /* Layout.Align.Start.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Layout.Align.Start.swift; sourceTree = ""; }; + OBJ_20 /* Layout.Align.Top.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Layout.Align.Top.swift; sourceTree = ""; }; + OBJ_21 /* Layout.Attributes.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Layout.Attributes.swift; sourceTree = ""; }; + OBJ_22 /* Layout.Center.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Layout.Center.swift; sourceTree = ""; }; + OBJ_23 /* Layout.Fill.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Layout.Fill.swift; sourceTree = ""; }; + OBJ_24 /* Layout.HCenter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Layout.HCenter.swift; sourceTree = ""; }; + OBJ_25 /* Layout.HFill.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Layout.HFill.swift; sourceTree = ""; }; + OBJ_26 /* Layout.VCenter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Layout.VCenter.swift; sourceTree = ""; }; + OBJ_27 /* Layout.VFill.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Layout.VFill.swift; sourceTree = ""; }; + OBJ_28 /* NSAttributedString+Size.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "NSAttributedString+Size.swift"; sourceTree = ""; }; + OBJ_29 /* Node.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Node.swift; sourceTree = ""; }; + OBJ_30 /* NodeTableViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NodeTableViewCell.swift; sourceTree = ""; }; + OBJ_31 /* PresentationItem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PresentationItem.swift; sourceTree = ""; }; + OBJ_32 /* PresentationModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PresentationModel.swift; sourceTree = ""; }; + OBJ_33 /* PresentationTableHeaderFooter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PresentationTableHeaderFooter.swift; sourceTree = ""; }; + OBJ_34 /* PresentationTableRow.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PresentationTableRow.swift; sourceTree = ""; }; + OBJ_35 /* PutWrap.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PutWrap.swift; sourceTree = ""; }; + OBJ_36 /* RootNode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RootNode.swift; sourceTree = ""; }; + OBJ_37 /* SizeToFit.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SizeToFit.swift; sourceTree = ""; }; + OBJ_38 /* SwitchNode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SwitchNode.swift; sourceTree = ""; }; + OBJ_39 /* TableViewPresentationAdapter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TableViewPresentationAdapter.swift; sourceTree = ""; }; + OBJ_41 /* NSView+LX.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "NSView+LX.swift"; sourceTree = ""; }; + OBJ_42 /* UIView+LX.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UIView+LX.swift"; sourceTree = ""; }; + OBJ_43 /* Utils.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Utils.swift; sourceTree = ""; }; + OBJ_44 /* Viewport.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Viewport.swift; sourceTree = ""; }; + OBJ_47 /* LayoutOpsTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LayoutOpsTests.swift; sourceTree = ""; }; + OBJ_51 /* README */ = {isa = PBXFileReference; lastKnownFileType = folder; path = README; sourceTree = SOURCE_ROOT; }; + OBJ_52 /* LayoutOps-Universal */ = {isa = PBXFileReference; lastKnownFileType = folder; path = "LayoutOps-Universal"; sourceTree = SOURCE_ROOT; }; + OBJ_53 /* Configs */ = {isa = PBXFileReference; lastKnownFileType = folder; path = Configs; sourceTree = SOURCE_ROOT; }; + OBJ_54 /* Demos */ = {isa = PBXFileReference; lastKnownFileType = folder; path = Demos; sourceTree = SOURCE_ROOT; }; + OBJ_55 /* ExampleApp */ = {isa = PBXFileReference; lastKnownFileType = folder; path = ExampleApp; sourceTree = SOURCE_ROOT; }; + OBJ_56 /* LICENSE */ = {isa = PBXFileReference; lastKnownFileType = text; path = LICENSE; sourceTree = ""; }; + OBJ_57 /* README.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = README.md; sourceTree = ""; }; + OBJ_6 /* Package.swift */ = {isa = PBXFileReference; explicitFileType = sourcecode.swift; path = Package.swift; sourceTree = ""; }; + OBJ_8 /* Accelerate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Accelerate.swift; sourceTree = ""; }; + OBJ_9 /* Anchor.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Anchor.swift; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + OBJ_117 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 0; + files = ( + OBJ_118 /* LayoutOps.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + OBJ_99 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 0; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + OBJ_40 /* UIKit */ = { + isa = PBXGroup; + children = ( + OBJ_41 /* NSView+LX.swift */, + OBJ_42 /* UIView+LX.swift */, + ); + path = UIKit; + sourceTree = ""; + }; + OBJ_45 /* Tests */ = { + isa = PBXGroup; + children = ( + OBJ_46 /* LayoutOpsTests */, + ); + name = Tests; + sourceTree = SOURCE_ROOT; + }; + OBJ_46 /* LayoutOpsTests */ = { + isa = PBXGroup; + children = ( + OBJ_47 /* LayoutOpsTests.swift */, + ); + name = LayoutOpsTests; + path = Tests/LayoutOpsTests; + sourceTree = SOURCE_ROOT; + }; + OBJ_48 /* Products */ = { + isa = PBXGroup; + children = ( + "LayoutOps::LayoutOps::Product" /* LayoutOps.framework */, + "LayoutOps::LayoutOpsTests::Product" /* LayoutOpsTests.xctest */, + ); + name = Products; + sourceTree = BUILT_PRODUCTS_DIR; + }; + OBJ_5 /* */ = { + isa = PBXGroup; + children = ( + OBJ_6 /* Package.swift */, + OBJ_7 /* Sources */, + OBJ_45 /* Tests */, + OBJ_48 /* Products */, + OBJ_51 /* README */, + OBJ_52 /* LayoutOps-Universal */, + OBJ_53 /* Configs */, + OBJ_54 /* Demos */, + OBJ_55 /* ExampleApp */, + OBJ_56 /* LICENSE */, + OBJ_57 /* README.md */, + ); + name = ""; + sourceTree = ""; + }; + OBJ_7 /* Sources */ = { + isa = PBXGroup; + children = ( + OBJ_8 /* Accelerate.swift */, + OBJ_9 /* Anchor.swift */, + OBJ_10 /* BaseTableViewPresentationAdapter.swift */, + OBJ_11 /* Basic.swift */, + OBJ_12 /* CALayer+LX.swift */, + OBJ_13 /* Follow.swift */, + OBJ_14 /* ImageNode.swift */, + OBJ_15 /* LX.swift */, + OBJ_16 /* LabelNode.swift */, + OBJ_17 /* Layout.Align.Bottom.swift */, + OBJ_18 /* Layout.Align.End.swift */, + OBJ_19 /* Layout.Align.Start.swift */, + OBJ_20 /* Layout.Align.Top.swift */, + OBJ_21 /* Layout.Attributes.swift */, + OBJ_22 /* Layout.Center.swift */, + OBJ_23 /* Layout.Fill.swift */, + OBJ_24 /* Layout.HCenter.swift */, + OBJ_25 /* Layout.HFill.swift */, + OBJ_26 /* Layout.VCenter.swift */, + OBJ_27 /* Layout.VFill.swift */, + OBJ_28 /* NSAttributedString+Size.swift */, + OBJ_29 /* Node.swift */, + OBJ_30 /* NodeTableViewCell.swift */, + OBJ_31 /* PresentationItem.swift */, + OBJ_32 /* PresentationModel.swift */, + OBJ_33 /* PresentationTableHeaderFooter.swift */, + OBJ_34 /* PresentationTableRow.swift */, + OBJ_35 /* PutWrap.swift */, + OBJ_36 /* RootNode.swift */, + OBJ_37 /* SizeToFit.swift */, + OBJ_38 /* SwitchNode.swift */, + OBJ_39 /* TableViewPresentationAdapter.swift */, + OBJ_40 /* UIKit */, + OBJ_43 /* Utils.swift */, + OBJ_44 /* Viewport.swift */, + ); + path = Sources; + sourceTree = SOURCE_ROOT; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + "LayoutOps::LayoutOps" /* LayoutOps */ = { + isa = PBXNativeTarget; + buildConfigurationList = OBJ_59 /* Build configuration list for PBXNativeTarget "LayoutOps" */; + buildPhases = ( + OBJ_62 /* Sources */, + OBJ_99 /* Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = LayoutOps; + productName = LayoutOps; + productReference = "LayoutOps::LayoutOps::Product" /* LayoutOps.framework */; + productType = "com.apple.product-type.framework"; + }; + "LayoutOps::LayoutOpsTests" /* LayoutOpsTests */ = { + isa = PBXNativeTarget; + buildConfigurationList = OBJ_112 /* Build configuration list for PBXNativeTarget "LayoutOpsTests" */; + buildPhases = ( + OBJ_115 /* Sources */, + OBJ_117 /* Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + OBJ_119 /* PBXTargetDependency */, + ); + name = LayoutOpsTests; + productName = LayoutOpsTests; + productReference = "LayoutOps::LayoutOpsTests::Product" /* LayoutOpsTests.xctest */; + productType = "com.apple.product-type.bundle.unit-test"; + }; + "LayoutOps::SwiftPMPackageDescription" /* LayoutOpsPackageDescription */ = { + isa = PBXNativeTarget; + buildConfigurationList = OBJ_101 /* Build configuration list for PBXNativeTarget "LayoutOpsPackageDescription" */; + buildPhases = ( + OBJ_104 /* Sources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = LayoutOpsPackageDescription; + productName = LayoutOpsPackageDescription; + productType = "com.apple.product-type.framework"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + OBJ_1 /* Project object */ = { + isa = PBXProject; + attributes = { + LastSwiftMigration = 9999; + LastUpgradeCheck = 9999; + }; + buildConfigurationList = OBJ_2 /* Build configuration list for PBXProject "LayoutOps" */; + compatibilityVersion = "Xcode 3.2"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + ); + mainGroup = OBJ_5 /* */; + productRefGroup = OBJ_48 /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + "LayoutOps::LayoutOps" /* LayoutOps */, + "LayoutOps::SwiftPMPackageDescription" /* LayoutOpsPackageDescription */, + "LayoutOps::LayoutOpsPackageTests::ProductTarget" /* LayoutOpsPackageTests */, + "LayoutOps::LayoutOpsTests" /* LayoutOpsTests */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXSourcesBuildPhase section */ + OBJ_104 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 0; + files = ( + OBJ_105 /* Package.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + OBJ_115 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 0; + files = ( + OBJ_116 /* LayoutOpsTests.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + OBJ_62 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 0; + files = ( + OBJ_63 /* Accelerate.swift in Sources */, + OBJ_64 /* Anchor.swift in Sources */, + OBJ_65 /* BaseTableViewPresentationAdapter.swift in Sources */, + OBJ_66 /* Basic.swift in Sources */, + OBJ_67 /* CALayer+LX.swift in Sources */, + OBJ_68 /* Follow.swift in Sources */, + OBJ_69 /* ImageNode.swift in Sources */, + OBJ_70 /* LX.swift in Sources */, + OBJ_71 /* LabelNode.swift in Sources */, + OBJ_72 /* Layout.Align.Bottom.swift in Sources */, + OBJ_73 /* Layout.Align.End.swift in Sources */, + OBJ_74 /* Layout.Align.Start.swift in Sources */, + OBJ_75 /* Layout.Align.Top.swift in Sources */, + OBJ_76 /* Layout.Attributes.swift in Sources */, + OBJ_77 /* Layout.Center.swift in Sources */, + OBJ_78 /* Layout.Fill.swift in Sources */, + OBJ_79 /* Layout.HCenter.swift in Sources */, + OBJ_80 /* Layout.HFill.swift in Sources */, + OBJ_81 /* Layout.VCenter.swift in Sources */, + OBJ_82 /* Layout.VFill.swift in Sources */, + OBJ_83 /* NSAttributedString+Size.swift in Sources */, + OBJ_84 /* Node.swift in Sources */, + OBJ_85 /* NodeTableViewCell.swift in Sources */, + OBJ_86 /* PresentationItem.swift in Sources */, + OBJ_87 /* PresentationModel.swift in Sources */, + OBJ_88 /* PresentationTableHeaderFooter.swift in Sources */, + OBJ_89 /* PresentationTableRow.swift in Sources */, + OBJ_90 /* PutWrap.swift in Sources */, + OBJ_91 /* RootNode.swift in Sources */, + OBJ_92 /* SizeToFit.swift in Sources */, + OBJ_93 /* SwitchNode.swift in Sources */, + OBJ_94 /* TableViewPresentationAdapter.swift in Sources */, + OBJ_95 /* NSView+LX.swift in Sources */, + OBJ_96 /* UIView+LX.swift in Sources */, + OBJ_97 /* Utils.swift in Sources */, + OBJ_98 /* Viewport.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXTargetDependency section */ + OBJ_110 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = "LayoutOps::LayoutOpsTests" /* LayoutOpsTests */; + targetProxy = "LayoutOps::LayoutOpsTests" /* LayoutOpsTests */; + }; + OBJ_119 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = "LayoutOps::LayoutOps" /* LayoutOps */; + targetProxy = C4D5FDD523FA533400E9ADBC /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin XCBuildConfiguration section */ + OBJ_102 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + LD = /usr/bin/true; + MACH_O_TYPE = staticlib; + OTHER_SWIFT_FLAGS = "-swift-version 5 -I $(TOOLCHAIN_DIR)/usr/lib/swift/pm/4_2 -target x86_64-apple-macosx10.10 -sdk /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk -package-description-version 5.1"; + SWIFT_VERSION = 5.0; + }; + name = Debug; + }; + OBJ_103 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + LD = /usr/bin/true; + MACH_O_TYPE = staticlib; + OTHER_SWIFT_FLAGS = "-swift-version 5 -I $(TOOLCHAIN_DIR)/usr/lib/swift/pm/4_2 -target x86_64-apple-macosx10.10 -sdk /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk -package-description-version 5.1"; + SWIFT_VERSION = 5.0; + }; + name = Release; + }; + OBJ_108 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + }; + name = Debug; + }; + OBJ_109 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + }; + name = Release; + }; + OBJ_113 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_ENABLE_MODULES = YES; + EMBEDDED_CONTENT_CONTAINS_SWIFT = YES; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PLATFORM_DIR)/Developer/Library/Frameworks", + ); + HEADER_SEARCH_PATHS = "$(inherited)"; + INFOPLIST_FILE = LayoutOps.xcodeproj/LayoutOpsTests_Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @loader_path/../Frameworks @loader_path/Frameworks"; + MACOSX_DEPLOYMENT_TARGET = 10.10; + OTHER_CFLAGS = "$(inherited)"; + OTHER_LDFLAGS = "$(inherited)"; + OTHER_SWIFT_FLAGS = "$(inherited)"; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited)"; + SWIFT_VERSION = 5.0; + TARGET_NAME = LayoutOpsTests; + TVOS_DEPLOYMENT_TARGET = 9.0; + WATCHOS_DEPLOYMENT_TARGET = 2.0; + }; + name = Debug; + }; + OBJ_114 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_ENABLE_MODULES = YES; + EMBEDDED_CONTENT_CONTAINS_SWIFT = YES; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PLATFORM_DIR)/Developer/Library/Frameworks", + ); + HEADER_SEARCH_PATHS = "$(inherited)"; + INFOPLIST_FILE = LayoutOps.xcodeproj/LayoutOpsTests_Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @loader_path/../Frameworks @loader_path/Frameworks"; + MACOSX_DEPLOYMENT_TARGET = 10.10; + OTHER_CFLAGS = "$(inherited)"; + OTHER_LDFLAGS = "$(inherited)"; + OTHER_SWIFT_FLAGS = "$(inherited)"; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited)"; + SWIFT_VERSION = 5.0; + TARGET_NAME = LayoutOpsTests; + TVOS_DEPLOYMENT_TARGET = 9.0; + WATCHOS_DEPLOYMENT_TARGET = 2.0; + }; + name = Release; + }; + OBJ_3 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_ENABLE_OBJC_ARC = YES; + COMBINE_HIDPI_IMAGES = YES; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = dwarf; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + ENABLE_NS_ASSERTIONS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "$(inherited)", + "SWIFT_PACKAGE=1", + "DEBUG=1", + ); + MACOSX_DEPLOYMENT_TARGET = 10.10; + ONLY_ACTIVE_ARCH = YES; + OTHER_SWIFT_FLAGS = "$(inherited) -DXcode"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = macosx; + SUPPORTED_PLATFORMS = "macosx iphoneos iphonesimulator appletvos appletvsimulator watchos watchsimulator"; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) SWIFT_PACKAGE DEBUG"; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + USE_HEADERMAP = NO; + }; + name = Debug; + }; + OBJ_4 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_ENABLE_OBJC_ARC = YES; + COMBINE_HIDPI_IMAGES = YES; + COPY_PHASE_STRIP = YES; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + GCC_OPTIMIZATION_LEVEL = s; + GCC_PREPROCESSOR_DEFINITIONS = ( + "$(inherited)", + "SWIFT_PACKAGE=1", + ); + MACOSX_DEPLOYMENT_TARGET = 10.10; + OTHER_SWIFT_FLAGS = "$(inherited) -DXcode"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = macosx; + SUPPORTED_PLATFORMS = "macosx iphoneos iphonesimulator appletvos appletvsimulator watchos watchsimulator"; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) SWIFT_PACKAGE"; + SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; + USE_HEADERMAP = NO; + }; + name = Release; + }; + OBJ_60 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ENABLE_TESTABILITY = YES; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PLATFORM_DIR)/Developer/Library/Frameworks", + ); + HEADER_SEARCH_PATHS = "$(inherited)"; + INFOPLIST_FILE = LayoutOps.xcodeproj/LayoutOps_Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) $(TOOLCHAIN_DIR)/usr/lib/swift/macosx"; + MACH_O_TYPE = staticlib; + MACOSX_DEPLOYMENT_TARGET = 10.10; + OTHER_CFLAGS = "$(inherited)"; + OTHER_LDFLAGS = "$(inherited)"; + OTHER_SWIFT_FLAGS = "$(inherited)"; + PRODUCT_BUNDLE_IDENTIFIER = LayoutOps; + PRODUCT_MODULE_NAME = "$(TARGET_NAME:c99extidentifier)"; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + SKIP_INSTALL = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited)"; + SWIFT_VERSION = 5.0; + TARGET_NAME = LayoutOps; + TVOS_DEPLOYMENT_TARGET = 9.0; + WATCHOS_DEPLOYMENT_TARGET = 2.0; + }; + name = Debug; + }; + OBJ_61 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ENABLE_TESTABILITY = YES; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PLATFORM_DIR)/Developer/Library/Frameworks", + ); + HEADER_SEARCH_PATHS = "$(inherited)"; + INFOPLIST_FILE = LayoutOps.xcodeproj/LayoutOps_Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) $(TOOLCHAIN_DIR)/usr/lib/swift/macosx"; + MACH_O_TYPE = staticlib; + MACOSX_DEPLOYMENT_TARGET = 10.10; + OTHER_CFLAGS = "$(inherited)"; + OTHER_LDFLAGS = "$(inherited)"; + OTHER_SWIFT_FLAGS = "$(inherited)"; + PRODUCT_BUNDLE_IDENTIFIER = LayoutOps; + PRODUCT_MODULE_NAME = "$(TARGET_NAME:c99extidentifier)"; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + SKIP_INSTALL = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited)"; + SWIFT_VERSION = 5.0; + TARGET_NAME = LayoutOps; + TVOS_DEPLOYMENT_TARGET = 9.0; + WATCHOS_DEPLOYMENT_TARGET = 2.0; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + OBJ_101 /* Build configuration list for PBXNativeTarget "LayoutOpsPackageDescription" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + OBJ_102 /* Debug */, + OBJ_103 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + OBJ_107 /* Build configuration list for PBXAggregateTarget "LayoutOpsPackageTests" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + OBJ_108 /* Debug */, + OBJ_109 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + OBJ_112 /* Build configuration list for PBXNativeTarget "LayoutOpsTests" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + OBJ_113 /* Debug */, + OBJ_114 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + OBJ_2 /* Build configuration list for PBXProject "LayoutOps" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + OBJ_3 /* Debug */, + OBJ_4 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + OBJ_59 /* Build configuration list for PBXNativeTarget "LayoutOps" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + OBJ_60 /* Debug */, + OBJ_61 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = OBJ_1 /* Project object */; } diff --git a/LayoutOps.xcodeproj/xcshareddata/xcschemes/LayoutOps.xcscheme b/LayoutOps.xcodeproj/xcshareddata/xcschemes/LayoutOps.xcscheme new file mode 100644 index 0000000..7145f0a --- /dev/null +++ b/LayoutOps.xcodeproj/xcshareddata/xcschemes/LayoutOps.xcscheme @@ -0,0 +1,67 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + +