diff --git a/Gluon.xcodeproj/project.pbxproj b/Gluon.xcodeproj/project.pbxproj index 6dfec0a6..c54ba52c 100644 --- a/Gluon.xcodeproj/project.pbxproj +++ b/Gluon.xcodeproj/project.pbxproj @@ -1,1123 +1,837 @@ // !$*UTF8*$! { - archiveVersion = "1"; - objectVersion = "46"; - objects = { - "Gluon::Gluon" = { - isa = "PBXNativeTarget"; - buildConfigurationList = "OBJ_51"; - buildPhases = ( - "OBJ_54", - "OBJ_73" - ); - dependencies = ( - ); - name = "Gluon"; - productName = "Gluon"; - productReference = "Gluon::Gluon::Product"; - productType = "com.apple.product-type.framework"; - }; - "Gluon::Gluon::Product" = { - isa = "PBXFileReference"; - path = "Gluon.framework"; - sourceTree = "BUILT_PRODUCTS_DIR"; - }; - "Gluon::GluonPackageTests::ProductTarget" = { - isa = "PBXAggregateTarget"; - buildConfigurationList = "OBJ_81"; - buildPhases = ( - ); - dependencies = ( - "OBJ_84" - ); - name = "GluonPackageTests"; - productName = "GluonPackageTests"; - }; - "Gluon::GluonTestRenderer" = { - isa = "PBXNativeTarget"; - buildConfigurationList = "OBJ_87"; - buildPhases = ( - "OBJ_90", - "OBJ_92" - ); - dependencies = ( - "OBJ_94" - ); - name = "GluonTestRenderer"; - productName = "GluonTestRenderer"; - productReference = "Gluon::GluonTestRenderer::Product"; - productType = "com.apple.product-type.framework"; - }; - "Gluon::GluonTestRenderer::Product" = { - isa = "PBXFileReference"; - path = "GluonTestRenderer.framework"; - sourceTree = "BUILT_PRODUCTS_DIR"; - }; - "Gluon::GluonTests" = { - isa = "PBXNativeTarget"; - buildConfigurationList = "OBJ_95"; - buildPhases = ( - "OBJ_98", - "OBJ_101" - ); - dependencies = ( - "OBJ_104", - "OBJ_105" - ); - name = "GluonTests"; - productName = "GluonTests"; - productReference = "Gluon::GluonTests::Product"; - productType = "com.apple.product-type.bundle.unit-test"; - }; - "Gluon::GluonTests::Product" = { - isa = "PBXFileReference"; - path = "GluonTests.xctest"; - sourceTree = "BUILT_PRODUCTS_DIR"; - }; - "Gluon::GluonUIKit" = { - isa = "PBXNativeTarget"; - buildConfigurationList = "OBJ_107"; - buildPhases = ( - "OBJ_110", - "OBJ_119" - ); - dependencies = ( - "OBJ_121" - ); - name = "GluonUIKit"; - productName = "GluonUIKit"; - productReference = "Gluon::GluonUIKit::Product"; - productType = "com.apple.product-type.framework"; - }; - "Gluon::GluonUIKit::Product" = { - isa = "PBXFileReference"; - path = "GluonUIKit.framework"; - sourceTree = "BUILT_PRODUCTS_DIR"; - }; - "Gluon::SwiftPMPackageDescription" = { - isa = "PBXNativeTarget"; - buildConfigurationList = "OBJ_75"; - buildPhases = ( - "OBJ_78" - ); - dependencies = ( - ); - name = "GluonPackageDescription"; - productName = "GluonPackageDescription"; - productType = "com.apple.product-type.framework"; - }; - "OBJ_1" = { - isa = "PBXProject"; - attributes = { - LastUpgradeCheck = "9999"; - }; - buildConfigurationList = "OBJ_2"; - compatibilityVersion = "Xcode 3.2"; - developmentRegion = "English"; - hasScannedForEncodings = "0"; - knownRegions = ( - "en" - ); - mainGroup = "OBJ_5"; - productRefGroup = "OBJ_45"; - projectDirPath = "."; - targets = ( - "Gluon::Gluon", - "Gluon::SwiftPMPackageDescription", - "Gluon::GluonPackageTests::ProductTarget", - "Gluon::GluonTestRenderer", - "Gluon::GluonTests", - "Gluon::GluonUIKit" - ); - }; - "OBJ_10" = { - isa = "PBXFileReference"; - path = "Color.swift"; - sourceTree = ""; - }; - "OBJ_100" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_43"; - }; - "OBJ_101" = { - isa = "PBXFrameworksBuildPhase"; - files = ( - "OBJ_102", - "OBJ_103" - ); - }; - "OBJ_102" = { - isa = "PBXBuildFile"; - fileRef = "Gluon::GluonTestRenderer::Product"; - }; - "OBJ_103" = { - isa = "PBXBuildFile"; - fileRef = "Gluon::Gluon::Product"; - }; - "OBJ_104" = { - isa = "PBXTargetDependency"; - target = "Gluon::GluonTestRenderer"; - }; - "OBJ_105" = { - isa = "PBXTargetDependency"; - target = "Gluon::Gluon"; - }; - "OBJ_107" = { - isa = "XCConfigurationList"; - buildConfigurations = ( - "OBJ_108", - "OBJ_109" - ); - defaultConfigurationIsVisible = "0"; - defaultConfigurationName = "Release"; - }; - "OBJ_108" = { - isa = "XCBuildConfiguration"; - buildSettings = { - ENABLE_TESTABILITY = "YES"; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(PLATFORM_DIR)/Developer/Library/Frameworks" - ); - HEADER_SEARCH_PATHS = ( - "$(inherited)" - ); - INFOPLIST_FILE = "Gluon.xcodeproj/GluonUIKit_Info.plist"; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "$(TOOLCHAIN_DIR)/usr/lib/swift/macosx" - ); - OTHER_CFLAGS = ( - "$(inherited)" - ); - OTHER_LDFLAGS = ( - "$(inherited)" - ); - OTHER_SWIFT_FLAGS = ( - "$(inherited)" - ); - PRODUCT_BUNDLE_IDENTIFIER = "GluonUIKit"; - PRODUCT_MODULE_NAME = "$(TARGET_NAME:c99extidentifier)"; - PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; - SKIP_INSTALL = "YES"; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = ( - "$(inherited)" - ); - SWIFT_VERSION = "4.2"; - TARGET_NAME = "GluonUIKit"; - }; - name = "Debug"; - }; - "OBJ_109" = { - isa = "XCBuildConfiguration"; - buildSettings = { - ENABLE_TESTABILITY = "YES"; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(PLATFORM_DIR)/Developer/Library/Frameworks" - ); - HEADER_SEARCH_PATHS = ( - "$(inherited)" - ); - INFOPLIST_FILE = "Gluon.xcodeproj/GluonUIKit_Info.plist"; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "$(TOOLCHAIN_DIR)/usr/lib/swift/macosx" - ); - OTHER_CFLAGS = ( - "$(inherited)" - ); - OTHER_LDFLAGS = ( - "$(inherited)" - ); - OTHER_SWIFT_FLAGS = ( - "$(inherited)" - ); - PRODUCT_BUNDLE_IDENTIFIER = "GluonUIKit"; - PRODUCT_MODULE_NAME = "$(TARGET_NAME:c99extidentifier)"; - PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; - SKIP_INSTALL = "YES"; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = ( - "$(inherited)" - ); - SWIFT_VERSION = "4.2"; - TARGET_NAME = "GluonUIKit"; - }; - name = "Release"; - }; - "OBJ_11" = { - isa = "PBXGroup"; - children = ( - "OBJ_12", - "OBJ_13", - "OBJ_14" - ); - name = "ComponentWrapper"; - path = "ComponentWrapper"; - sourceTree = ""; - }; - "OBJ_110" = { - isa = "PBXSourcesBuildPhase"; - files = ( - "OBJ_111", - "OBJ_112", - "OBJ_113", - "OBJ_114", - "OBJ_115", - "OBJ_116", - "OBJ_117", - "OBJ_118" - ); - }; - "OBJ_111" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_29"; - }; - "OBJ_112" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_31"; - }; - "OBJ_113" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_32"; - }; - "OBJ_114" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_33"; - }; - "OBJ_115" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_34"; - }; - "OBJ_116" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_35"; - }; - "OBJ_117" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_36"; - }; - "OBJ_118" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_37"; - }; - "OBJ_119" = { - isa = "PBXFrameworksBuildPhase"; - files = ( - "OBJ_120" - ); - }; - "OBJ_12" = { - isa = "PBXFileReference"; - path = "ComponentWrapper.swift"; - sourceTree = ""; - }; - "OBJ_120" = { - isa = "PBXBuildFile"; - fileRef = "Gluon::Gluon::Product"; - }; - "OBJ_121" = { - isa = "PBXTargetDependency"; - target = "Gluon::Gluon"; - }; - "OBJ_13" = { - isa = "PBXFileReference"; - path = "CompositeComponentWrapper.swift"; - sourceTree = ""; - }; - "OBJ_14" = { - isa = "PBXFileReference"; - path = "HostComponentWrapper.swift"; - sourceTree = ""; - }; - "OBJ_15" = { - isa = "PBXFileReference"; - path = "Default.swift"; - sourceTree = ""; - }; - "OBJ_16" = { - isa = "PBXFileReference"; - path = "Diffable.swift"; - sourceTree = ""; - }; - "OBJ_17" = { - isa = "PBXFileReference"; - path = "Event.swift"; - sourceTree = ""; - }; - "OBJ_18" = { - isa = "PBXFileReference"; - path = "Hooks.swift"; - sourceTree = ""; - }; - "OBJ_19" = { - isa = "PBXFileReference"; - path = "Layout.swift"; - sourceTree = ""; - }; - "OBJ_2" = { - isa = "XCConfigurationList"; - buildConfigurations = ( - "OBJ_3", - "OBJ_4" - ); - defaultConfigurationIsVisible = "0"; - defaultConfigurationName = "Release"; - }; - "OBJ_20" = { - isa = "PBXFileReference"; - path = "Node.swift"; - sourceTree = ""; - }; - "OBJ_21" = { - isa = "PBXFileReference"; - path = "Null.swift"; - sourceTree = ""; - }; - "OBJ_22" = { - isa = "PBXFileReference"; - path = "Renderer.swift"; - sourceTree = ""; - }; - "OBJ_23" = { - isa = "PBXFileReference"; - path = "StackReconciler.swift"; - sourceTree = ""; - }; - "OBJ_24" = { - isa = "PBXFileReference"; - path = "Store.swift"; - sourceTree = ""; - }; - "OBJ_25" = { - isa = "PBXFileReference"; - path = "Structs.swift"; - sourceTree = ""; - }; - "OBJ_26" = { - isa = "PBXFileReference"; - path = "Unique.swift"; - sourceTree = ""; - }; - "OBJ_27" = { - isa = "PBXFileReference"; - path = "VersionedArray.swift"; - sourceTree = ""; - }; - "OBJ_28" = { - isa = "PBXGroup"; - children = ( - "OBJ_29", - "OBJ_30", - "OBJ_34", - "OBJ_35", - "OBJ_36", - "OBJ_37" - ); - name = "GluonUIKit"; - path = "Sources/GluonUIKit"; - sourceTree = "SOURCE_ROOT"; - }; - "OBJ_29" = { - isa = "PBXFileReference"; - path = "ActionTarget.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 = ( - "DEBUG=1", - "$(inherited)" - ); - MACOSX_DEPLOYMENT_TARGET = "10.10"; - ONLY_ACTIVE_ARCH = "YES"; - OTHER_SWIFT_FLAGS = ( - "-DXcode" - ); - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = "macosx"; - SUPPORTED_PLATFORMS = ( - "macosx", - "iphoneos", - "iphonesimulator", - "appletvos", - "appletvsimulator", - "watchos", - "watchsimulator" - ); - SWIFT_ACTIVE_COMPILATION_CONDITIONS = ( - "SWIFT_PACKAGE", - "DEBUG" - ); - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - USE_HEADERMAP = "NO"; - }; - name = "Debug"; - }; - "OBJ_30" = { - isa = "PBXGroup"; - children = ( - "OBJ_31", - "OBJ_32", - "OBJ_33" - ); - name = "HostComponents"; - path = "HostComponents"; - sourceTree = ""; - }; - "OBJ_31" = { - isa = "PBXFileReference"; - path = "Button.swift"; - sourceTree = ""; - }; - "OBJ_32" = { - isa = "PBXFileReference"; - path = "Label.swift"; - sourceTree = ""; - }; - "OBJ_33" = { - isa = "PBXFileReference"; - path = "StackView.swift"; - sourceTree = ""; - }; - "OBJ_34" = { - isa = "PBXFileReference"; - path = "UIColor.swift"; - sourceTree = ""; - }; - "OBJ_35" = { - isa = "PBXFileReference"; - path = "UIKitControlComponent.swift"; - sourceTree = ""; - }; - "OBJ_36" = { - isa = "PBXFileReference"; - path = "UIKitRenderer.swift"; - sourceTree = ""; - }; - "OBJ_37" = { - isa = "PBXFileReference"; - path = "UIKitViewComponent.swift"; - sourceTree = ""; - }; - "OBJ_38" = { - isa = "PBXGroup"; - children = ( - "OBJ_39" - ); - name = "GluonTestRenderer"; - path = "Sources/GluonTestRenderer"; - sourceTree = "SOURCE_ROOT"; - }; - "OBJ_39" = { - isa = "PBXFileReference"; - path = "TestView.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"; - MACOSX_DEPLOYMENT_TARGET = "10.10"; - OTHER_SWIFT_FLAGS = ( - "-DXcode" - ); - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = "macosx"; - SUPPORTED_PLATFORMS = ( - "macosx", - "iphoneos", - "iphonesimulator", - "appletvos", - "appletvsimulator", - "watchos", - "watchsimulator" - ); - SWIFT_ACTIVE_COMPILATION_CONDITIONS = ( - "SWIFT_PACKAGE" - ); - SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; - USE_HEADERMAP = "NO"; - }; - name = "Release"; - }; - "OBJ_40" = { - isa = "PBXGroup"; - children = ( - "OBJ_41" - ); - name = "Tests"; - path = ""; - sourceTree = "SOURCE_ROOT"; - }; - "OBJ_41" = { - isa = "PBXGroup"; - children = ( - "OBJ_42", - "OBJ_43" - ); - name = "GluonTests"; - path = "Tests/GluonTests"; - sourceTree = "SOURCE_ROOT"; - }; - "OBJ_42" = { - isa = "PBXFileReference"; - path = "GluonTests.swift"; - sourceTree = ""; - }; - "OBJ_43" = { - isa = "PBXFileReference"; - path = "XCTestManifests.swift"; - sourceTree = ""; - }; - "OBJ_44" = { - isa = "PBXFileReference"; - path = "Example"; - sourceTree = "SOURCE_ROOT"; - }; - "OBJ_45" = { - isa = "PBXGroup"; - children = ( - "Gluon::GluonTests::Product", - "Gluon::Gluon::Product", - "Gluon::GluonUIKit::Product", - "Gluon::GluonTestRenderer::Product" - ); - name = "Products"; - path = ""; - sourceTree = "BUILT_PRODUCTS_DIR"; - }; - "OBJ_5" = { - isa = "PBXGroup"; - children = ( - "OBJ_6", - "OBJ_7", - "OBJ_40", - "OBJ_44", - "OBJ_45" - ); - path = ""; - sourceTree = ""; - }; - "OBJ_51" = { - isa = "XCConfigurationList"; - buildConfigurations = ( - "OBJ_52", - "OBJ_53" - ); - defaultConfigurationIsVisible = "0"; - defaultConfigurationName = "Release"; - }; - "OBJ_52" = { - isa = "XCBuildConfiguration"; - buildSettings = { - ENABLE_TESTABILITY = "YES"; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(PLATFORM_DIR)/Developer/Library/Frameworks" - ); - HEADER_SEARCH_PATHS = ( - "$(inherited)" - ); - INFOPLIST_FILE = "Gluon.xcodeproj/Gluon_Info.plist"; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "$(TOOLCHAIN_DIR)/usr/lib/swift/macosx" - ); - OTHER_CFLAGS = ( - "$(inherited)" - ); - OTHER_LDFLAGS = ( - "$(inherited)" - ); - OTHER_SWIFT_FLAGS = ( - "$(inherited)" - ); - PRODUCT_BUNDLE_IDENTIFIER = "Gluon"; - PRODUCT_MODULE_NAME = "$(TARGET_NAME:c99extidentifier)"; - PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; - SKIP_INSTALL = "YES"; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = ( - "$(inherited)" - ); - SWIFT_VERSION = "4.2"; - TARGET_NAME = "Gluon"; - }; - name = "Debug"; - }; - "OBJ_53" = { - isa = "XCBuildConfiguration"; - buildSettings = { - ENABLE_TESTABILITY = "YES"; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(PLATFORM_DIR)/Developer/Library/Frameworks" - ); - HEADER_SEARCH_PATHS = ( - "$(inherited)" - ); - INFOPLIST_FILE = "Gluon.xcodeproj/Gluon_Info.plist"; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "$(TOOLCHAIN_DIR)/usr/lib/swift/macosx" - ); - OTHER_CFLAGS = ( - "$(inherited)" - ); - OTHER_LDFLAGS = ( - "$(inherited)" - ); - OTHER_SWIFT_FLAGS = ( - "$(inherited)" - ); - PRODUCT_BUNDLE_IDENTIFIER = "Gluon"; - PRODUCT_MODULE_NAME = "$(TARGET_NAME:c99extidentifier)"; - PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; - SKIP_INSTALL = "YES"; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = ( - "$(inherited)" - ); - SWIFT_VERSION = "4.2"; - TARGET_NAME = "Gluon"; - }; - name = "Release"; - }; - "OBJ_54" = { - isa = "PBXSourcesBuildPhase"; - files = ( - "OBJ_55", - "OBJ_56", - "OBJ_57", - "OBJ_58", - "OBJ_59", - "OBJ_60", - "OBJ_61", - "OBJ_62", - "OBJ_63", - "OBJ_64", - "OBJ_65", - "OBJ_66", - "OBJ_67", - "OBJ_68", - "OBJ_69", - "OBJ_70", - "OBJ_71", - "OBJ_72" - ); - }; - "OBJ_55" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_9"; - }; - "OBJ_56" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_10"; - }; - "OBJ_57" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_12"; - }; - "OBJ_58" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_13"; - }; - "OBJ_59" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_14"; - }; - "OBJ_6" = { - isa = "PBXFileReference"; - explicitFileType = "sourcecode.swift"; - path = "Package.swift"; - sourceTree = ""; - }; - "OBJ_60" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_15"; - }; - "OBJ_61" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_16"; - }; - "OBJ_62" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_17"; - }; - "OBJ_63" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_18"; - }; - "OBJ_64" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_19"; - }; - "OBJ_65" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_20"; - }; - "OBJ_66" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_21"; - }; - "OBJ_67" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_22"; - }; - "OBJ_68" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_23"; - }; - "OBJ_69" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_24"; - }; - "OBJ_7" = { - isa = "PBXGroup"; - children = ( - "OBJ_8", - "OBJ_28", - "OBJ_38" - ); - name = "Sources"; - path = ""; - sourceTree = "SOURCE_ROOT"; - }; - "OBJ_70" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_25"; - }; - "OBJ_71" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_26"; - }; - "OBJ_72" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_27"; - }; - "OBJ_73" = { - isa = "PBXFrameworksBuildPhase"; - files = ( - ); - }; - "OBJ_75" = { - isa = "XCConfigurationList"; - buildConfigurations = ( - "OBJ_76", - "OBJ_77" - ); - defaultConfigurationIsVisible = "0"; - defaultConfigurationName = "Release"; - }; - "OBJ_76" = { - isa = "XCBuildConfiguration"; - buildSettings = { - LD = "/usr/bin/true"; - OTHER_SWIFT_FLAGS = ( - "-swift-version", - "4.2", - "-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.14.sdk" - ); - SWIFT_VERSION = "4.2"; - }; - name = "Debug"; - }; - "OBJ_77" = { - isa = "XCBuildConfiguration"; - buildSettings = { - LD = "/usr/bin/true"; - OTHER_SWIFT_FLAGS = ( - "-swift-version", - "4.2", - "-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.14.sdk" - ); - SWIFT_VERSION = "4.2"; - }; - name = "Release"; - }; - "OBJ_78" = { - isa = "PBXSourcesBuildPhase"; - files = ( - "OBJ_79" - ); - }; - "OBJ_79" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_6"; - }; - "OBJ_8" = { - isa = "PBXGroup"; - children = ( - "OBJ_9", - "OBJ_10", - "OBJ_11", - "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" - ); - name = "Gluon"; - path = "Sources/Gluon"; - sourceTree = "SOURCE_ROOT"; - }; - "OBJ_81" = { - isa = "XCConfigurationList"; - buildConfigurations = ( - "OBJ_82", - "OBJ_83" - ); - defaultConfigurationIsVisible = "0"; - defaultConfigurationName = "Release"; - }; - "OBJ_82" = { - isa = "XCBuildConfiguration"; - buildSettings = { - }; - name = "Debug"; - }; - "OBJ_83" = { - isa = "XCBuildConfiguration"; - buildSettings = { - }; - name = "Release"; - }; - "OBJ_84" = { - isa = "PBXTargetDependency"; - target = "Gluon::GluonTests"; - }; - "OBJ_87" = { - isa = "XCConfigurationList"; - buildConfigurations = ( - "OBJ_88", - "OBJ_89" - ); - defaultConfigurationIsVisible = "0"; - defaultConfigurationName = "Release"; - }; - "OBJ_88" = { - isa = "XCBuildConfiguration"; - buildSettings = { - ENABLE_TESTABILITY = "YES"; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(PLATFORM_DIR)/Developer/Library/Frameworks" - ); - HEADER_SEARCH_PATHS = ( - "$(inherited)" - ); - INFOPLIST_FILE = "Gluon.xcodeproj/GluonTestRenderer_Info.plist"; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "$(TOOLCHAIN_DIR)/usr/lib/swift/macosx" - ); - OTHER_CFLAGS = ( - "$(inherited)" - ); - OTHER_LDFLAGS = ( - "$(inherited)" - ); - OTHER_SWIFT_FLAGS = ( - "$(inherited)" - ); - PRODUCT_BUNDLE_IDENTIFIER = "GluonTestRenderer"; - PRODUCT_MODULE_NAME = "$(TARGET_NAME:c99extidentifier)"; - PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; - SKIP_INSTALL = "YES"; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = ( - "$(inherited)" - ); - SWIFT_VERSION = "4.2"; - TARGET_NAME = "GluonTestRenderer"; - }; - name = "Debug"; - }; - "OBJ_89" = { - isa = "XCBuildConfiguration"; - buildSettings = { - ENABLE_TESTABILITY = "YES"; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(PLATFORM_DIR)/Developer/Library/Frameworks" - ); - HEADER_SEARCH_PATHS = ( - "$(inherited)" - ); - INFOPLIST_FILE = "Gluon.xcodeproj/GluonTestRenderer_Info.plist"; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "$(TOOLCHAIN_DIR)/usr/lib/swift/macosx" - ); - OTHER_CFLAGS = ( - "$(inherited)" - ); - OTHER_LDFLAGS = ( - "$(inherited)" - ); - OTHER_SWIFT_FLAGS = ( - "$(inherited)" - ); - PRODUCT_BUNDLE_IDENTIFIER = "GluonTestRenderer"; - PRODUCT_MODULE_NAME = "$(TARGET_NAME:c99extidentifier)"; - PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; - SKIP_INSTALL = "YES"; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = ( - "$(inherited)" - ); - SWIFT_VERSION = "4.2"; - TARGET_NAME = "GluonTestRenderer"; - }; - name = "Release"; - }; - "OBJ_9" = { - isa = "PBXFileReference"; - path = "AnyEquatable.swift"; - sourceTree = ""; - }; - "OBJ_90" = { - isa = "PBXSourcesBuildPhase"; - files = ( - "OBJ_91" - ); - }; - "OBJ_91" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_39"; - }; - "OBJ_92" = { - isa = "PBXFrameworksBuildPhase"; - files = ( - "OBJ_93" - ); - }; - "OBJ_93" = { - isa = "PBXBuildFile"; - fileRef = "Gluon::Gluon::Product"; - }; - "OBJ_94" = { - isa = "PBXTargetDependency"; - target = "Gluon::Gluon"; - }; - "OBJ_95" = { - isa = "XCConfigurationList"; - buildConfigurations = ( - "OBJ_96", - "OBJ_97" - ); - defaultConfigurationIsVisible = "0"; - defaultConfigurationName = "Release"; - }; - "OBJ_96" = { - 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 = "Gluon.xcodeproj/GluonTests_Info.plist"; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@loader_path/../Frameworks", - "@loader_path/Frameworks" - ); - OTHER_CFLAGS = ( - "$(inherited)" - ); - OTHER_LDFLAGS = ( - "$(inherited)" - ); - OTHER_SWIFT_FLAGS = ( - "$(inherited)" - ); - SWIFT_ACTIVE_COMPILATION_CONDITIONS = ( - "$(inherited)" - ); - SWIFT_VERSION = "4.2"; - TARGET_NAME = "GluonTests"; - }; - name = "Debug"; - }; - "OBJ_97" = { - 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 = "Gluon.xcodeproj/GluonTests_Info.plist"; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@loader_path/../Frameworks", - "@loader_path/Frameworks" - ); - OTHER_CFLAGS = ( - "$(inherited)" - ); - OTHER_LDFLAGS = ( - "$(inherited)" - ); - OTHER_SWIFT_FLAGS = ( - "$(inherited)" - ); - SWIFT_ACTIVE_COMPILATION_CONDITIONS = ( - "$(inherited)" - ); - SWIFT_VERSION = "4.2"; - TARGET_NAME = "GluonTests"; - }; - name = "Release"; - }; - "OBJ_98" = { - isa = "PBXSourcesBuildPhase"; - files = ( - "OBJ_99", - "OBJ_100" - ); - }; - "OBJ_99" = { - isa = "PBXBuildFile"; - fileRef = "OBJ_42"; - }; - }; - rootObject = "OBJ_1"; + archiveVersion = 1; + classes = { + }; + objectVersion = 46; + objects = { + +/* Begin PBXAggregateTarget section */ + "Gluon::GluonPackageTests::ProductTarget" /* GluonPackageTests */ = { + isa = PBXAggregateTarget; + buildConfigurationList = OBJ_81 /* Build configuration list for PBXAggregateTarget "GluonPackageTests" */; + buildPhases = ( + ); + dependencies = ( + OBJ_84 /* PBXTargetDependency */, + ); + name = GluonPackageTests; + productName = GluonPackageTests; + }; +/* End PBXAggregateTarget section */ + +/* Begin PBXBuildFile section */ + D1543A8821CD749C0039D8EC /* TestRenderer.swift in Sources */ = {isa = PBXBuildFile; fileRef = D1543A8721CD749C0039D8EC /* TestRenderer.swift */; }; + OBJ_100 /* XCTestManifests.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_43 /* XCTestManifests.swift */; }; + OBJ_102 /* GluonTestRenderer.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = "Gluon::GluonTestRenderer::Product" /* GluonTestRenderer.framework */; }; + OBJ_103 /* Gluon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = "Gluon::Gluon::Product" /* Gluon.framework */; }; + OBJ_111 /* ActionTarget.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_29 /* ActionTarget.swift */; }; + OBJ_112 /* Button.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_31 /* Button.swift */; }; + OBJ_113 /* Label.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_32 /* Label.swift */; }; + OBJ_114 /* StackView.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_33 /* StackView.swift */; }; + OBJ_115 /* UIColor.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_34 /* UIColor.swift */; }; + OBJ_116 /* UIKitControlComponent.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_35 /* UIKitControlComponent.swift */; }; + OBJ_117 /* UIKitRenderer.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_36 /* UIKitRenderer.swift */; }; + OBJ_118 /* UIKitViewComponent.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_37 /* UIKitViewComponent.swift */; }; + OBJ_120 /* Gluon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = "Gluon::Gluon::Product" /* Gluon.framework */; }; + OBJ_55 /* AnyEquatable.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_9 /* AnyEquatable.swift */; }; + OBJ_56 /* Color.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_10 /* Color.swift */; }; + OBJ_57 /* ComponentWrapper.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_12 /* ComponentWrapper.swift */; }; + OBJ_58 /* CompositeComponentWrapper.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_13 /* CompositeComponentWrapper.swift */; }; + OBJ_59 /* HostComponentWrapper.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_14 /* HostComponentWrapper.swift */; }; + OBJ_60 /* Default.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_15 /* Default.swift */; }; + OBJ_61 /* Diffable.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_16 /* Diffable.swift */; }; + OBJ_62 /* Event.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_17 /* Event.swift */; }; + OBJ_63 /* Hooks.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_18 /* Hooks.swift */; }; + OBJ_64 /* Layout.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_19 /* Layout.swift */; }; + OBJ_65 /* Node.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_20 /* Node.swift */; }; + OBJ_66 /* Null.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_21 /* Null.swift */; }; + OBJ_67 /* Renderer.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_22 /* Renderer.swift */; }; + OBJ_68 /* StackReconciler.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_23 /* StackReconciler.swift */; }; + OBJ_69 /* Store.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_24 /* Store.swift */; }; + OBJ_70 /* Structs.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_25 /* Structs.swift */; }; + OBJ_71 /* Unique.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_26 /* Unique.swift */; }; + OBJ_72 /* VersionedArray.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_27 /* VersionedArray.swift */; }; + OBJ_79 /* Package.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_6 /* Package.swift */; }; + OBJ_91 /* TestView.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_39 /* TestView.swift */; }; + OBJ_93 /* Gluon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = "Gluon::Gluon::Product" /* Gluon.framework */; }; + OBJ_99 /* GluonTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_42 /* GluonTests.swift */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + D1543A8221CD72FB0039D8EC /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = OBJ_1 /* Project object */; + proxyType = 1; + remoteGlobalIDString = "Gluon::Gluon"; + remoteInfo = Gluon; + }; + D1543A8321CD72FB0039D8EC /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = OBJ_1 /* Project object */; + proxyType = 1; + remoteGlobalIDString = "Gluon::Gluon"; + remoteInfo = Gluon; + }; + D1543A8421CD72FB0039D8EC /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = OBJ_1 /* Project object */; + proxyType = 1; + remoteGlobalIDString = "Gluon::GluonTestRenderer"; + remoteInfo = GluonTestRenderer; + }; + D1543A8521CD72FB0039D8EC /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = OBJ_1 /* Project object */; + proxyType = 1; + remoteGlobalIDString = "Gluon::Gluon"; + remoteInfo = Gluon; + }; + D1543A8621CD72FD0039D8EC /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = OBJ_1 /* Project object */; + proxyType = 1; + remoteGlobalIDString = "Gluon::GluonTests"; + remoteInfo = GluonTests; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXFileReference section */ + D1543A8721CD749C0039D8EC /* TestRenderer.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TestRenderer.swift; sourceTree = ""; }; + "Gluon::Gluon::Product" /* Gluon.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = Gluon.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + "Gluon::GluonTestRenderer::Product" /* GluonTestRenderer.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = GluonTestRenderer.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + "Gluon::GluonTests::Product" /* GluonTests.xctest */ = {isa = PBXFileReference; lastKnownFileType = file; path = GluonTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; + "Gluon::GluonUIKit::Product" /* GluonUIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = GluonUIKit.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + OBJ_10 /* Color.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Color.swift; sourceTree = ""; }; + OBJ_12 /* ComponentWrapper.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ComponentWrapper.swift; sourceTree = ""; }; + OBJ_13 /* CompositeComponentWrapper.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CompositeComponentWrapper.swift; sourceTree = ""; }; + OBJ_14 /* HostComponentWrapper.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HostComponentWrapper.swift; sourceTree = ""; }; + OBJ_15 /* Default.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Default.swift; sourceTree = ""; }; + OBJ_16 /* Diffable.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Diffable.swift; sourceTree = ""; }; + OBJ_17 /* Event.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Event.swift; sourceTree = ""; }; + OBJ_18 /* Hooks.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Hooks.swift; sourceTree = ""; }; + OBJ_19 /* Layout.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Layout.swift; sourceTree = ""; }; + OBJ_20 /* Node.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Node.swift; sourceTree = ""; }; + OBJ_21 /* Null.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Null.swift; sourceTree = ""; }; + OBJ_22 /* Renderer.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Renderer.swift; sourceTree = ""; }; + OBJ_23 /* StackReconciler.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StackReconciler.swift; sourceTree = ""; }; + OBJ_24 /* Store.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Store.swift; sourceTree = ""; }; + OBJ_25 /* Structs.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Structs.swift; sourceTree = ""; }; + OBJ_26 /* Unique.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Unique.swift; sourceTree = ""; }; + OBJ_27 /* VersionedArray.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = VersionedArray.swift; sourceTree = ""; }; + OBJ_29 /* ActionTarget.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ActionTarget.swift; sourceTree = ""; }; + OBJ_31 /* Button.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Button.swift; sourceTree = ""; }; + OBJ_32 /* Label.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Label.swift; sourceTree = ""; }; + OBJ_33 /* StackView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StackView.swift; sourceTree = ""; }; + OBJ_34 /* UIColor.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UIColor.swift; sourceTree = ""; }; + OBJ_35 /* UIKitControlComponent.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UIKitControlComponent.swift; sourceTree = ""; }; + OBJ_36 /* UIKitRenderer.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UIKitRenderer.swift; sourceTree = ""; }; + OBJ_37 /* UIKitViewComponent.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UIKitViewComponent.swift; sourceTree = ""; }; + OBJ_39 /* TestView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TestView.swift; sourceTree = ""; }; + OBJ_42 /* GluonTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GluonTests.swift; sourceTree = ""; }; + OBJ_43 /* XCTestManifests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = XCTestManifests.swift; sourceTree = ""; }; + OBJ_44 /* Example */ = {isa = PBXFileReference; lastKnownFileType = folder; path = Example; sourceTree = SOURCE_ROOT; }; + OBJ_6 /* Package.swift */ = {isa = PBXFileReference; explicitFileType = sourcecode.swift; path = Package.swift; sourceTree = ""; }; + OBJ_9 /* AnyEquatable.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AnyEquatable.swift; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + OBJ_101 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 0; + files = ( + OBJ_102 /* GluonTestRenderer.framework in Frameworks */, + OBJ_103 /* Gluon.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + OBJ_119 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 0; + files = ( + OBJ_120 /* Gluon.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + OBJ_73 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 0; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + OBJ_92 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 0; + files = ( + OBJ_93 /* Gluon.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + OBJ_11 /* ComponentWrapper */ = { + isa = PBXGroup; + children = ( + OBJ_12 /* ComponentWrapper.swift */, + OBJ_13 /* CompositeComponentWrapper.swift */, + OBJ_14 /* HostComponentWrapper.swift */, + ); + path = ComponentWrapper; + sourceTree = ""; + }; + OBJ_28 /* GluonUIKit */ = { + isa = PBXGroup; + children = ( + OBJ_29 /* ActionTarget.swift */, + OBJ_30 /* HostComponents */, + OBJ_34 /* UIColor.swift */, + OBJ_35 /* UIKitControlComponent.swift */, + OBJ_36 /* UIKitRenderer.swift */, + OBJ_37 /* UIKitViewComponent.swift */, + ); + name = GluonUIKit; + path = Sources/GluonUIKit; + sourceTree = SOURCE_ROOT; + }; + OBJ_30 /* HostComponents */ = { + isa = PBXGroup; + children = ( + OBJ_31 /* Button.swift */, + OBJ_32 /* Label.swift */, + OBJ_33 /* StackView.swift */, + ); + path = HostComponents; + sourceTree = ""; + }; + OBJ_38 /* GluonTestRenderer */ = { + isa = PBXGroup; + children = ( + OBJ_39 /* TestView.swift */, + D1543A8721CD749C0039D8EC /* TestRenderer.swift */, + ); + name = GluonTestRenderer; + path = Sources/GluonTestRenderer; + sourceTree = SOURCE_ROOT; + }; + OBJ_40 /* Tests */ = { + isa = PBXGroup; + children = ( + OBJ_41 /* GluonTests */, + ); + name = Tests; + sourceTree = SOURCE_ROOT; + }; + OBJ_41 /* GluonTests */ = { + isa = PBXGroup; + children = ( + OBJ_42 /* GluonTests.swift */, + OBJ_43 /* XCTestManifests.swift */, + ); + name = GluonTests; + path = Tests/GluonTests; + sourceTree = SOURCE_ROOT; + }; + OBJ_45 /* Products */ = { + isa = PBXGroup; + children = ( + "Gluon::GluonTests::Product" /* GluonTests.xctest */, + "Gluon::Gluon::Product" /* Gluon.framework */, + "Gluon::GluonUIKit::Product" /* GluonUIKit.framework */, + "Gluon::GluonTestRenderer::Product" /* GluonTestRenderer.framework */, + ); + name = Products; + sourceTree = BUILT_PRODUCTS_DIR; + }; + OBJ_5 /* */ = { + isa = PBXGroup; + children = ( + OBJ_6 /* Package.swift */, + OBJ_7 /* Sources */, + OBJ_40 /* Tests */, + OBJ_44 /* Example */, + OBJ_45 /* Products */, + ); + name = ""; + sourceTree = ""; + }; + OBJ_7 /* Sources */ = { + isa = PBXGroup; + children = ( + OBJ_8 /* Gluon */, + OBJ_28 /* GluonUIKit */, + OBJ_38 /* GluonTestRenderer */, + ); + name = Sources; + sourceTree = SOURCE_ROOT; + }; + OBJ_8 /* Gluon */ = { + isa = PBXGroup; + children = ( + OBJ_9 /* AnyEquatable.swift */, + OBJ_10 /* Color.swift */, + OBJ_11 /* ComponentWrapper */, + OBJ_15 /* Default.swift */, + OBJ_16 /* Diffable.swift */, + OBJ_17 /* Event.swift */, + OBJ_18 /* Hooks.swift */, + OBJ_19 /* Layout.swift */, + OBJ_20 /* Node.swift */, + OBJ_21 /* Null.swift */, + OBJ_22 /* Renderer.swift */, + OBJ_23 /* StackReconciler.swift */, + OBJ_24 /* Store.swift */, + OBJ_25 /* Structs.swift */, + OBJ_26 /* Unique.swift */, + OBJ_27 /* VersionedArray.swift */, + ); + name = Gluon; + path = Sources/Gluon; + sourceTree = SOURCE_ROOT; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + "Gluon::Gluon" /* Gluon */ = { + isa = PBXNativeTarget; + buildConfigurationList = OBJ_51 /* Build configuration list for PBXNativeTarget "Gluon" */; + buildPhases = ( + OBJ_54 /* Sources */, + OBJ_73 /* Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = Gluon; + productName = Gluon; + productReference = "Gluon::Gluon::Product" /* Gluon.framework */; + productType = "com.apple.product-type.framework"; + }; + "Gluon::GluonTestRenderer" /* GluonTestRenderer */ = { + isa = PBXNativeTarget; + buildConfigurationList = OBJ_87 /* Build configuration list for PBXNativeTarget "GluonTestRenderer" */; + buildPhases = ( + OBJ_90 /* Sources */, + OBJ_92 /* Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + OBJ_94 /* PBXTargetDependency */, + ); + name = GluonTestRenderer; + productName = GluonTestRenderer; + productReference = "Gluon::GluonTestRenderer::Product" /* GluonTestRenderer.framework */; + productType = "com.apple.product-type.framework"; + }; + "Gluon::GluonTests" /* GluonTests */ = { + isa = PBXNativeTarget; + buildConfigurationList = OBJ_95 /* Build configuration list for PBXNativeTarget "GluonTests" */; + buildPhases = ( + OBJ_98 /* Sources */, + OBJ_101 /* Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + OBJ_104 /* PBXTargetDependency */, + OBJ_105 /* PBXTargetDependency */, + ); + name = GluonTests; + productName = GluonTests; + productReference = "Gluon::GluonTests::Product" /* GluonTests.xctest */; + productType = "com.apple.product-type.bundle.unit-test"; + }; + "Gluon::GluonUIKit" /* GluonUIKit */ = { + isa = PBXNativeTarget; + buildConfigurationList = OBJ_107 /* Build configuration list for PBXNativeTarget "GluonUIKit" */; + buildPhases = ( + OBJ_110 /* Sources */, + OBJ_119 /* Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + OBJ_121 /* PBXTargetDependency */, + ); + name = GluonUIKit; + productName = GluonUIKit; + productReference = "Gluon::GluonUIKit::Product" /* GluonUIKit.framework */; + productType = "com.apple.product-type.framework"; + }; + "Gluon::SwiftPMPackageDescription" /* GluonPackageDescription */ = { + isa = PBXNativeTarget; + buildConfigurationList = OBJ_75 /* Build configuration list for PBXNativeTarget "GluonPackageDescription" */; + buildPhases = ( + OBJ_78 /* Sources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = GluonPackageDescription; + productName = GluonPackageDescription; + productType = "com.apple.product-type.framework"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + OBJ_1 /* Project object */ = { + isa = PBXProject; + attributes = { + LastUpgradeCheck = 9999; + }; + buildConfigurationList = OBJ_2 /* Build configuration list for PBXProject "Gluon" */; + compatibilityVersion = "Xcode 3.2"; + developmentRegion = English; + hasScannedForEncodings = 0; + knownRegions = ( + en, + ); + mainGroup = OBJ_5 /* */; + productRefGroup = OBJ_45 /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + "Gluon::Gluon" /* Gluon */, + "Gluon::SwiftPMPackageDescription" /* GluonPackageDescription */, + "Gluon::GluonPackageTests::ProductTarget" /* GluonPackageTests */, + "Gluon::GluonTestRenderer" /* GluonTestRenderer */, + "Gluon::GluonTests" /* GluonTests */, + "Gluon::GluonUIKit" /* GluonUIKit */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXSourcesBuildPhase section */ + OBJ_110 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 0; + files = ( + OBJ_111 /* ActionTarget.swift in Sources */, + OBJ_112 /* Button.swift in Sources */, + OBJ_113 /* Label.swift in Sources */, + OBJ_114 /* StackView.swift in Sources */, + OBJ_115 /* UIColor.swift in Sources */, + OBJ_116 /* UIKitControlComponent.swift in Sources */, + OBJ_117 /* UIKitRenderer.swift in Sources */, + OBJ_118 /* UIKitViewComponent.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + OBJ_54 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 0; + files = ( + OBJ_55 /* AnyEquatable.swift in Sources */, + OBJ_56 /* Color.swift in Sources */, + OBJ_57 /* ComponentWrapper.swift in Sources */, + OBJ_58 /* CompositeComponentWrapper.swift in Sources */, + OBJ_59 /* HostComponentWrapper.swift in Sources */, + OBJ_60 /* Default.swift in Sources */, + OBJ_61 /* Diffable.swift in Sources */, + OBJ_62 /* Event.swift in Sources */, + OBJ_63 /* Hooks.swift in Sources */, + OBJ_64 /* Layout.swift in Sources */, + OBJ_65 /* Node.swift in Sources */, + OBJ_66 /* Null.swift in Sources */, + OBJ_67 /* Renderer.swift in Sources */, + OBJ_68 /* StackReconciler.swift in Sources */, + OBJ_69 /* Store.swift in Sources */, + OBJ_70 /* Structs.swift in Sources */, + OBJ_71 /* Unique.swift in Sources */, + OBJ_72 /* VersionedArray.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + OBJ_78 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 0; + files = ( + OBJ_79 /* Package.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + OBJ_90 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 0; + files = ( + D1543A8821CD749C0039D8EC /* TestRenderer.swift in Sources */, + OBJ_91 /* TestView.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + OBJ_98 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 0; + files = ( + OBJ_99 /* GluonTests.swift in Sources */, + OBJ_100 /* XCTestManifests.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXTargetDependency section */ + OBJ_104 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = "Gluon::GluonTestRenderer" /* GluonTestRenderer */; + targetProxy = D1543A8421CD72FB0039D8EC /* PBXContainerItemProxy */; + }; + OBJ_105 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = "Gluon::Gluon" /* Gluon */; + targetProxy = D1543A8521CD72FB0039D8EC /* PBXContainerItemProxy */; + }; + OBJ_121 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = "Gluon::Gluon" /* Gluon */; + targetProxy = D1543A8221CD72FB0039D8EC /* PBXContainerItemProxy */; + }; + OBJ_84 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = "Gluon::GluonTests" /* GluonTests */; + targetProxy = D1543A8621CD72FD0039D8EC /* PBXContainerItemProxy */; + }; + OBJ_94 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = "Gluon::Gluon" /* Gluon */; + targetProxy = D1543A8321CD72FB0039D8EC /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin XCBuildConfiguration section */ + OBJ_108 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ENABLE_TESTABILITY = YES; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PLATFORM_DIR)/Developer/Library/Frameworks", + ); + HEADER_SEARCH_PATHS = "$(inherited)"; + INFOPLIST_FILE = Gluon.xcodeproj/GluonUIKit_Info.plist; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) $(TOOLCHAIN_DIR)/usr/lib/swift/macosx"; + OTHER_CFLAGS = "$(inherited)"; + OTHER_LDFLAGS = "$(inherited)"; + OTHER_SWIFT_FLAGS = "$(inherited)"; + PRODUCT_BUNDLE_IDENTIFIER = GluonUIKit; + PRODUCT_MODULE_NAME = "$(TARGET_NAME:c99extidentifier)"; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + SKIP_INSTALL = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited)"; + SWIFT_VERSION = 4.2; + TARGET_NAME = GluonUIKit; + }; + name = Debug; + }; + OBJ_109 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ENABLE_TESTABILITY = YES; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PLATFORM_DIR)/Developer/Library/Frameworks", + ); + HEADER_SEARCH_PATHS = "$(inherited)"; + INFOPLIST_FILE = Gluon.xcodeproj/GluonUIKit_Info.plist; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) $(TOOLCHAIN_DIR)/usr/lib/swift/macosx"; + OTHER_CFLAGS = "$(inherited)"; + OTHER_LDFLAGS = "$(inherited)"; + OTHER_SWIFT_FLAGS = "$(inherited)"; + PRODUCT_BUNDLE_IDENTIFIER = GluonUIKit; + PRODUCT_MODULE_NAME = "$(TARGET_NAME:c99extidentifier)"; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + SKIP_INSTALL = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited)"; + SWIFT_VERSION = 4.2; + TARGET_NAME = GluonUIKit; + }; + 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 = ( + "DEBUG=1", + "$(inherited)", + ); + MACOSX_DEPLOYMENT_TARGET = 10.10; + ONLY_ACTIVE_ARCH = YES; + OTHER_SWIFT_FLAGS = "-DXcode"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = macosx; + SUPPORTED_PLATFORMS = "macosx iphoneos iphonesimulator appletvos appletvsimulator watchos watchsimulator"; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "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; + MACOSX_DEPLOYMENT_TARGET = 10.10; + OTHER_SWIFT_FLAGS = "-DXcode"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = macosx; + SUPPORTED_PLATFORMS = "macosx iphoneos iphonesimulator appletvos appletvsimulator watchos watchsimulator"; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = SWIFT_PACKAGE; + SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; + USE_HEADERMAP = NO; + }; + name = Release; + }; + OBJ_52 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ENABLE_TESTABILITY = YES; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PLATFORM_DIR)/Developer/Library/Frameworks", + ); + HEADER_SEARCH_PATHS = "$(inherited)"; + INFOPLIST_FILE = Gluon.xcodeproj/Gluon_Info.plist; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) $(TOOLCHAIN_DIR)/usr/lib/swift/macosx"; + OTHER_CFLAGS = "$(inherited)"; + OTHER_LDFLAGS = "$(inherited)"; + OTHER_SWIFT_FLAGS = "$(inherited)"; + PRODUCT_BUNDLE_IDENTIFIER = Gluon; + PRODUCT_MODULE_NAME = "$(TARGET_NAME:c99extidentifier)"; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + SKIP_INSTALL = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited)"; + SWIFT_VERSION = 4.2; + TARGET_NAME = Gluon; + }; + name = Debug; + }; + OBJ_53 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ENABLE_TESTABILITY = YES; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PLATFORM_DIR)/Developer/Library/Frameworks", + ); + HEADER_SEARCH_PATHS = "$(inherited)"; + INFOPLIST_FILE = Gluon.xcodeproj/Gluon_Info.plist; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) $(TOOLCHAIN_DIR)/usr/lib/swift/macosx"; + OTHER_CFLAGS = "$(inherited)"; + OTHER_LDFLAGS = "$(inherited)"; + OTHER_SWIFT_FLAGS = "$(inherited)"; + PRODUCT_BUNDLE_IDENTIFIER = Gluon; + PRODUCT_MODULE_NAME = "$(TARGET_NAME:c99extidentifier)"; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + SKIP_INSTALL = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited)"; + SWIFT_VERSION = 4.2; + TARGET_NAME = Gluon; + }; + name = Release; + }; + OBJ_76 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + LD = /usr/bin/true; + OTHER_SWIFT_FLAGS = "-swift-version 4.2 -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.14.sdk"; + SWIFT_VERSION = 4.2; + }; + name = Debug; + }; + OBJ_77 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + LD = /usr/bin/true; + OTHER_SWIFT_FLAGS = "-swift-version 4.2 -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.14.sdk"; + SWIFT_VERSION = 4.2; + }; + name = Release; + }; + OBJ_82 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + }; + name = Debug; + }; + OBJ_83 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + }; + name = Release; + }; + OBJ_88 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ENABLE_TESTABILITY = YES; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PLATFORM_DIR)/Developer/Library/Frameworks", + ); + HEADER_SEARCH_PATHS = "$(inherited)"; + INFOPLIST_FILE = Gluon.xcodeproj/GluonTestRenderer_Info.plist; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) $(TOOLCHAIN_DIR)/usr/lib/swift/macosx"; + OTHER_CFLAGS = "$(inherited)"; + OTHER_LDFLAGS = "$(inherited)"; + OTHER_SWIFT_FLAGS = "$(inherited)"; + PRODUCT_BUNDLE_IDENTIFIER = GluonTestRenderer; + PRODUCT_MODULE_NAME = "$(TARGET_NAME:c99extidentifier)"; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + SKIP_INSTALL = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited)"; + SWIFT_VERSION = 4.2; + TARGET_NAME = GluonTestRenderer; + }; + name = Debug; + }; + OBJ_89 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ENABLE_TESTABILITY = YES; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PLATFORM_DIR)/Developer/Library/Frameworks", + ); + HEADER_SEARCH_PATHS = "$(inherited)"; + INFOPLIST_FILE = Gluon.xcodeproj/GluonTestRenderer_Info.plist; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) $(TOOLCHAIN_DIR)/usr/lib/swift/macosx"; + OTHER_CFLAGS = "$(inherited)"; + OTHER_LDFLAGS = "$(inherited)"; + OTHER_SWIFT_FLAGS = "$(inherited)"; + PRODUCT_BUNDLE_IDENTIFIER = GluonTestRenderer; + PRODUCT_MODULE_NAME = "$(TARGET_NAME:c99extidentifier)"; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + SKIP_INSTALL = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited)"; + SWIFT_VERSION = 4.2; + TARGET_NAME = GluonTestRenderer; + }; + name = Release; + }; + OBJ_96 /* 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 = Gluon.xcodeproj/GluonTests_Info.plist; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @loader_path/../Frameworks @loader_path/Frameworks"; + OTHER_CFLAGS = "$(inherited)"; + OTHER_LDFLAGS = "$(inherited)"; + OTHER_SWIFT_FLAGS = "$(inherited)"; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited)"; + SWIFT_VERSION = 4.2; + TARGET_NAME = GluonTests; + }; + name = Debug; + }; + OBJ_97 /* 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 = Gluon.xcodeproj/GluonTests_Info.plist; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @loader_path/../Frameworks @loader_path/Frameworks"; + OTHER_CFLAGS = "$(inherited)"; + OTHER_LDFLAGS = "$(inherited)"; + OTHER_SWIFT_FLAGS = "$(inherited)"; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited)"; + SWIFT_VERSION = 4.2; + TARGET_NAME = GluonTests; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + OBJ_107 /* Build configuration list for PBXNativeTarget "GluonUIKit" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + OBJ_108 /* Debug */, + OBJ_109 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + OBJ_2 /* Build configuration list for PBXProject "Gluon" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + OBJ_3 /* Debug */, + OBJ_4 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + OBJ_51 /* Build configuration list for PBXNativeTarget "Gluon" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + OBJ_52 /* Debug */, + OBJ_53 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + OBJ_75 /* Build configuration list for PBXNativeTarget "GluonPackageDescription" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + OBJ_76 /* Debug */, + OBJ_77 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + OBJ_81 /* Build configuration list for PBXAggregateTarget "GluonPackageTests" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + OBJ_82 /* Debug */, + OBJ_83 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + OBJ_87 /* Build configuration list for PBXNativeTarget "GluonTestRenderer" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + OBJ_88 /* Debug */, + OBJ_89 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + OBJ_95 /* Build configuration list for PBXNativeTarget "GluonTests" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + OBJ_96 /* Debug */, + OBJ_97 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = OBJ_1 /* Project object */; } diff --git a/Gluon.xcodeproj/xcshareddata/xcschemes/Gluon-Package.xcscheme b/Gluon.xcodeproj/xcshareddata/xcschemes/Gluon-Package.xcscheme index bfa1535f..85097a97 100644 --- a/Gluon.xcodeproj/xcshareddata/xcschemes/Gluon-Package.xcscheme +++ b/Gluon.xcodeproj/xcshareddata/xcschemes/Gluon-Package.xcscheme @@ -20,20 +20,6 @@ ReferencedContainer = "container:Gluon.xcodeproj"> - - - - + + + + @@ -98,6 +93,15 @@ savedToolIdentifier = "" useCustomWorkingDirectory = "NO" debugDocumentVersioning = "YES"> + + + + diff --git a/Sources/Gluon/Renderer.swift b/Sources/Gluon/Renderer.swift index b45e793d..49cb1ec3 100644 --- a/Sources/Gluon/Renderer.swift +++ b/Sources/Gluon/Renderer.swift @@ -5,17 +5,63 @@ // Created by Max Desiatov on 07/10/2018. // +/** Renderer protocol that renderers for all platforms must implement. + It's up to a specific renderer to provide an initializer with an arbitrary + signature that works well for that platform. Methods required by this + protocol are used by a reconciler (`StackReconciler` instance) to notify + the renderer about updates in the component tree. + + A `Renderer` operates on targets of type `Any` due to lack of generalized + existentials in Swift. If a target type was an associated type of this + protocol, a `StackReconciler` instance wouldn't have a concrete renderer type + to delegate rendering to. + + Despite that fact, a valid bug-free and consistent renderer shouldn't + have problems with targets cast to a wrong type. It's an invalid behaviour for + a user to create children nodes of a wrong type and renderer code is supposed + to trigger an assertion failure in this case to avoid wrong type casts later. +*/ public protocol Renderer: class { + /** Function called by a reconciler when a new target instance should be + created. + - parameter parent: Parent target that will own a newly created target + instance. + - parameter component: Type of the base component that renders to the + newly created target. + - parameter props: Props used to configure the new target. + - parameter children: Children of the rendered base component for the new + target. + - returns: The newly created target. + */ func mountTarget(to parent: Any, with component: AnyHostComponent.Type, props: AnyEquatable, children: AnyEquatable) -> Any? + /** Function called by a reconciler when an existing target instance should be + updated. + - parameter target: Existing target instance to be updated. + - parameter component: Type of the base component that renders to the + updated target. + - parameter props: Props used to configure the existing target. This props + value can be different from props passed on previous + updates or on target creation. The props value is wrapped + with `AnyEquatable` for type-erasure purposes. + - parameter children: Children used to configure the existing target. These + children can be different from children passed on + previous updates or on target creation. + */ func update(target: Any, with component: AnyHostComponent.Type, props: AnyEquatable, children: AnyEquatable) + /** Function called by a reconciler when an existing target instance should be + unmounted: removed the parent and most likely destroyed. + - parameter target: Existing target instance to be unmounted. + - parameter component: Type of the base component that renders to the + updated target. + */ func unmount(target: Any, with component: AnyHostComponent.Type) } diff --git a/Sources/GluonTestRenderer/TestRenderer.swift b/Sources/GluonTestRenderer/TestRenderer.swift new file mode 100644 index 00000000..7c6d75aa --- /dev/null +++ b/Sources/GluonTestRenderer/TestRenderer.swift @@ -0,0 +1,33 @@ +// +// TestRenderer.swift +// GluonTestRenderer +// +// Created by Max Desiatov on 21/12/2018. +// + +import Gluon + +public class TestRenderer: Renderer { + private var reconciler: StackReconciler? + + public init(node: Node) { + reconciler = StackReconciler(node: node, target: TestView(), renderer: self) + } + + public func mountTarget(to parent: Any, + with component: AnyHostComponent.Type, + props: AnyEquatable, children: AnyEquatable) -> Any? { + return nil + } + + public func update(target: Any, + with component: AnyHostComponent.Type, + props: AnyEquatable, + children: AnyEquatable) { + + } + + public func unmount(target: Any, with component: AnyHostComponent.Type) { + + } +} diff --git a/Sources/GluonTestRenderer/TestView.swift b/Sources/GluonTestRenderer/TestView.swift index e701520d..0c5e4f5c 100644 --- a/Sources/GluonTestRenderer/TestView.swift +++ b/Sources/GluonTestRenderer/TestView.swift @@ -6,3 +6,7 @@ // import Gluon + +public class TestView { + +}