diff --git a/.gitmodules b/.gitmodules index 2a77b9000..0d7955b21 100644 --- a/.gitmodules +++ b/.gitmodules @@ -16,3 +16,6 @@ [submodule "Carthage/Checkouts/xcconfigs"] path = Carthage/Checkouts/xcconfigs url = https://github.com/jspahrsummers/xcconfigs.git +[submodule "Carthage/Checkouts/ZipArchive"] + path = Carthage/Checkouts/ZipArchive + url = https://github.com/ZipArchive/ZipArchive.git diff --git a/Cartfile.private b/Cartfile.private index 463ab87f9..5f6f0ad92 100644 --- a/Cartfile.private +++ b/Cartfile.private @@ -1,3 +1,4 @@ github "jspahrsummers/xcconfigs" >= 0.7.1 github "Quick/Quick" ~> 0.3 github "Quick/Nimble" ~> 0.4 +github "ZipArchive/ZipArchive" ~> 0.3 diff --git a/Cartfile.resolved b/Cartfile.resolved index 549ae2b63..4ea6a066d 100644 --- a/Cartfile.resolved +++ b/Cartfile.resolved @@ -1,3 +1,4 @@ github "Quick/Nimble" "v0.4.2" github "Quick/Quick" "v0.3.1" +github "ZipArchive/ZipArchive" "v0.3.2" github "jspahrsummers/xcconfigs" "0.7.2" diff --git a/Carthage/Checkouts/ZipArchive b/Carthage/Checkouts/ZipArchive new file mode 160000 index 000000000..60312c173 --- /dev/null +++ b/Carthage/Checkouts/ZipArchive @@ -0,0 +1 @@ +Subproject commit 60312c173bb9bdb778cdef49de7a53beee2891c3 diff --git a/ObjectiveGitFramework.xcodeproj/project.pbxproj b/ObjectiveGitFramework.xcodeproj/project.pbxproj index baa0ca6d6..467d28747 100644 --- a/ObjectiveGitFramework.xcodeproj/project.pbxproj +++ b/ObjectiveGitFramework.xcodeproj/project.pbxproj @@ -48,7 +48,6 @@ D0A330F616027F3B00A616FA /* ShellScript */, ); dependencies = ( - 6A28265B17C69D6300C6A948 /* PBXTargetDependency */, 6A3C609F17D5965700382DFF /* PBXTargetDependency */, ); name = "libgit2-iOS"; @@ -312,6 +311,52 @@ DD3D951C182AB25C004AF532 /* GTBlameHunk.h in Headers */ = {isa = PBXBuildFile; fileRef = DD3D951A182AB25C004AF532 /* GTBlameHunk.h */; settings = {ATTRIBUTES = (Public, ); }; }; DD3D951D182AB25C004AF532 /* GTBlameHunk.m in Sources */ = {isa = PBXBuildFile; fileRef = DD3D951B182AB25C004AF532 /* GTBlameHunk.m */; }; F879D8311B4B788F002D5C07 /* Libgit2FeaturesSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = F879D82F1B4B77F4002D5C07 /* Libgit2FeaturesSpec.m */; }; + F879D83C1B4B7F7D002D5C07 /* ObjectiveGit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D01B6ED319F82E2000D411BC /* ObjectiveGit.framework */; }; + F879D8441B4B80C7002D5C07 /* Libgit2FeaturesSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = F879D82F1B4B77F4002D5C07 /* Libgit2FeaturesSpec.m */; }; + F879D8451B4B8138002D5C07 /* Quick.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0A0128819F98475007F1914 /* Quick.framework */; }; + F879D8471B4B8138002D5C07 /* Nimble.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F879D8461B4B8138002D5C07 /* Nimble.framework */; }; + F879D8481B4B83B9002D5C07 /* SwiftSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0A0129619F9A660007F1914 /* SwiftSpec.swift */; }; + F8D007701B4F7CA8009A8DAF /* NSErrorGitSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = D0F4E28917C7F24200BBDE30 /* NSErrorGitSpec.m */; }; + F8D007711B4F7CB0009A8DAF /* NSDataGitSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = D01EFD9F195DEF2200838D24 /* NSDataGitSpec.m */; }; + F8D007721B4F7CB6009A8DAF /* NSArray+StringArraySpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 307623AA17C6C8BD00E2CDF1 /* NSArray+StringArraySpec.m */; }; + F8D007731B4F7CC3009A8DAF /* GTSignatureSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = D040AF77177B9A9E001AD9EB /* GTSignatureSpec.m */; }; + F8D007741B4F7CCC009A8DAF /* GTOIDSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = D040AF6F177B9779001AD9EB /* GTOIDSpec.m */; }; + F8D007761B4F7D10009A8DAF /* GTTimeAdditionsSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 30B1E7FF1703871900D0814D /* GTTimeAdditionsSpec.m */; }; + F8D007811B4F9758009A8DAF /* SSZipArchive.m in Sources */ = {isa = PBXBuildFile; fileRef = F8D007801B4F9758009A8DAF /* SSZipArchive.m */; }; + F8D007861B4F97F9009A8DAF /* ioapi.c in Sources */ = {isa = PBXBuildFile; fileRef = F8D007821B4F97F9009A8DAF /* ioapi.c */; }; + F8D007871B4F97F9009A8DAF /* mztools.c in Sources */ = {isa = PBXBuildFile; fileRef = F8D007831B4F97F9009A8DAF /* mztools.c */; }; + F8D007881B4F97F9009A8DAF /* unzip.c in Sources */ = {isa = PBXBuildFile; fileRef = F8D007841B4F97F9009A8DAF /* unzip.c */; }; + F8D007891B4F97F9009A8DAF /* zip.c in Sources */ = {isa = PBXBuildFile; fileRef = F8D007851B4F97F9009A8DAF /* zip.c */; }; + F8D0078B1B4F9F9E009A8DAF /* libz.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = F8D0078A1B4F9F9E009A8DAF /* libz.dylib */; }; + F8D0078C1B4FA03B009A8DAF /* GTBlobSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 4D1C40D7182C006D00BE2960 /* GTBlobSpec.m */; }; + F8D0078D1B4FA03B009A8DAF /* GTBranchSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 88A994B916FCE7D400402C7B /* GTBranchSpec.m */; }; + F8D0078E1B4FA03B009A8DAF /* GTCommitSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 88F05AA416011FFD00B7AD1D /* GTCommitSpec.m */; }; + F8D0078F1B4FA03B009A8DAF /* GTConfigurationSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 88C0BC5817038CF3009E99AA /* GTConfigurationSpec.m */; }; + F8D007901B4FA03B009A8DAF /* GTDiffSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 30865A90167F503400B1AB6E /* GTDiffSpec.m */; }; + F8D007911B4FA03B009A8DAF /* GTEnumeratorSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = D06D9E001755D10000558C17 /* GTEnumeratorSpec.m */; }; + F8D007921B4FA03B009A8DAF /* GTIndexSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 8832811E173D8816006D7DCF /* GTIndexSpec.m */; }; + F8D007931B4FA03B009A8DAF /* GTObjectSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 88F05AA816011FFD00B7AD1D /* GTObjectSpec.m */; }; + F8D007941B4FA03B009A8DAF /* GTReferenceSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = D00F6815175D373C004DB9D6 /* GTReferenceSpec.m */; }; + F8D007951B4FA03B009A8DAF /* GTReflogSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 88215482171499BE00D76B76 /* GTReflogSpec.m */; }; + F8D007961B4FA03B009A8DAF /* GTRemotePushSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = F8E4A2901A170CA6006485A8 /* GTRemotePushSpec.m */; }; + F8D007971B4FA03B009A8DAF /* GTRemoteSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 4DBA4A3117DA73CE006CD5F5 /* GTRemoteSpec.m */; }; + F8D007981B4FA03B009A8DAF /* GTBlameSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 200578C418932A82001C06C3 /* GTBlameSpec.m */; }; + F8D007991B4FA03B009A8DAF /* GTRepositorySpec.m in Sources */ = {isa = PBXBuildFile; fileRef = D0AC906B172F941F00347DC4 /* GTRepositorySpec.m */; }; + F8D0079A1B4FA03B009A8DAF /* GTRepositoryCommittingSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 4D12323F178E009E0048F785 /* GTRepositoryCommittingSpec.m */; }; + F8D0079B1B4FA03B009A8DAF /* GTSubmoduleSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = D03B7C401756AB370034A610 /* GTSubmoduleSpec.m */; }; + F8D0079C1B4FA03B009A8DAF /* GTTagSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 2089E43B17D9A58000F451DA /* GTTagSpec.m */; }; + F8D0079D1B4FA03B009A8DAF /* GTTreeBuilderSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 5BE612921745EEBC00266D8C /* GTTreeBuilderSpec.m */; }; + F8D0079E1B4FA03B009A8DAF /* GTTreeSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 88328127173D8A64006D7DCF /* GTTreeSpec.m */; }; + F8D0079F1B4FA03B009A8DAF /* GTObjectDatabaseSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 88948AC81779243600809CDA /* GTObjectDatabaseSpec.m */; }; + F8D007A01B4FA03B009A8DAF /* GTRepository+StatusSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 30A269AC17B4878C000FE64E /* GTRepository+StatusSpec.m */; }; + F8D007A11B4FA03B009A8DAF /* GTRepositoryStashingSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = D015F7D417F6965400AD5E1F /* GTRepositoryStashingSpec.m */; }; + F8D007A21B4FA03B009A8DAF /* GTFilterSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 886E623618AECD86000611A0 /* GTFilterSpec.m */; }; + F8D007A31B4FA03B009A8DAF /* GTFilterListSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = D0751CD818BE520400134314 /* GTFilterListSpec.m */; }; + F8D007A41B4FA03B009A8DAF /* GTRepositoryResetSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 88234B2518F2FE260039972E /* GTRepositoryResetSpec.m */; }; + F8D007A51B4FA03B009A8DAF /* GTDiffDeltaSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 8870390A1975E3F2004118D7 /* GTDiffDeltaSpec.m */; }; + F8D007A61B4FA03B009A8DAF /* GTRepositoryAttributesSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 88E353051982EA6B0051001F /* GTRepositoryAttributesSpec.m */; }; + F8D007A71B4FA040009A8DAF /* QuickSpec+GTFixtures.m in Sources */ = {isa = PBXBuildFile; fileRef = 88A994CA16FCED1D00402C7B /* QuickSpec+GTFixtures.m */; }; + F8D007A81B4FA045009A8DAF /* fixtures.zip in Resources */ = {isa = PBXBuildFile; fileRef = D09C2E50175602A500065E36 /* fixtures.zip */; }; F8E4A2911A170CA6006485A8 /* GTRemotePushSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = F8E4A2901A170CA6006485A8 /* GTRemotePushSpec.m */; }; /* End PBXBuildFile section */ @@ -323,13 +368,6 @@ remoteGlobalIDString = D0A330ED16027F1E00A616FA; remoteInfo = libgit2; }; - 6A28265A17C69D6300C6A948 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 0867D690FE84028FC02AAC07 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 6A28265217C69CB400C6A948; - remoteInfo = "OpenSSL-iOS"; - }; 6A3C609C17D5964E00382DFF /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = 0867D690FE84028FC02AAC07 /* Project object */; @@ -358,6 +396,13 @@ remoteGlobalIDString = D0A330F216027F3600A616FA; remoteInfo = "libgit2-iOS"; }; + F879D83D1B4B7F7D002D5C07 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 0867D690FE84028FC02AAC07 /* Project object */; + proxyType = 1; + remoteGlobalIDString = D01B6ED219F82E2000D411BC; + remoteInfo = "ObjectiveGit-iOS"; + }; /* End PBXContainerItemProxy section */ /* Begin PBXCopyFilesBuildPhase section */ @@ -575,6 +620,14 @@ E46931A7172740D300F2077D /* update_libgit2 */ = {isa = PBXFileReference; lastKnownFileType = text; name = update_libgit2; path = script/update_libgit2; sourceTree = ""; }; E46931A8172740D300F2077D /* update_libgit2_ios */ = {isa = PBXFileReference; lastKnownFileType = text; name = update_libgit2_ios; path = script/update_libgit2_ios; sourceTree = ""; }; F879D82F1B4B77F4002D5C07 /* Libgit2FeaturesSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Libgit2FeaturesSpec.m; sourceTree = ""; }; + F879D8361B4B7F7C002D5C07 /* ObjectiveGit-iOSTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "ObjectiveGit-iOSTests.xctest"; sourceTree = BUILT_PRODUCTS_DIR; }; + F879D8461B4B8138002D5C07 /* Nimble.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Nimble.framework; path = "Carthage/Checkouts/Nimble/build/Debug-iphoneos/Nimble.framework"; sourceTree = ""; }; + F8D007801B4F9758009A8DAF /* SSZipArchive.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = SSZipArchive.m; path = Carthage/Checkouts/ZipArchive/SSZipArchive/SSZipArchive.m; sourceTree = ""; }; + F8D007821B4F97F9009A8DAF /* ioapi.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = ioapi.c; path = Carthage/Checkouts/ZipArchive/SSZipArchive/minizip/ioapi.c; sourceTree = ""; }; + F8D007831B4F97F9009A8DAF /* mztools.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = mztools.c; path = Carthage/Checkouts/ZipArchive/SSZipArchive/minizip/mztools.c; sourceTree = ""; }; + F8D007841B4F97F9009A8DAF /* unzip.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = unzip.c; path = Carthage/Checkouts/ZipArchive/SSZipArchive/minizip/unzip.c; sourceTree = ""; }; + F8D007851B4F97F9009A8DAF /* zip.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = zip.c; path = Carthage/Checkouts/ZipArchive/SSZipArchive/minizip/zip.c; sourceTree = ""; }; + F8D0078A1B4F9F9E009A8DAF /* libz.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libz.dylib; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS8.4.sdk/usr/lib/libz.dylib; sourceTree = DEVELOPER_DIR; }; F8E4A2901A170CA6006485A8 /* GTRemotePushSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GTRemotePushSpec.m; sourceTree = ""; }; /* End PBXFileReference section */ @@ -611,6 +664,17 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + F879D8331B4B7F7C002D5C07 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + F8D0078B1B4F9F9E009A8DAF /* libz.dylib in Frameworks */, + F879D8471B4B8138002D5C07 /* Nimble.framework in Frameworks */, + F879D8451B4B8138002D5C07 /* Quick.framework in Frameworks */, + F879D83C1B4B7F7D002D5C07 /* ObjectiveGit.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ @@ -620,6 +684,7 @@ 8DC2EF5B0486A6940098B216 /* ObjectiveGit.framework */, 88F05A6B16011E5400B7AD1D /* ObjectiveGit-MacTests.xctest */, D01B6ED319F82E2000D411BC /* ObjectiveGit.framework */, + F879D8361B4B7F7C002D5C07 /* ObjectiveGit-iOSTests.xctest */, ); name = Products; sourceTree = ""; @@ -648,6 +713,7 @@ 306123A817EA5261006591D4 /* extobjc */, 4D103ADC1819CFAA0029DB24 /* libiconv.dylib */, 8803DA861313145700E6E818 /* libz.dylib */, + F8D0078A1B4F9F9E009A8DAF /* libz.dylib */, 884C8A3619FF4B4D0017E98D /* libz.dylib */, 884C8A3819FF4B6D0017E98D /* libiconv.dylib */, 6A1F2FD317C6A8F3003DFADE /* libcrypto.a */, @@ -657,6 +723,7 @@ 1058C7B1FEA5585E11CA2CBB /* Cocoa.framework */, D0A0128819F98475007F1914 /* Quick.framework */, D0A0128B19F9853D007F1914 /* Nimble.framework */, + F879D8461B4B8138002D5C07 /* Nimble.framework */, 889923F919FF5DD40092A9A6 /* git2 */, ); name = "External Frameworks and Libraries"; @@ -714,6 +781,7 @@ 88F05A7516011E5400B7AD1D /* ObjectiveGitTests */ = { isa = PBXGroup; children = ( + F84E92581B8B6EA30019F947 /* SSZipArchive */, 88F05A7616011E5400B7AD1D /* Supporting Files */, 4D1C40D7182C006D00BE2960 /* GTBlobSpec.m */, 88A994B916FCE7D400402C7B /* GTBranchSpec.m */, @@ -950,6 +1018,19 @@ path = Scripts; sourceTree = ""; }; + F84E92581B8B6EA30019F947 /* SSZipArchive */ = { + isa = PBXGroup; + children = ( + F8D007801B4F9758009A8DAF /* SSZipArchive.m */, + F8D007821B4F97F9009A8DAF /* ioapi.c */, + F8D007831B4F97F9009A8DAF /* mztools.c */, + F8D007841B4F97F9009A8DAF /* unzip.c */, + F8D007851B4F97F9009A8DAF /* zip.c */, + ); + name = SSZipArchive; + path = ..; + sourceTree = ""; + }; /* End PBXGroup section */ /* Begin PBXHeadersBuildPhase section */ @@ -1131,6 +1212,24 @@ productReference = D01B6ED319F82E2000D411BC /* ObjectiveGit.framework */; productType = "com.apple.product-type.framework"; }; + F879D8351B4B7F7C002D5C07 /* ObjectiveGit-iOSTests */ = { + isa = PBXNativeTarget; + buildConfigurationList = F879D83F1B4B7F7D002D5C07 /* Build configuration list for PBXNativeTarget "ObjectiveGit-iOSTests" */; + buildPhases = ( + F879D8321B4B7F7C002D5C07 /* Sources */, + F879D8331B4B7F7C002D5C07 /* Frameworks */, + F879D8341B4B7F7C002D5C07 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + F879D83E1B4B7F7D002D5C07 /* PBXTargetDependency */, + ); + name = "ObjectiveGit-iOSTests"; + productName = "ObjectiveGit-iOSTests"; + productReference = F879D8361B4B7F7C002D5C07 /* ObjectiveGit-iOSTests.xctest */; + productType = "com.apple.product-type.bundle.unit-test"; + }; /* End PBXNativeTarget section */ /* Begin PBXProject section */ @@ -1145,6 +1244,9 @@ D01B6ED219F82E2000D411BC = { CreatedOnToolsVersion = 6.1; }; + F879D8351B4B7F7C002D5C07 = { + CreatedOnToolsVersion = 6.4; + }; }; }; buildConfigurationList = 1DEB91B108733DA50010E9CD /* Build configuration list for PBXProject "ObjectiveGitFramework" */; @@ -1166,6 +1268,7 @@ 8DC2EF4F0486A6940098B216 /* ObjectiveGit-Mac */, 88F05A6A16011E5400B7AD1D /* ObjectiveGit-MacTests */, D01B6ED219F82E2000D411BC /* ObjectiveGit-iOS */, + F879D8351B4B7F7C002D5C07 /* ObjectiveGit-iOSTests */, D0A330ED16027F1E00A616FA /* libgit2 */, D0A330F216027F3600A616FA /* libgit2-iOS */, 6A28265217C69CB400C6A948 /* OpenSSL-iOS */, @@ -1191,6 +1294,14 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + F879D8341B4B7F7C002D5C07 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + F8D007A81B4FA045009A8DAF /* fixtures.zip in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; /* End PBXResourcesBuildPhase section */ /* Begin PBXShellScriptBuildPhase section */ @@ -1408,6 +1519,54 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + F879D8321B4B7F7C002D5C07 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + F8D007931B4FA03B009A8DAF /* GTObjectSpec.m in Sources */, + F8D0078D1B4FA03B009A8DAF /* GTBranchSpec.m in Sources */, + F8D007761B4F7D10009A8DAF /* GTTimeAdditionsSpec.m in Sources */, + F8D007921B4FA03B009A8DAF /* GTIndexSpec.m in Sources */, + F8D007711B4F7CB0009A8DAF /* NSDataGitSpec.m in Sources */, + F8D007A11B4FA03B009A8DAF /* GTRepositoryStashingSpec.m in Sources */, + F8D007A31B4FA03B009A8DAF /* GTFilterListSpec.m in Sources */, + F8D0079D1B4FA03B009A8DAF /* GTTreeBuilderSpec.m in Sources */, + F8D007721B4F7CB6009A8DAF /* NSArray+StringArraySpec.m in Sources */, + F8D007731B4F7CC3009A8DAF /* GTSignatureSpec.m in Sources */, + F8D007A21B4FA03B009A8DAF /* GTFilterSpec.m in Sources */, + F8D007971B4FA03B009A8DAF /* GTRemoteSpec.m in Sources */, + F8D007A61B4FA03B009A8DAF /* GTRepositoryAttributesSpec.m in Sources */, + F8D007941B4FA03B009A8DAF /* GTReferenceSpec.m in Sources */, + F8D007981B4FA03B009A8DAF /* GTBlameSpec.m in Sources */, + F8D007911B4FA03B009A8DAF /* GTEnumeratorSpec.m in Sources */, + F8D007701B4F7CA8009A8DAF /* NSErrorGitSpec.m in Sources */, + F8D007A41B4FA03B009A8DAF /* GTRepositoryResetSpec.m in Sources */, + F8D007951B4FA03B009A8DAF /* GTReflogSpec.m in Sources */, + F8D0079C1B4FA03B009A8DAF /* GTTagSpec.m in Sources */, + F8D007741B4F7CCC009A8DAF /* GTOIDSpec.m in Sources */, + F8D007901B4FA03B009A8DAF /* GTDiffSpec.m in Sources */, + F8D007A71B4FA040009A8DAF /* QuickSpec+GTFixtures.m in Sources */, + F8D0079A1B4FA03B009A8DAF /* GTRepositoryCommittingSpec.m in Sources */, + F8D0078E1B4FA03B009A8DAF /* GTCommitSpec.m in Sources */, + F8D0078F1B4FA03B009A8DAF /* GTConfigurationSpec.m in Sources */, + F8D0079B1B4FA03B009A8DAF /* GTSubmoduleSpec.m in Sources */, + F879D8441B4B80C7002D5C07 /* Libgit2FeaturesSpec.m in Sources */, + F8D0078C1B4FA03B009A8DAF /* GTBlobSpec.m in Sources */, + F8D007991B4FA03B009A8DAF /* GTRepositorySpec.m in Sources */, + F8D0079F1B4FA03B009A8DAF /* GTObjectDatabaseSpec.m in Sources */, + F8D0079E1B4FA03B009A8DAF /* GTTreeSpec.m in Sources */, + F8D007A01B4FA03B009A8DAF /* GTRepository+StatusSpec.m in Sources */, + F8D007961B4FA03B009A8DAF /* GTRemotePushSpec.m in Sources */, + F8D007A51B4FA03B009A8DAF /* GTDiffDeltaSpec.m in Sources */, + F879D8481B4B83B9002D5C07 /* SwiftSpec.swift in Sources */, + F8D007811B4F9758009A8DAF /* SSZipArchive.m in Sources */, + F8D007861B4F97F9009A8DAF /* ioapi.c in Sources */, + F8D007871B4F97F9009A8DAF /* mztools.c in Sources */, + F8D007881B4F97F9009A8DAF /* unzip.c in Sources */, + F8D007891B4F97F9009A8DAF /* zip.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; /* End PBXSourcesBuildPhase section */ /* Begin PBXTargetDependency section */ @@ -1416,11 +1575,6 @@ target = D0A330ED16027F1E00A616FA /* libgit2 */; targetProxy = 3D6123BD1A6432F6008F831A /* PBXContainerItemProxy */; }; - 6A28265B17C69D6300C6A948 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 6A28265217C69CB400C6A948 /* OpenSSL-iOS */; - targetProxy = 6A28265A17C69D6300C6A948 /* PBXContainerItemProxy */; - }; 6A3C609D17D5964E00382DFF /* PBXTargetDependency */ = { isa = PBXTargetDependency; target = 6A28265217C69CB400C6A948 /* OpenSSL-iOS */; @@ -1441,6 +1595,11 @@ target = D0A330F216027F3600A616FA /* libgit2-iOS */; targetProxy = D019779619F8335100F523DA /* PBXContainerItemProxy */; }; + F879D83E1B4B7F7D002D5C07 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = D01B6ED219F82E2000D411BC /* ObjectiveGit-iOS */; + targetProxy = F879D83D1B4B7F7D002D5C07 /* PBXContainerItemProxy */; + }; /* End PBXTargetDependency section */ /* Begin PBXVariantGroup section */ @@ -1976,6 +2135,221 @@ }; name = Release; }; + F879D8401B4B7F7D002D5C07 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = D0A463DB17E57C45000F5021 /* Test.xcconfig */; + buildSettings = { + 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_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_STRICT_OBJC_MSGSEND = YES; + FRAMEWORK_SEARCH_PATHS = ( + "$(SDKROOT)/Developer/Library/Frameworks", + "$(inherited)", + ); + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_DYNAMIC_NO_PIC = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + "NOCRYPT=1", + "NOUNCRYPT=1", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_DEPRECATED_FUNCTIONS = NO; + GCC_WARN_ABOUT_MISSING_FIELD_INITIALIZERS = NO; + 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; + HEADER_SEARCH_PATHS = ( + "$(inherited)", + "Carthage/Checkouts/ZipArchive/SSZipArchive/**", + ); + INFOPLIST_FILE = "ObjectiveGitTests/ObjectiveGitTests-Info.plist"; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + LIBRARY_SEARCH_PATHS = ( + ., + External, + ); + MTL_ENABLE_DEBUG_INFO = YES; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = iphoneos; + }; + name = Debug; + }; + F879D8411B4B7F7D002D5C07 /* Test */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = D0A463DB17E57C45000F5021 /* Test.xcconfig */; + buildSettings = { + 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_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + FRAMEWORK_SEARCH_PATHS = ( + "$(SDKROOT)/Developer/Library/Frameworks", + "$(inherited)", + ); + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_DEPRECATED_FUNCTIONS = NO; + GCC_WARN_ABOUT_MISSING_FIELD_INITIALIZERS = NO; + 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; + HEADER_SEARCH_PATHS = ( + "$(inherited)", + "Carthage/Checkouts/ZipArchive/SSZipArchive/**", + ); + INFOPLIST_FILE = "ObjectiveGitTests/ObjectiveGitTests-Info.plist"; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + LIBRARY_SEARCH_PATHS = ( + ., + External, + ); + MTL_ENABLE_DEBUG_INFO = NO; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = iphoneos; + VALIDATE_PRODUCT = YES; + }; + name = Test; + }; + F879D8421B4B7F7D002D5C07 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = D0A463DB17E57C45000F5021 /* Test.xcconfig */; + buildSettings = { + 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_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + FRAMEWORK_SEARCH_PATHS = ( + "$(SDKROOT)/Developer/Library/Frameworks", + "$(inherited)", + ); + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_DEPRECATED_FUNCTIONS = NO; + GCC_WARN_ABOUT_MISSING_FIELD_INITIALIZERS = NO; + 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; + HEADER_SEARCH_PATHS = ( + "$(inherited)", + "Carthage/Checkouts/ZipArchive/SSZipArchive/**", + ); + INFOPLIST_FILE = "ObjectiveGitTests/ObjectiveGitTests-Info.plist"; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + LIBRARY_SEARCH_PATHS = ( + ., + External, + ); + MTL_ENABLE_DEBUG_INFO = NO; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = iphoneos; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; + F879D8431B4B7F7D002D5C07 /* Profile */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = D0A463DB17E57C45000F5021 /* Test.xcconfig */; + buildSettings = { + 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_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + FRAMEWORK_SEARCH_PATHS = ( + "$(SDKROOT)/Developer/Library/Frameworks", + "$(inherited)", + ); + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_DEPRECATED_FUNCTIONS = NO; + GCC_WARN_ABOUT_MISSING_FIELD_INITIALIZERS = NO; + 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; + HEADER_SEARCH_PATHS = ( + "$(inherited)", + "Carthage/Checkouts/ZipArchive/SSZipArchive/**", + ); + INFOPLIST_FILE = "ObjectiveGitTests/ObjectiveGitTests-Info.plist"; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + LIBRARY_SEARCH_PATHS = ( + ., + External, + ); + MTL_ENABLE_DEBUG_INFO = NO; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = iphoneos; + VALIDATE_PRODUCT = YES; + }; + name = Profile; + }; /* End XCBuildConfiguration section */ /* Begin XCConfigurationList section */ @@ -2067,6 +2441,17 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; + F879D83F1B4B7F7D002D5C07 /* Build configuration list for PBXNativeTarget "ObjectiveGit-iOSTests" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + F879D8401B4B7F7D002D5C07 /* Debug */, + F879D8411B4B7F7D002D5C07 /* Test */, + F879D8421B4B7F7D002D5C07 /* Release */, + F879D8431B4B7F7D002D5C07 /* Profile */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; /* End XCConfigurationList section */ }; rootObject = 0867D690FE84028FC02AAC07 /* Project object */; diff --git a/ObjectiveGitFramework.xcodeproj/xcshareddata/xcschemes/ObjectiveGit iOS.xcscheme b/ObjectiveGitFramework.xcodeproj/xcshareddata/xcschemes/ObjectiveGit iOS.xcscheme index d36315848..df0a79358 100644 --- a/ObjectiveGitFramework.xcodeproj/xcshareddata/xcschemes/ObjectiveGit iOS.xcscheme +++ b/ObjectiveGitFramework.xcodeproj/xcshareddata/xcschemes/ObjectiveGit iOS.xcscheme @@ -32,7 +32,7 @@ skipped = "NO"> diff --git a/ObjectiveGitFramework.xcworkspace/contents.xcworkspacedata b/ObjectiveGitFramework.xcworkspace/contents.xcworkspacedata index 522f3ee5b..d1ebe6523 100644 --- a/ObjectiveGitFramework.xcworkspace/contents.xcworkspacedata +++ b/ObjectiveGitFramework.xcworkspace/contents.xcworkspacedata @@ -10,4 +10,7 @@ + + diff --git a/ObjectiveGitTests/ObjectiveGitTests-Info.plist b/ObjectiveGitTests/ObjectiveGitTests-Info.plist index b2481283d..e20f56f36 100644 --- a/ObjectiveGitTests/ObjectiveGitTests-Info.plist +++ b/ObjectiveGitTests/ObjectiveGitTests-Info.plist @@ -7,7 +7,7 @@ CFBundleExecutable ${EXECUTABLE_NAME} CFBundleIdentifier - com.libgit2.${PRODUCT_NAME:rfc1034identifier} + org.libgit2.$(PRODUCT_NAME:rfc1034identifier) CFBundleInfoDictionaryVersion 6.0 CFBundlePackageType diff --git a/ObjectiveGitTests/QuickSpec+GTFixtures.m b/ObjectiveGitTests/QuickSpec+GTFixtures.m index 3855fae28..f5cf54fe6 100644 --- a/ObjectiveGitTests/QuickSpec+GTFixtures.m +++ b/ObjectiveGitTests/QuickSpec+GTFixtures.m @@ -10,6 +10,10 @@ #import "QuickSpec+GTFixtures.h" #import +#if TARGET_OS_IPHONE +#import "SSZipArchive.h" +#endif + static const NSInteger FixturesErrorUnzipFailed = 666; static NSString * const FixturesErrorDomain = @"com.objectivegit.Fixtures"; @@ -95,6 +99,24 @@ - (NSString *)pathForFixtureRepositoryNamed:(NSString *)repositoryName { } - (BOOL)unzipFile:(NSString *)member fromArchiveAtPath:(NSString *)zipPath intoDirectory:(NSString *)destinationPath error:(NSError **)error { + +#if TARGET_OS_IPHONE + // iOS: unzip in-process using SSZipArchive + // + // system() and NSTask() are not available when running tests in the iOS simulator + + BOOL success = [SSZipArchive unzipFileAtPath:zipPath toDestination:destinationPath overwrite:YES password:nil error:error]; + + if (!success) { + NSLog(@"Unzip failed"); + return NO; + } + + return YES; + +#else + // OS X: shell out to unzip using NSTask + NSTask *task = [[NSTask alloc] init]; task.launchPath = @"/usr/bin/unzip"; task.arguments = @[ @"-qq", @"-d", destinationPath, zipPath, [member stringByAppendingString:@"*"] ]; @@ -108,6 +130,9 @@ - (BOOL)unzipFile:(NSString *)member fromArchiveAtPath:(NSString *)zipPath intoD } return success; + +#endif + } #pragma mark API diff --git a/script/cibuild b/script/cibuild index 1b17c1bf7..6224abcbf 100755 --- a/script/cibuild +++ b/script/cibuild @@ -123,10 +123,10 @@ build_scheme () if [ "$awkstatus" -eq "1" ] then # SDK not found, try for iphonesimulator. - sdkflag="-sdk iphonesimulator" + sdkflag='-sdk iphonesimulator -destination "platform=iOS Simulator,name=iPhone 5"' # Determine whether the unit tests will run with iphonesimulator - run_xctool $sdkflag -scheme "$scheme" run-tests | parse_build + run_xctool "$sdkflag" -scheme "$scheme" run-tests | parse_build awkstatus=$?