From 7fa1016108f8ca7e839cf8f8787ef14a66e54c2d Mon Sep 17 00:00:00 2001 From: Guido Marucci Blas Date: Mon, 23 Jan 2017 00:34:34 -0300 Subject: [PATCH 1/5] Create Xcode project with framework targets. An new Xcode project is created in order to build an iOS framework as target. This project is Carthage compatible. A first version of podspec is added, although pod lib lint fails. 4 tests are failing when run through Xcode. --- YogaKit/YogaKit.podspec | 22 + YogaKit/YogaKit.xcodeproj/project.pbxproj | 459 ++++++++++++++++++ .../contents.xcworkspacedata | 7 + .../xcshareddata/xcschemes/YogaKit.xcscheme | 99 ++++ YogaKit/YogaKit/Info.plist | 24 + YogaKit/{ => YogaKit}/UIView+Yoga.h | 0 YogaKit/{ => YogaKit}/UIView+Yoga.m | 0 YogaKit/{ => YogaKit}/YGLayout+Private.h | 0 YogaKit/{ => YogaKit}/YGLayout.h | 2 +- YogaKit/{ => YogaKit}/YGLayout.m | 0 YogaKit/YogaKit/YogaKit.h | 21 + YogaKit/{Tests => YogaKitTests}/Info.plist | 8 +- .../{Tests => YogaKitTests}/YogaKitTests.m | 0 13 files changed, 637 insertions(+), 5 deletions(-) create mode 100644 YogaKit/YogaKit.podspec create mode 100644 YogaKit/YogaKit.xcodeproj/project.pbxproj create mode 100644 YogaKit/YogaKit.xcodeproj/project.xcworkspace/contents.xcworkspacedata create mode 100644 YogaKit/YogaKit.xcodeproj/xcshareddata/xcschemes/YogaKit.xcscheme create mode 100644 YogaKit/YogaKit/Info.plist rename YogaKit/{ => YogaKit}/UIView+Yoga.h (100%) rename YogaKit/{ => YogaKit}/UIView+Yoga.m (100%) rename YogaKit/{ => YogaKit}/YGLayout+Private.h (100%) rename YogaKit/{ => YogaKit}/YGLayout.h (99%) rename YogaKit/{ => YogaKit}/YGLayout.m (100%) create mode 100644 YogaKit/YogaKit/YogaKit.h rename YogaKit/{Tests => YogaKitTests}/Info.plist (77%) rename YogaKit/{Tests => YogaKitTests}/YogaKitTests.m (100%) diff --git a/YogaKit/YogaKit.podspec b/YogaKit/YogaKit.podspec new file mode 100644 index 00000000..1329280a --- /dev/null +++ b/YogaKit/YogaKit.podspec @@ -0,0 +1,22 @@ +Pod::Spec.new do |spec| + spec.name = 'YogaKit' + spec.version = '1.0.0' + spec.license = { :type => 'BSD-3-Clause', :file => '../LICENSE' } + spec.homepage = 'https://facebook.github.io/yoga/' + spec.authors = { + 'Emil Sjölander' => 'sjolander.emil@gmail.com', + 'Dustin Shahidehpour' => 'dshahidehpour@gmail.com' + } + spec.summary = 'Yoga is a cross-platform layout engine which implements Flexbox.' + spec.description = <<-DESC + Yoga is a cross-platform layout engine which implements Flexbox. + It enables maximum collaboration within your team by implementing an API familiar to + many designers and opening it up to developers across different platforms. + DESC + spec.documentation_url = 'https://facebook.github.io/yoga/docs/getting-started/' + spec.source = { :git => 'https://github.com/facebook/yoga.git', :tag => "v#{spec.version}" } + spec.platform = :ios + spec.source_files = './YogaKit/*.m', '../yoga/*.c' + spec.public_header_files = './YogaKit/YogaKit.h', './YogaKit/YGLayout.h', './YogaKit/UIView+Yoga.h', '../yoga/YGEnums.h' + spec.private_header_files = '../yoga/*.h', './YogaKit/YGLayout+Private.h' +end diff --git a/YogaKit/YogaKit.xcodeproj/project.pbxproj b/YogaKit/YogaKit.xcodeproj/project.pbxproj new file mode 100644 index 00000000..c73a7982 --- /dev/null +++ b/YogaKit/YogaKit.xcodeproj/project.pbxproj @@ -0,0 +1,459 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 46; + objects = { + +/* Begin PBXBuildFile section */ + 9D4FF13F1E35AB150029DFF7 /* YogaKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9D4FF1351E35AB150029DFF7 /* YogaKit.framework */; }; + 9D4FF1441E35AB150029DFF7 /* YogaKitTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 9D4FF1431E35AB150029DFF7 /* YogaKitTests.m */; }; + 9D4FF1461E35AB150029DFF7 /* YogaKit.h in Headers */ = {isa = PBXBuildFile; fileRef = 9D4FF1381E35AB150029DFF7 /* YogaKit.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9D4FF1541E35AB870029DFF7 /* UIView+Yoga.h in Headers */ = {isa = PBXBuildFile; fileRef = 9D4FF14F1E35AB870029DFF7 /* UIView+Yoga.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9D4FF1551E35AB870029DFF7 /* UIView+Yoga.m in Sources */ = {isa = PBXBuildFile; fileRef = 9D4FF1501E35AB870029DFF7 /* UIView+Yoga.m */; }; + 9D4FF1561E35AB870029DFF7 /* YGLayout.h in Headers */ = {isa = PBXBuildFile; fileRef = 9D4FF1511E35AB870029DFF7 /* YGLayout.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9D4FF1571E35AB870029DFF7 /* YGLayout.m in Sources */ = {isa = PBXBuildFile; fileRef = 9D4FF1521E35AB870029DFF7 /* YGLayout.m */; }; + 9D4FF1581E35AB870029DFF7 /* YGLayout+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = 9D4FF1531E35AB870029DFF7 /* YGLayout+Private.h */; settings = {ATTRIBUTES = (Private, ); }; }; + 9D4FF1601E35ABC00029DFF7 /* YGEnums.h in Headers */ = {isa = PBXBuildFile; fileRef = 9D4FF15A1E35ABC00029DFF7 /* YGEnums.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9D4FF1611E35ABC00029DFF7 /* YGMacros.h in Headers */ = {isa = PBXBuildFile; fileRef = 9D4FF15B1E35ABC00029DFF7 /* YGMacros.h */; settings = {ATTRIBUTES = (Private, ); }; }; + 9D4FF1621E35ABC00029DFF7 /* YGNodeList.c in Sources */ = {isa = PBXBuildFile; fileRef = 9D4FF15C1E35ABC00029DFF7 /* YGNodeList.c */; }; + 9D4FF1631E35ABC00029DFF7 /* YGNodeList.h in Headers */ = {isa = PBXBuildFile; fileRef = 9D4FF15D1E35ABC00029DFF7 /* YGNodeList.h */; settings = {ATTRIBUTES = (Private, ); }; }; + 9D4FF1641E35ABC00029DFF7 /* Yoga.c in Sources */ = {isa = PBXBuildFile; fileRef = 9D4FF15E1E35ABC00029DFF7 /* Yoga.c */; }; + 9D4FF1651E35ABC00029DFF7 /* Yoga.h in Headers */ = {isa = PBXBuildFile; fileRef = 9D4FF15F1E35ABC00029DFF7 /* Yoga.h */; settings = {ATTRIBUTES = (Private, ); }; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + 9D4FF1401E35AB150029DFF7 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 9D4FF12C1E35AB150029DFF7 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 9D4FF1341E35AB150029DFF7; + remoteInfo = YogaKit; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXFileReference section */ + 9D4FF1351E35AB150029DFF7 /* YogaKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = YogaKit.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 9D4FF1381E35AB150029DFF7 /* YogaKit.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YogaKit.h; sourceTree = ""; }; + 9D4FF1391E35AB150029DFF7 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 9D4FF13E1E35AB150029DFF7 /* YogaKitTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = YogaKitTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; + 9D4FF1431E35AB150029DFF7 /* YogaKitTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YogaKitTests.m; sourceTree = ""; }; + 9D4FF1451E35AB150029DFF7 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 9D4FF14F1E35AB870029DFF7 /* UIView+Yoga.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UIView+Yoga.h"; sourceTree = ""; }; + 9D4FF1501E35AB870029DFF7 /* UIView+Yoga.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UIView+Yoga.m"; sourceTree = ""; }; + 9D4FF1511E35AB870029DFF7 /* YGLayout.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = YGLayout.h; sourceTree = ""; }; + 9D4FF1521E35AB870029DFF7 /* YGLayout.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = YGLayout.m; sourceTree = ""; }; + 9D4FF1531E35AB870029DFF7 /* YGLayout+Private.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "YGLayout+Private.h"; sourceTree = ""; }; + 9D4FF15A1E35ABC00029DFF7 /* YGEnums.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = YGEnums.h; path = ../yoga/YGEnums.h; sourceTree = ""; }; + 9D4FF15B1E35ABC00029DFF7 /* YGMacros.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = YGMacros.h; path = ../yoga/YGMacros.h; sourceTree = ""; }; + 9D4FF15C1E35ABC00029DFF7 /* YGNodeList.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = YGNodeList.c; path = ../yoga/YGNodeList.c; sourceTree = ""; }; + 9D4FF15D1E35ABC00029DFF7 /* YGNodeList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = YGNodeList.h; path = ../yoga/YGNodeList.h; sourceTree = ""; }; + 9D4FF15E1E35ABC00029DFF7 /* Yoga.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = Yoga.c; path = ../yoga/Yoga.c; sourceTree = ""; }; + 9D4FF15F1E35ABC00029DFF7 /* Yoga.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Yoga.h; path = ../yoga/Yoga.h; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 9D4FF1311E35AB150029DFF7 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 9D4FF13B1E35AB150029DFF7 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 9D4FF13F1E35AB150029DFF7 /* YogaKit.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 9D4FF12B1E35AB150029DFF7 = { + isa = PBXGroup; + children = ( + 9D4FF1591E35ABAB0029DFF7 /* Yoga */, + 9D4FF1371E35AB150029DFF7 /* YogaKit */, + 9D4FF1421E35AB150029DFF7 /* YogaKitTests */, + 9D4FF1361E35AB150029DFF7 /* Products */, + ); + sourceTree = ""; + }; + 9D4FF1361E35AB150029DFF7 /* Products */ = { + isa = PBXGroup; + children = ( + 9D4FF1351E35AB150029DFF7 /* YogaKit.framework */, + 9D4FF13E1E35AB150029DFF7 /* YogaKitTests.xctest */, + ); + name = Products; + sourceTree = ""; + }; + 9D4FF1371E35AB150029DFF7 /* YogaKit */ = { + isa = PBXGroup; + children = ( + 9D4FF14F1E35AB870029DFF7 /* UIView+Yoga.h */, + 9D4FF1501E35AB870029DFF7 /* UIView+Yoga.m */, + 9D4FF1511E35AB870029DFF7 /* YGLayout.h */, + 9D4FF1521E35AB870029DFF7 /* YGLayout.m */, + 9D4FF1531E35AB870029DFF7 /* YGLayout+Private.h */, + 9D4FF1381E35AB150029DFF7 /* YogaKit.h */, + 9D4FF1391E35AB150029DFF7 /* Info.plist */, + ); + path = YogaKit; + sourceTree = ""; + }; + 9D4FF1421E35AB150029DFF7 /* YogaKitTests */ = { + isa = PBXGroup; + children = ( + 9D4FF1431E35AB150029DFF7 /* YogaKitTests.m */, + 9D4FF1451E35AB150029DFF7 /* Info.plist */, + ); + path = YogaKitTests; + sourceTree = ""; + }; + 9D4FF1591E35ABAB0029DFF7 /* Yoga */ = { + isa = PBXGroup; + children = ( + 9D4FF15A1E35ABC00029DFF7 /* YGEnums.h */, + 9D4FF15B1E35ABC00029DFF7 /* YGMacros.h */, + 9D4FF15C1E35ABC00029DFF7 /* YGNodeList.c */, + 9D4FF15D1E35ABC00029DFF7 /* YGNodeList.h */, + 9D4FF15E1E35ABC00029DFF7 /* Yoga.c */, + 9D4FF15F1E35ABC00029DFF7 /* Yoga.h */, + ); + name = Yoga; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXHeadersBuildPhase section */ + 9D4FF1321E35AB150029DFF7 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + 9D4FF1581E35AB870029DFF7 /* YGLayout+Private.h in Headers */, + 9D4FF1561E35AB870029DFF7 /* YGLayout.h in Headers */, + 9D4FF1541E35AB870029DFF7 /* UIView+Yoga.h in Headers */, + 9D4FF1601E35ABC00029DFF7 /* YGEnums.h in Headers */, + 9D4FF1461E35AB150029DFF7 /* YogaKit.h in Headers */, + 9D4FF1651E35ABC00029DFF7 /* Yoga.h in Headers */, + 9D4FF1631E35ABC00029DFF7 /* YGNodeList.h in Headers */, + 9D4FF1611E35ABC00029DFF7 /* YGMacros.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXHeadersBuildPhase section */ + +/* Begin PBXNativeTarget section */ + 9D4FF1341E35AB150029DFF7 /* YogaKit */ = { + isa = PBXNativeTarget; + buildConfigurationList = 9D4FF1491E35AB150029DFF7 /* Build configuration list for PBXNativeTarget "YogaKit" */; + buildPhases = ( + 9D4FF1301E35AB150029DFF7 /* Sources */, + 9D4FF1311E35AB150029DFF7 /* Frameworks */, + 9D4FF1321E35AB150029DFF7 /* Headers */, + 9D4FF1331E35AB150029DFF7 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = YogaKit; + productName = YogaKit; + productReference = 9D4FF1351E35AB150029DFF7 /* YogaKit.framework */; + productType = "com.apple.product-type.framework"; + }; + 9D4FF13D1E35AB150029DFF7 /* YogaKitTests */ = { + isa = PBXNativeTarget; + buildConfigurationList = 9D4FF14C1E35AB150029DFF7 /* Build configuration list for PBXNativeTarget "YogaKitTests" */; + buildPhases = ( + 9D4FF13A1E35AB150029DFF7 /* Sources */, + 9D4FF13B1E35AB150029DFF7 /* Frameworks */, + 9D4FF13C1E35AB150029DFF7 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + 9D4FF1411E35AB150029DFF7 /* PBXTargetDependency */, + ); + name = YogaKitTests; + productName = YogaKitTests; + productReference = 9D4FF13E1E35AB150029DFF7 /* YogaKitTests.xctest */; + productType = "com.apple.product-type.bundle.unit-test"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 9D4FF12C1E35AB150029DFF7 /* Project object */ = { + isa = PBXProject; + attributes = { + LastUpgradeCheck = 0820; + ORGANIZATIONNAME = "Guido Marucci Blas"; + TargetAttributes = { + 9D4FF1341E35AB150029DFF7 = { + CreatedOnToolsVersion = 8.2.1; + ProvisioningStyle = Automatic; + }; + 9D4FF13D1E35AB150029DFF7 = { + CreatedOnToolsVersion = 8.2.1; + ProvisioningStyle = Automatic; + }; + }; + }; + buildConfigurationList = 9D4FF12F1E35AB150029DFF7 /* Build configuration list for PBXProject "YogaKit" */; + compatibilityVersion = "Xcode 3.2"; + developmentRegion = English; + hasScannedForEncodings = 0; + knownRegions = ( + en, + ); + mainGroup = 9D4FF12B1E35AB150029DFF7; + productRefGroup = 9D4FF1361E35AB150029DFF7 /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 9D4FF1341E35AB150029DFF7 /* YogaKit */, + 9D4FF13D1E35AB150029DFF7 /* YogaKitTests */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 9D4FF1331E35AB150029DFF7 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 9D4FF13C1E35AB150029DFF7 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 9D4FF1301E35AB150029DFF7 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 9D4FF1551E35AB870029DFF7 /* UIView+Yoga.m in Sources */, + 9D4FF1571E35AB870029DFF7 /* YGLayout.m in Sources */, + 9D4FF1621E35ABC00029DFF7 /* YGNodeList.c in Sources */, + 9D4FF1641E35ABC00029DFF7 /* Yoga.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 9D4FF13A1E35AB150029DFF7 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 9D4FF1441E35AB150029DFF7 /* YogaKitTests.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXTargetDependency section */ + 9D4FF1411E35AB150029DFF7 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 9D4FF1341E35AB150029DFF7 /* YogaKit */; + targetProxy = 9D4FF1401E35AB150029DFF7 /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin XCBuildConfiguration section */ + 9D4FF1471E35AB150029DFF7 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + 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 = 10.2; + MTL_ENABLE_DEBUG_INFO = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Debug; + }; + 9D4FF1481E35AB150029DFF7 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + 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 = 10.2; + MTL_ENABLE_DEBUG_INFO = NO; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Release; + }; + 9D4FF14A1E35AB150029DFF7 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = ""; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + HEADER_SEARCH_PATHS = ../; + INFOPLIST_FILE = YogaKit/Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = com.facebook.YogaKit; + PRODUCT_NAME = "$(TARGET_NAME)"; + SKIP_INSTALL = YES; + }; + name = Debug; + }; + 9D4FF14B1E35AB150029DFF7 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = ""; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + HEADER_SEARCH_PATHS = ../; + INFOPLIST_FILE = YogaKit/Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = com.facebook.YogaKit; + PRODUCT_NAME = "$(TARGET_NAME)"; + SKIP_INSTALL = YES; + }; + name = Release; + }; + 9D4FF14D1E35AB150029DFF7 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + HEADER_SEARCH_PATHS = ../; + INFOPLIST_FILE = YogaKitTests/Info.plist; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = com.facebook.YogaKitTests; + PRODUCT_NAME = "$(TARGET_NAME)"; + }; + name = Debug; + }; + 9D4FF14E1E35AB150029DFF7 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + HEADER_SEARCH_PATHS = ../; + INFOPLIST_FILE = YogaKitTests/Info.plist; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = com.facebook.YogaKitTests; + PRODUCT_NAME = "$(TARGET_NAME)"; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 9D4FF12F1E35AB150029DFF7 /* Build configuration list for PBXProject "YogaKit" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 9D4FF1471E35AB150029DFF7 /* Debug */, + 9D4FF1481E35AB150029DFF7 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 9D4FF1491E35AB150029DFF7 /* Build configuration list for PBXNativeTarget "YogaKit" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 9D4FF14A1E35AB150029DFF7 /* Debug */, + 9D4FF14B1E35AB150029DFF7 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 9D4FF14C1E35AB150029DFF7 /* Build configuration list for PBXNativeTarget "YogaKitTests" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 9D4FF14D1E35AB150029DFF7 /* Debug */, + 9D4FF14E1E35AB150029DFF7 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = 9D4FF12C1E35AB150029DFF7 /* Project object */; +} diff --git a/YogaKit/YogaKit.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/YogaKit/YogaKit.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 00000000..98dd3194 --- /dev/null +++ b/YogaKit/YogaKit.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/YogaKit/YogaKit.xcodeproj/xcshareddata/xcschemes/YogaKit.xcscheme b/YogaKit/YogaKit.xcodeproj/xcshareddata/xcschemes/YogaKit.xcscheme new file mode 100644 index 00000000..fda8b677 --- /dev/null +++ b/YogaKit/YogaKit.xcodeproj/xcshareddata/xcschemes/YogaKit.xcscheme @@ -0,0 +1,99 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/YogaKit/YogaKit/Info.plist b/YogaKit/YogaKit/Info.plist new file mode 100644 index 00000000..20b05ecd --- /dev/null +++ b/YogaKit/YogaKit/Info.plist @@ -0,0 +1,24 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + FMWK + CFBundleShortVersionString + 1.0.0 + CFBundleVersion + $(CURRENT_PROJECT_VERSION) + NSPrincipalClass + + + diff --git a/YogaKit/UIView+Yoga.h b/YogaKit/YogaKit/UIView+Yoga.h similarity index 100% rename from YogaKit/UIView+Yoga.h rename to YogaKit/YogaKit/UIView+Yoga.h diff --git a/YogaKit/UIView+Yoga.m b/YogaKit/YogaKit/UIView+Yoga.m similarity index 100% rename from YogaKit/UIView+Yoga.m rename to YogaKit/YogaKit/UIView+Yoga.m diff --git a/YogaKit/YGLayout+Private.h b/YogaKit/YogaKit/YGLayout+Private.h similarity index 100% rename from YogaKit/YGLayout+Private.h rename to YogaKit/YogaKit/YGLayout+Private.h diff --git a/YogaKit/YGLayout.h b/YogaKit/YogaKit/YGLayout.h similarity index 99% rename from YogaKit/YGLayout.h rename to YogaKit/YogaKit/YGLayout.h index 6b8ded62..466ded65 100644 --- a/YogaKit/YGLayout.h +++ b/YogaKit/YogaKit/YGLayout.h @@ -8,7 +8,7 @@ */ #import -#import +#import @interface YGLayout : NSObject diff --git a/YogaKit/YGLayout.m b/YogaKit/YogaKit/YGLayout.m similarity index 100% rename from YogaKit/YGLayout.m rename to YogaKit/YogaKit/YGLayout.m diff --git a/YogaKit/YogaKit/YogaKit.h b/YogaKit/YogaKit/YogaKit.h new file mode 100644 index 00000000..5e473db8 --- /dev/null +++ b/YogaKit/YogaKit/YogaKit.h @@ -0,0 +1,21 @@ +// +// YogaKit.h +// YogaKit +// +// Created by Guido Marucci Blas on 1/23/17. +// Copyright © 2017 Guido Marucci Blas. All rights reserved. +// + +#import + +//! Project version number for YogaKit. +FOUNDATION_EXPORT double YogaKitVersionNumber; + +//! Project version string for YogaKit. +FOUNDATION_EXPORT const unsigned char YogaKitVersionString[]; + +// In this header, you should import all the public headers of your framework using statements like #import + +#import +#import +#import diff --git a/YogaKit/Tests/Info.plist b/YogaKit/YogaKitTests/Info.plist similarity index 77% rename from YogaKit/Tests/Info.plist rename to YogaKit/YogaKitTests/Info.plist index c317ef52..6c6c23c4 100644 --- a/YogaKit/Tests/Info.plist +++ b/YogaKit/YogaKitTests/Info.plist @@ -5,17 +5,17 @@ CFBundleDevelopmentRegion en CFBundleExecutable - ${EXECUTABLE_NAME} + $(EXECUTABLE_NAME) CFBundleIdentifier - com.facebook.${PRODUCT_NAME:rfc1034identifier} + $(PRODUCT_BUNDLE_IDENTIFIER) CFBundleInfoDictionaryVersion 6.0 + CFBundleName + $(PRODUCT_NAME) CFBundlePackageType BNDL CFBundleShortVersionString 1.0 - CFBundleSignature - ???? CFBundleVersion 1 diff --git a/YogaKit/Tests/YogaKitTests.m b/YogaKit/YogaKitTests/YogaKitTests.m similarity index 100% rename from YogaKit/Tests/YogaKitTests.m rename to YogaKit/YogaKitTests/YogaKitTests.m -- 2.50.1.windows.1 From 1319d0a223d1b7f8c2f7d94fc95d84867999ec6e Mon Sep 17 00:00:00 2001 From: Guido Marucci Blas Date: Tue, 24 Jan 2017 20:16:42 -0300 Subject: [PATCH 2/5] Make YGMacros.h a public header. --- YogaKit/YogaKit.xcodeproj/project.pbxproj | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/YogaKit/YogaKit.xcodeproj/project.pbxproj b/YogaKit/YogaKit.xcodeproj/project.pbxproj index c73a7982..c4add421 100644 --- a/YogaKit/YogaKit.xcodeproj/project.pbxproj +++ b/YogaKit/YogaKit.xcodeproj/project.pbxproj @@ -16,7 +16,7 @@ 9D4FF1571E35AB870029DFF7 /* YGLayout.m in Sources */ = {isa = PBXBuildFile; fileRef = 9D4FF1521E35AB870029DFF7 /* YGLayout.m */; }; 9D4FF1581E35AB870029DFF7 /* YGLayout+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = 9D4FF1531E35AB870029DFF7 /* YGLayout+Private.h */; settings = {ATTRIBUTES = (Private, ); }; }; 9D4FF1601E35ABC00029DFF7 /* YGEnums.h in Headers */ = {isa = PBXBuildFile; fileRef = 9D4FF15A1E35ABC00029DFF7 /* YGEnums.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 9D4FF1611E35ABC00029DFF7 /* YGMacros.h in Headers */ = {isa = PBXBuildFile; fileRef = 9D4FF15B1E35ABC00029DFF7 /* YGMacros.h */; settings = {ATTRIBUTES = (Private, ); }; }; + 9D4FF1611E35ABC00029DFF7 /* YGMacros.h in Headers */ = {isa = PBXBuildFile; fileRef = 9D4FF15B1E35ABC00029DFF7 /* YGMacros.h */; settings = {ATTRIBUTES = (Public, ); }; }; 9D4FF1621E35ABC00029DFF7 /* YGNodeList.c in Sources */ = {isa = PBXBuildFile; fileRef = 9D4FF15C1E35ABC00029DFF7 /* YGNodeList.c */; }; 9D4FF1631E35ABC00029DFF7 /* YGNodeList.h in Headers */ = {isa = PBXBuildFile; fileRef = 9D4FF15D1E35ABC00029DFF7 /* YGNodeList.h */; settings = {ATTRIBUTES = (Private, ); }; }; 9D4FF1641E35ABC00029DFF7 /* Yoga.c in Sources */ = {isa = PBXBuildFile; fileRef = 9D4FF15E1E35ABC00029DFF7 /* Yoga.c */; }; @@ -137,11 +137,11 @@ 9D4FF1581E35AB870029DFF7 /* YGLayout+Private.h in Headers */, 9D4FF1561E35AB870029DFF7 /* YGLayout.h in Headers */, 9D4FF1541E35AB870029DFF7 /* UIView+Yoga.h in Headers */, + 9D4FF1611E35ABC00029DFF7 /* YGMacros.h in Headers */, 9D4FF1601E35ABC00029DFF7 /* YGEnums.h in Headers */, 9D4FF1461E35AB150029DFF7 /* YogaKit.h in Headers */, 9D4FF1651E35ABC00029DFF7 /* Yoga.h in Headers */, 9D4FF1631E35ABC00029DFF7 /* YGNodeList.h in Headers */, - 9D4FF1611E35ABC00029DFF7 /* YGMacros.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; -- 2.50.1.windows.1 From 6c7893f74c0df80cbd7fd42586fdb099bf053768 Mon Sep 17 00:00:00 2001 From: Guido Marucci Blas Date: Tue, 24 Jan 2017 20:51:24 -0300 Subject: [PATCH 3/5] Try to fix podspec file. --- YogaKit/.swift-version | 1 + YogaKit/YogaKit.podspec | 16 +++++++++++++--- YogaKit/lib | 1 + 3 files changed, 15 insertions(+), 3 deletions(-) create mode 100644 YogaKit/.swift-version create mode 120000 YogaKit/lib diff --git a/YogaKit/.swift-version b/YogaKit/.swift-version new file mode 100644 index 00000000..b5021469 --- /dev/null +++ b/YogaKit/.swift-version @@ -0,0 +1 @@ +3.0.2 diff --git a/YogaKit/YogaKit.podspec b/YogaKit/YogaKit.podspec index 1329280a..fc4b2b2b 100644 --- a/YogaKit/YogaKit.podspec +++ b/YogaKit/YogaKit.podspec @@ -16,7 +16,17 @@ Pod::Spec.new do |spec| spec.documentation_url = 'https://facebook.github.io/yoga/docs/getting-started/' spec.source = { :git => 'https://github.com/facebook/yoga.git', :tag => "v#{spec.version}" } spec.platform = :ios - spec.source_files = './YogaKit/*.m', '../yoga/*.c' - spec.public_header_files = './YogaKit/YogaKit.h', './YogaKit/YGLayout.h', './YogaKit/UIView+Yoga.h', '../yoga/YGEnums.h' - spec.private_header_files = '../yoga/*.h', './YogaKit/YGLayout+Private.h' + spec.source_files = 'YogaKit/*.{h,m}', 'lib/*.{h,c}' + spec.public_header_files = [ + 'YogaKit/YogaKit.h', + 'YogaKit/YGLayout.h', + 'YogaKit/UIView+Yoga.h', + 'lib/YGEnums.h', + 'lib/YGMacros.h' + ] + spec.private_header_files = [ + 'YogaKit/YGLayout+Private.h', + 'lib/YGNodeList.h', + 'lib/Yoga.h' + ] end diff --git a/YogaKit/lib b/YogaKit/lib new file mode 120000 index 00000000..18cce15d --- /dev/null +++ b/YogaKit/lib @@ -0,0 +1 @@ +../yoga \ No newline at end of file -- 2.50.1.windows.1 From a4b1ac83f49d00e958fa251f64f072a2a0d81432 Mon Sep 17 00:00:00 2001 From: Dustin Shahidehpour Date: Thu, 26 Jan 2017 14:34:27 -0800 Subject: [PATCH 4/5] Update README.md to include Pod Shield Summary: Closes https://github.com/facebook/yoga/pull/356 Differential Revision: D4471126 Pulled By: dshahidehpour fbshipit-source-id: 362a92225c8267cb89b12b45a98f69adf726c42d --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 8003cf08..e06c7883 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# Yoga [![Build Status](https://travis-ci.org/facebook/yoga.svg?branch=master)](https://travis-ci.org/facebook/yoga) +# Yoga [![Build Status](https://travis-ci.org/facebook/yoga.svg?branch=master)](https://travis-ci.org/facebook/yoga) [![Cocoapods](https://img.shields.io/cocoapods/v/Yoga.svg)](http://cocoapods.org/pods/Yoga) ## Building Yoga builds with [buck](https://buckbuild.com). Make sure you install buck before contributing to Yoga. Yoga's main implementation is in C, with bindings to supported languages and frameworks. When making changes to Yoga please ensure the changes are also propagated to these bindings when applicable. -- 2.50.1.windows.1 From 95df27d5f45b25433edb2b190e9f86b8a73129b0 Mon Sep 17 00:00:00 2001 From: Guido Marucci Blas Date: Thu, 26 Jan 2017 19:40:13 -0300 Subject: [PATCH 5/5] Add Yoga as pod dependency. Yoga now exposes its C API as CocoaPod. YogaKit dependends on it. --- YogaKit/YogaKit.podspec | 9 +++------ YogaKit/lib | 1 - 2 files changed, 3 insertions(+), 7 deletions(-) delete mode 120000 YogaKit/lib diff --git a/YogaKit/YogaKit.podspec b/YogaKit/YogaKit.podspec index fc4b2b2b..f7197540 100644 --- a/YogaKit/YogaKit.podspec +++ b/YogaKit/YogaKit.podspec @@ -16,17 +16,14 @@ Pod::Spec.new do |spec| spec.documentation_url = 'https://facebook.github.io/yoga/docs/getting-started/' spec.source = { :git => 'https://github.com/facebook/yoga.git', :tag => "v#{spec.version}" } spec.platform = :ios - spec.source_files = 'YogaKit/*.{h,m}', 'lib/*.{h,c}' + spec.source_files = 'YogaKit/*.{h,m}', spec.public_header_files = [ 'YogaKit/YogaKit.h', 'YogaKit/YGLayout.h', - 'YogaKit/UIView+Yoga.h', - 'lib/YGEnums.h', - 'lib/YGMacros.h' + 'YogaKit/UIView+Yoga.h' ] spec.private_header_files = [ 'YogaKit/YGLayout+Private.h', - 'lib/YGNodeList.h', - 'lib/Yoga.h' ] + spec.dependency 'Yoga', path: '../Yoga.podspec' end diff --git a/YogaKit/lib b/YogaKit/lib deleted file mode 120000 index 18cce15d..00000000 --- a/YogaKit/lib +++ /dev/null @@ -1 +0,0 @@ -../yoga \ No newline at end of file -- 2.50.1.windows.1