From 59e28a69c40564e62411657be908fa29c4dba035 Mon Sep 17 00:00:00 2001 From: Tony Arnold Date: Wed, 1 Jul 2020 12:00:41 +1000 Subject: [PATCH 1/3] Define a Swift package --- .gitignore | 1 + Package.swift | 31 +++++++++++++++++++++++++++++++ 2 files changed, 32 insertions(+) create mode 100644 Package.swift diff --git a/.gitignore b/.gitignore index a249290..978118f 100644 --- a/.gitignore +++ b/.gitignore @@ -13,3 +13,4 @@ *.diff xcuserdata +.swiftpm diff --git a/Package.swift b/Package.swift new file mode 100644 index 0000000..1fb6c02 --- /dev/null +++ b/Package.swift @@ -0,0 +1,31 @@ +// swift-tools-version:5.2 +import PackageDescription + +let package = Package( + name: "Peertalk", + products: [ + .library(name: "Peertalk", targets: ["Peertalk"]), + ], + targets: [ + .target( + name: "Peertalk", + path: "peertalk", + exclude: [ + "Info.plist", + "Peertalk.h", + "prefix.pch", + "PTPrivate.h" + ], + publicHeadersPath: "." + ), + .testTarget( + name: "PeertalkTests", + dependencies: ["Peertalk"], + path: "peertalk-tests", + exclude: [ + "en.lproj", + "peertalkTests-Info.plist" + ] + ) + ] +) From 7e9f6fa7f5bada67301a89d35f78b27c053713af Mon Sep 17 00:00:00 2001 From: Tony Arnold Date: Wed, 1 Jul 2020 13:04:29 +1000 Subject: [PATCH 2/3] Move the public headers to a separate directory for Swift Package Manager --- Package.swift | 2 +- peertalk-tests/PTProtocolTests.h | 1 - peertalk.xcodeproj/project.pbxproj | 55 +++++++++++++++------------- peertalk/{ => includes}/PTChannel.h | 0 peertalk/{ => includes}/PTProtocol.h | 0 peertalk/{ => includes}/PTUSBHub.h | 0 6 files changed, 30 insertions(+), 28 deletions(-) rename peertalk/{ => includes}/PTChannel.h (100%) rename peertalk/{ => includes}/PTProtocol.h (100%) rename peertalk/{ => includes}/PTUSBHub.h (100%) diff --git a/Package.swift b/Package.swift index 1fb6c02..604618a 100644 --- a/Package.swift +++ b/Package.swift @@ -16,7 +16,7 @@ let package = Package( "prefix.pch", "PTPrivate.h" ], - publicHeadersPath: "." + publicHeadersPath: "includes" ), .testTarget( name: "PeertalkTests", diff --git a/peertalk-tests/PTProtocolTests.h b/peertalk-tests/PTProtocolTests.h index 799a53a..15709d0 100644 --- a/peertalk-tests/PTProtocolTests.h +++ b/peertalk-tests/PTProtocolTests.h @@ -1,7 +1,6 @@ #import #include #import "PTProtocol.h" -#import "PTPrivate.h" @interface PTProtocolTests : XCTestCase { dispatch_fd_t socket_[2]; diff --git a/peertalk.xcodeproj/project.pbxproj b/peertalk.xcodeproj/project.pbxproj index a9e303e..add41ed 100644 --- a/peertalk.xcodeproj/project.pbxproj +++ b/peertalk.xcodeproj/project.pbxproj @@ -37,18 +37,15 @@ 6A88FA4A150D613800FC3647 /* libpeertalk.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 6A88FA30150D613800FC3647 /* libpeertalk.a */; }; 6A88FA50150D613800FC3647 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 6A88FA4E150D613800FC3647 /* InfoPlist.strings */; }; 6A88FA53150D613800FC3647 /* PTProtocolTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 6A88FA52150D613800FC3647 /* PTProtocolTests.m */; }; - 6A88FA60150D61DE00FC3647 /* PTProtocol.h in Headers */ = {isa = PBXBuildFile; fileRef = 6A88FA5C150D61DE00FC3647 /* PTProtocol.h */; }; 6A88FA61150D61DE00FC3647 /* PTProtocol.m in Sources */ = {isa = PBXBuildFile; fileRef = 6A88FA5D150D61DE00FC3647 /* PTProtocol.m */; }; - 6A88FA62150D61DE00FC3647 /* PTUSBHub.h in Headers */ = {isa = PBXBuildFile; fileRef = 6A88FA5E150D61DE00FC3647 /* PTUSBHub.h */; }; 6A88FA63150D61DE00FC3647 /* PTUSBHub.m in Sources */ = {isa = PBXBuildFile; fileRef = 6A88FA5F150D61DE00FC3647 /* PTUSBHub.m */; }; - 6ACFD2D6151D36220081ACF5 /* PTChannel.h in Headers */ = {isa = PBXBuildFile; fileRef = 6ACFD2D4151D36220081ACF5 /* PTChannel.h */; }; 6ACFD2D7151D36220081ACF5 /* PTChannel.m in Sources */ = {isa = PBXBuildFile; fileRef = 6ACFD2D5151D36220081ACF5 /* PTChannel.m */; }; - EE158A761CBD3FF800A3E3F0 /* PTChannel.h in Headers */ = {isa = PBXBuildFile; fileRef = 6ACFD2D4151D36220081ACF5 /* PTChannel.h */; settings = {ATTRIBUTES = (Public, ); }; }; - EE158A771CBD3FF800A3E3F0 /* PTProtocol.h in Headers */ = {isa = PBXBuildFile; fileRef = 6A88FA5C150D61DE00FC3647 /* PTProtocol.h */; settings = {ATTRIBUTES = (Public, ); }; }; - EE158A781CBD3FF800A3E3F0 /* PTUSBHub.h in Headers */ = {isa = PBXBuildFile; fileRef = 6A88FA5E150D61DE00FC3647 /* PTUSBHub.h */; settings = {ATTRIBUTES = (Public, ); }; }; - EE158A791CBD3FF800A3E3F0 /* PTChannel.h in Headers */ = {isa = PBXBuildFile; fileRef = 6ACFD2D4151D36220081ACF5 /* PTChannel.h */; settings = {ATTRIBUTES = (Public, ); }; }; - EE158A7A1CBD3FF800A3E3F0 /* PTProtocol.h in Headers */ = {isa = PBXBuildFile; fileRef = 6A88FA5C150D61DE00FC3647 /* PTProtocol.h */; settings = {ATTRIBUTES = (Public, ); }; }; - EE158A7B1CBD3FF800A3E3F0 /* PTUSBHub.h in Headers */ = {isa = PBXBuildFile; fileRef = 6A88FA5E150D61DE00FC3647 /* PTUSBHub.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 90BF459624AC34AC0087A93E /* PTProtocol.h in Headers */ = {isa = PBXBuildFile; fileRef = 90BF459324AC34AC0087A93E /* PTProtocol.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 90BF459724AC34AC0087A93E /* PTProtocol.h in Headers */ = {isa = PBXBuildFile; fileRef = 90BF459324AC34AC0087A93E /* PTProtocol.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 90BF459824AC34AC0087A93E /* PTUSBHub.h in Headers */ = {isa = PBXBuildFile; fileRef = 90BF459424AC34AC0087A93E /* PTUSBHub.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 90BF459924AC34AC0087A93E /* PTUSBHub.h in Headers */ = {isa = PBXBuildFile; fileRef = 90BF459424AC34AC0087A93E /* PTUSBHub.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 90BF459A24AC34AC0087A93E /* PTChannel.h in Headers */ = {isa = PBXBuildFile; fileRef = 90BF459524AC34AC0087A93E /* PTChannel.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 90BF459B24AC34AC0087A93E /* PTChannel.h in Headers */ = {isa = PBXBuildFile; fileRef = 90BF459524AC34AC0087A93E /* PTChannel.h */; settings = {ATTRIBUTES = (Public, ); }; }; EE158A7D1CBD402600A3E3F0 /* Peertalk.h in Headers */ = {isa = PBXBuildFile; fileRef = EE158A7C1CBD402600A3E3F0 /* Peertalk.h */; }; EE158A7E1CBD402600A3E3F0 /* Peertalk.h in Headers */ = {isa = PBXBuildFile; fileRef = EE158A7C1CBD402600A3E3F0 /* Peertalk.h */; settings = {ATTRIBUTES = (Public, ); }; }; EE158A7F1CBD402600A3E3F0 /* Peertalk.h in Headers */ = {isa = PBXBuildFile; fileRef = EE158A7C1CBD402600A3E3F0 /* Peertalk.h */; settings = {ATTRIBUTES = (Public, ); }; }; @@ -121,12 +118,12 @@ 6A88FA4F150D613800FC3647 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = ""; }; 6A88FA51150D613800FC3647 /* PTProtocolTests.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PTProtocolTests.h; sourceTree = ""; }; 6A88FA52150D613800FC3647 /* PTProtocolTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = PTProtocolTests.m; sourceTree = ""; }; - 6A88FA5C150D61DE00FC3647 /* PTProtocol.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PTProtocol.h; sourceTree = ""; }; 6A88FA5D150D61DE00FC3647 /* PTProtocol.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PTProtocol.m; sourceTree = ""; }; - 6A88FA5E150D61DE00FC3647 /* PTUSBHub.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PTUSBHub.h; sourceTree = ""; }; 6A88FA5F150D61DE00FC3647 /* PTUSBHub.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PTUSBHub.m; sourceTree = ""; }; - 6ACFD2D4151D36220081ACF5 /* PTChannel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PTChannel.h; sourceTree = ""; }; 6ACFD2D5151D36220081ACF5 /* PTChannel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PTChannel.m; sourceTree = ""; }; + 90BF459324AC34AC0087A93E /* PTProtocol.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PTProtocol.h; sourceTree = ""; }; + 90BF459424AC34AC0087A93E /* PTUSBHub.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PTUSBHub.h; sourceTree = ""; }; + 90BF459524AC34AC0087A93E /* PTChannel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PTChannel.h; sourceTree = ""; }; EE158A5B1CBD3EB600A3E3F0 /* Peertalk.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Peertalk.framework; sourceTree = BUILT_PRODUCTS_DIR; }; EE158A681CBD3ED700A3E3F0 /* Peertalk.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Peertalk.framework; sourceTree = BUILT_PRODUCTS_DIR; }; EE158A7C1CBD402600A3E3F0 /* Peertalk.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Peertalk.h; sourceTree = ""; }; @@ -293,14 +290,12 @@ 6A88FA39150D613800FC3647 /* peertalk */ = { isa = PBXGroup; children = ( - 6A4010D515275E3800EF0E92 /* prefix.pch */, + 90BF459224AC34AC0087A93E /* includes */, EE158A7C1CBD402600A3E3F0 /* Peertalk.h */, - 5E2C5023171F46A6008A9752 /* PTPrivate.h */, - 6ACFD2D4151D36220081ACF5 /* PTChannel.h */, + 6A4010D515275E3800EF0E92 /* prefix.pch */, 6ACFD2D5151D36220081ACF5 /* PTChannel.m */, - 6A88FA5C150D61DE00FC3647 /* PTProtocol.h */, + 5E2C5023171F46A6008A9752 /* PTPrivate.h */, 6A88FA5D150D61DE00FC3647 /* PTProtocol.m */, - 6A88FA5E150D61DE00FC3647 /* PTUSBHub.h */, 6A88FA5F150D61DE00FC3647 /* PTUSBHub.m */, ); path = peertalk; @@ -326,6 +321,16 @@ name = "Supporting Files"; sourceTree = ""; }; + 90BF459224AC34AC0087A93E /* includes */ = { + isa = PBXGroup; + children = ( + 90BF459324AC34AC0087A93E /* PTProtocol.h */, + 90BF459424AC34AC0087A93E /* PTUSBHub.h */, + 90BF459524AC34AC0087A93E /* PTChannel.h */, + ); + path = includes; + sourceTree = ""; + }; /* End PBXGroup section */ /* Begin PBXHeadersBuildPhase section */ @@ -333,9 +338,6 @@ isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - 6A88FA60150D61DE00FC3647 /* PTProtocol.h in Headers */, - 6A88FA62150D61DE00FC3647 /* PTUSBHub.h in Headers */, - 6ACFD2D6151D36220081ACF5 /* PTChannel.h in Headers */, 5E2C5024171F46A6008A9752 /* PTPrivate.h in Headers */, EE158A7D1CBD402600A3E3F0 /* Peertalk.h in Headers */, ); @@ -345,10 +347,10 @@ isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( + 90BF459824AC34AC0087A93E /* PTUSBHub.h in Headers */, + 90BF459624AC34AC0087A93E /* PTProtocol.h in Headers */, + 90BF459A24AC34AC0087A93E /* PTChannel.h in Headers */, EE158A7E1CBD402600A3E3F0 /* Peertalk.h in Headers */, - EE158A781CBD3FF800A3E3F0 /* PTUSBHub.h in Headers */, - EE158A771CBD3FF800A3E3F0 /* PTProtocol.h in Headers */, - EE158A761CBD3FF800A3E3F0 /* PTChannel.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -356,10 +358,10 @@ isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( + 90BF459924AC34AC0087A93E /* PTUSBHub.h in Headers */, + 90BF459724AC34AC0087A93E /* PTProtocol.h in Headers */, + 90BF459B24AC34AC0087A93E /* PTChannel.h in Headers */, EE158A7F1CBD402600A3E3F0 /* Peertalk.h in Headers */, - EE158A7B1CBD3FF800A3E3F0 /* PTUSBHub.h in Headers */, - EE158A7A1CBD3FF800A3E3F0 /* PTProtocol.h in Headers */, - EE158A791CBD3FF800A3E3F0 /* PTChannel.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -493,6 +495,7 @@ developmentRegion = English; hasScannedForEncodings = 0; knownRegions = ( + English, en, ); mainGroup = 6A88FA25150D613800FC3647; diff --git a/peertalk/PTChannel.h b/peertalk/includes/PTChannel.h similarity index 100% rename from peertalk/PTChannel.h rename to peertalk/includes/PTChannel.h diff --git a/peertalk/PTProtocol.h b/peertalk/includes/PTProtocol.h similarity index 100% rename from peertalk/PTProtocol.h rename to peertalk/includes/PTProtocol.h diff --git a/peertalk/PTUSBHub.h b/peertalk/includes/PTUSBHub.h similarity index 100% rename from peertalk/PTUSBHub.h rename to peertalk/includes/PTUSBHub.h From 8cfde22dcac2db5da220ec4132099f067edbe7a6 Mon Sep 17 00:00:00 2001 From: Tony Arnold Date: Mon, 27 Jul 2020 11:18:19 +1000 Subject: [PATCH 3/3] Use the stored error value This resolves a static analysis warning about the value stored to `error` never being read, and following uses seem to indicate this individual case might be a typo. --- peertalk/PTChannel.m | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/peertalk/PTChannel.m b/peertalk/PTChannel.m index 1573c11..1bd8809 100644 --- a/peertalk/PTChannel.m +++ b/peertalk/PTChannel.m @@ -229,7 +229,7 @@ - (void)connectToPort:(in_port_t)port IPv4Address:(in_addr_t)address callback:(v if (fd == -1) { perror("socket(AF_INET, SOCK_STREAM, 0) failed"); error = errno; - if (callback) callback([[NSError alloc] initWithDomain:NSPOSIXErrorDomain code:errno userInfo:nil], nil); + if (callback) callback([[NSError alloc] initWithDomain:NSPOSIXErrorDomain code:error userInfo:nil], nil); return; }