Skip to content

Commit 16905ef

Browse files
Move back to CMake for libgit2 compilation (#2786)
At some point we tried to re-engineer the build process of libgit2 but this comes with lots of sharp edges with the only benefit being automatic building of dependencies through SPM. Ultimately, I don't think this is worth it given the complexity of managing the various parameters for compilation. This PR reaches a middle ground where we will pre-compile the libgit2 project using cmake into xcframework. Also fixes #2773 by using a flag we used previously -DUSE_SSH=libssh2. Ultimately this will use libssh2 rather than the external ssh option (ssh_exec). Looking into it, there was a bug in the libgit2 implementation that would never wait on the process on close. I think there is a patch that could be made but I believe this is inline with the behavior of 1.4.3.
1 parent 1982beb commit 16905ef

314 files changed

Lines changed: 78929 additions & 333 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

GitUp/GitUp.xcodeproj/project.pbxproj

Lines changed: 24 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,12 @@
1414
0A2F488F23683DC90072C6FB /* AuthenticationWindowController.m in Sources */ = {isa = PBXBuildFile; fileRef = 0A2F488E23683DC90072C6FB /* AuthenticationWindowController.m */; };
1515
0A2F489223683DD60072C6FB /* AuthenticationWindowController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 0A2F489023683DD60072C6FB /* AuthenticationWindowController.xib */; };
1616
0A3388BC2353BD630022528D /* WelcomeWindowController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 0A3388BA2353BD630022528D /* WelcomeWindowController.xib */; };
17-
0A4881DC26C7B98D00289CF9 /* Libgit2Origin in Frameworks */ = {isa = PBXBuildFile; productRef = 0A4881DB26C7B98D00289CF9 /* Libgit2Origin */; };
17+
0A0C000126D8020000BEEF00 /* libgit2.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0A0C001126D8020000BEEF00 /* libgit2.xcframework */; };
18+
0A0C000226D8020000BEEF00 /* libssh2.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0A0C001226D8020000BEEF00 /* libssh2.xcframework */; };
19+
0A0C000326D8020000BEEF00 /* libssl.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0A0C001326D8020000BEEF00 /* libssl.xcframework */; };
20+
0A0C000426D8020000BEEF00 /* libcrypto.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0A0C001426D8020000BEEF00 /* libcrypto.xcframework */; };
21+
0A0C000526D8020000BEEF00 /* Security.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0A0C001526D8020000BEEF00 /* Security.framework */; };
22+
0A0C000626D8020000BEEF00 /* CoreFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0A0C001626D8020000BEEF00 /* CoreFoundation.framework */; };
1823
0A58CD77237B4F4B00C2BDD0 /* CloneWindowController.m in Sources */ = {isa = PBXBuildFile; fileRef = 0A58CD73237B4F4B00C2BDD0 /* CloneWindowController.m */; };
1924
0A58CD7A237B4F9600C2BDD0 /* CloneWindowController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 0A58CD78237B4F9600C2BDD0 /* CloneWindowController.xib */; };
2025
0AC8525123A11F2F00479160 /* PreferencesWindowController.m in Sources */ = {isa = PBXBuildFile; fileRef = 0AC8525023A11F2F00479160 /* PreferencesWindowController.m */; };
@@ -128,6 +133,12 @@
128133
0AD46259232711B000BE28D1 /* WelcomeWindowController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = WelcomeWindowController.h; sourceTree = "<group>"; };
129134
0AD4625A232711B000BE28D1 /* WelcomeWindowController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = WelcomeWindowController.m; sourceTree = "<group>"; };
130135
0AE7F5EE2312C1B000B06050 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = "<group>"; };
136+
0A0C001126D8020000BEEF00 /* libgit2.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libgit2.xcframework; path = "../GitUpKit/Third-Party/libgit2.xcframework"; sourceTree = SOURCE_ROOT; };
137+
0A0C001226D8020000BEEF00 /* libssh2.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libssh2.xcframework; path = "../GitUpKit/Third-Party/libssh2.xcframework"; sourceTree = SOURCE_ROOT; };
138+
0A0C001326D8020000BEEF00 /* libssl.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libssl.xcframework; path = "../GitUpKit/Third-Party/libssl.xcframework"; sourceTree = SOURCE_ROOT; };
139+
0A0C001426D8020000BEEF00 /* libcrypto.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libcrypto.xcframework; path = "../GitUpKit/Third-Party/libcrypto.xcframework"; sourceTree = SOURCE_ROOT; };
140+
0A0C001526D8020000BEEF00 /* Security.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Security.framework; path = System/Library/Frameworks/Security.framework; sourceTree = SDKROOT; };
141+
0A0C001626D8020000BEEF00 /* CoreFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreFoundation.framework; path = System/Library/Frameworks/CoreFoundation.framework; sourceTree = SDKROOT; };
131142
1D2DA2F923E9E99700691DEF /* GitUp.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = GitUp.entitlements; sourceTree = "<group>"; };
132143
31CD50E1203E2E2800360B3A /* ToolbarItemWrapperView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ToolbarItemWrapperView.h; sourceTree = "<group>"; };
133144
31CD50E2203E2E2800360B3A /* ToolbarItemWrapperView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ToolbarItemWrapperView.m; sourceTree = "<group>"; };
@@ -170,8 +181,13 @@
170181
isa = PBXFrameworksBuildPhase;
171182
buildActionMask = 2147483647;
172183
files = (
184+
0A0C000526D8020000BEEF00 /* Security.framework in Frameworks */,
185+
0A0C000626D8020000BEEF00 /* CoreFoundation.framework in Frameworks */,
186+
0A0C000126D8020000BEEF00 /* libgit2.xcframework in Frameworks */,
187+
0A0C000226D8020000BEEF00 /* libssh2.xcframework in Frameworks */,
188+
0A0C000326D8020000BEEF00 /* libssl.xcframework in Frameworks */,
189+
0A0C000426D8020000BEEF00 /* libcrypto.xcframework in Frameworks */,
173190
DBBEE685256B0A0200F96DAF /* libiconv.tbd in Frameworks */,
174-
0A4881DC26C7B98D00289CF9 /* Libgit2Origin in Frameworks */,
175191
DBBEE688256B0A0A00F96DAF /* libz.tbd in Frameworks */,
176192
);
177193
runOnlyForDeploymentPostprocessing = 0;
@@ -191,9 +207,15 @@
191207
DB0D250D256738F600E6F48A /* Frameworks */ = {
192208
isa = PBXGroup;
193209
children = (
210+
0A0C001626D8020000BEEF00 /* CoreFoundation.framework */,
194211
DB0D250E256738F600E6F48A /* libgit2.a */,
212+
0A0C001426D8020000BEEF00 /* libcrypto.xcframework */,
213+
0A0C001126D8020000BEEF00 /* libgit2.xcframework */,
195214
DBBEE684256B0A0200F96DAF /* libiconv.tbd */,
215+
0A0C001226D8020000BEEF00 /* libssh2.xcframework */,
216+
0A0C001326D8020000BEEF00 /* libssl.xcframework */,
196217
DBBEE687256B0A0A00F96DAF /* libz.tbd */,
218+
0A0C001526D8020000BEEF00 /* Security.framework */,
197219
E2653D241A5B2FBD006A9871 /* Sparkle.framework */,
198220
);
199221
name = Frameworks;
@@ -319,9 +341,6 @@
319341
DBBEE6BF256B0B1C00F96DAF /* PBXTargetDependency */,
320342
);
321343
name = Tool;
322-
packageProductDependencies = (
323-
0A4881DB26C7B98D00289CF9 /* Libgit2Origin */,
324-
);
325344
productName = Tool;
326345
productReference = E21DCAE81B253847006424E8 /* gitup */;
327346
productType = "com.apple.product-type.tool";
@@ -731,10 +750,6 @@
731750
/* End XCRemoteSwiftPackageReference section */
732751

733752
/* Begin XCSwiftPackageProductDependency section */
734-
0A4881DB26C7B98D00289CF9 /* Libgit2Origin */ = {
735-
isa = XCSwiftPackageProductDependency;
736-
productName = Libgit2Origin;
737-
};
738753
1DE066032C3781AF00540818 /* Sparkle */ = {
739754
isa = XCSwiftPackageProductDependency;
740755
package = 1DE066022C3781AF00540818 /* XCRemoteSwiftPackageReference "Sparkle" */;

GitUpKit/GitUpKit.xcodeproj/project.pbxproj

Lines changed: 44 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,24 @@
77
objects = {
88

99
/* Begin PBXBuildFile section */
10+
0A0B000126D8010000BEEF00 /* libgit2.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0A0B001126D8010000BEEF00 /* libgit2.xcframework */; };
11+
0A0B000226D8010000BEEF00 /* libssh2.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0A0B001226D8010000BEEF00 /* libssh2.xcframework */; };
12+
0A0B000326D8010000BEEF00 /* libssl.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0A0B001326D8010000BEEF00 /* libssl.xcframework */; };
13+
0A0B000426D8010000BEEF00 /* libcrypto.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0A0B001426D8010000BEEF00 /* libcrypto.xcframework */; };
14+
0A0B000526D8010000BEEF00 /* CoreFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0A0B001526D8010000BEEF00 /* CoreFoundation.framework */; };
15+
0A0B000626D8010000BEEF00 /* libgit2.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0A0B001126D8010000BEEF00 /* libgit2.xcframework */; };
16+
0A0B000726D8010000BEEF00 /* libssh2.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0A0B001226D8010000BEEF00 /* libssh2.xcframework */; };
17+
0A0B000826D8010000BEEF00 /* libssl.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0A0B001326D8010000BEEF00 /* libssl.xcframework */; };
18+
0A0B000926D8010000BEEF00 /* libcrypto.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0A0B001426D8010000BEEF00 /* libcrypto.xcframework */; };
19+
0A0B000A26D8010000BEEF00 /* CoreFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0A0B001526D8010000BEEF00 /* CoreFoundation.framework */; };
20+
0A0B000B26D8010000BEEF00 /* Security.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0A1DA51D265806140041E737 /* Security.framework */; };
21+
0A0B000C26D8010000BEEF00 /* libgit2.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0A0B001126D8010000BEEF00 /* libgit2.xcframework */; };
22+
0A0B000D26D8010000BEEF00 /* libssh2.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0A0B001226D8010000BEEF00 /* libssh2.xcframework */; };
23+
0A0B000E26D8010000BEEF00 /* libssl.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0A0B001326D8010000BEEF00 /* libssl.xcframework */; };
24+
0A0B000F26D8010000BEEF00 /* libcrypto.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0A0B001426D8010000BEEF00 /* libcrypto.xcframework */; };
25+
0A0B001026D8010000BEEF00 /* CoreFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0A0B001526D8010000BEEF00 /* CoreFoundation.framework */; };
26+
0A0B001626D8010000BEEF00 /* Security.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0A1DA51D265806140041E737 /* Security.framework */; };
1027
0A1DA51E265806140041E737 /* Security.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0A1DA51D265806140041E737 /* Security.framework */; };
11-
0A4881D726C7B4CF00289CF9 /* Libgit2Origin in Frameworks */ = {isa = PBXBuildFile; productRef = 0A4881D626C7B4CF00289CF9 /* Libgit2Origin */; };
1228
0AC8525923A122C400479160 /* GILaunchServicesLocator.h in Headers */ = {isa = PBXBuildFile; fileRef = 0AC8525723A122C400479160 /* GILaunchServicesLocator.h */; settings = {ATTRIBUTES = (Public, ); }; };
1329
0AC8525A23A122C400479160 /* GILaunchServicesLocator.m in Sources */ = {isa = PBXBuildFile; fileRef = 0AC8525823A122C400479160 /* GILaunchServicesLocator.m */; };
1430
1D615D81286BEDC600FFF7E7 /* XLFacilityMacros.h in Headers */ = {isa = PBXBuildFile; fileRef = 1D615D7E286BE79200FFF7E7 /* XLFacilityMacros.h */; settings = {ATTRIBUTES = (Public, ); }; };
@@ -19,7 +35,6 @@
1935
1DADC0DA25A25D54008C2C35 /* libsqlite3.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = DBBEE637256B08D300F96DAF /* libsqlite3.xcframework */; };
2036
1DADC0DE25A25D5D008C2C35 /* libiconv.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = DBBEE654256B095000F96DAF /* libiconv.tbd */; };
2137
1DADC0E225A25D63008C2C35 /* libz.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = DBBEE64C256B094000F96DAF /* libz.tbd */; };
22-
1DC7FB2A28748D1200D2FD4C /* Libgit2Origin in Frameworks */ = {isa = PBXBuildFile; productRef = 1DC7FB2928748D1200D2FD4C /* Libgit2Origin */; };
2338
1DF371CD22F5262300EF7BD9 /* GCLiveRepository+Utilities.h in Headers */ = {isa = PBXBuildFile; fileRef = 1DF371CB22F5262300EF7BD9 /* GCLiveRepository+Utilities.h */; };
2439
1DF371CE22F5262300EF7BD9 /* GCLiveRepository+Utilities.m in Sources */ = {isa = PBXBuildFile; fileRef = 1DF371CC22F5262300EF7BD9 /* GCLiveRepository+Utilities.m */; };
2540
6D8E3F0B25D90E1300AAFC17 /* GIImageDiffView.m in Sources */ = {isa = PBXBuildFile; fileRef = 6D8E3F0A25D90E1300AAFC17 /* GIImageDiffView.m */; };
@@ -349,6 +364,11 @@
349364
/* End PBXBuildFile section */
350365

351366
/* Begin PBXFileReference section */
367+
0A0B001126D8010000BEEF00 /* libgit2.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libgit2.xcframework; path = "Third-Party/libgit2.xcframework"; sourceTree = "<group>"; };
368+
0A0B001226D8010000BEEF00 /* libssh2.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libssh2.xcframework; path = "Third-Party/libssh2.xcframework"; sourceTree = "<group>"; };
369+
0A0B001326D8010000BEEF00 /* libssl.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libssl.xcframework; path = "Third-Party/libssl.xcframework"; sourceTree = "<group>"; };
370+
0A0B001426D8010000BEEF00 /* libcrypto.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libcrypto.xcframework; path = "Third-Party/libcrypto.xcframework"; sourceTree = "<group>"; };
371+
0A0B001526D8010000BEEF00 /* CoreFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreFoundation.framework; path = System/Library/Frameworks/CoreFoundation.framework; sourceTree = SDKROOT; };
352372
0A1DA512265805C30041E737 /* libcommonCrypto.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = libcommonCrypto.tbd; path = usr/lib/system/libcommonCrypto.tbd; sourceTree = SDKROOT; };
353373
0A1DA51D265806140041E737 /* Security.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Security.framework; path = System/Library/Frameworks/Security.framework; sourceTree = SDKROOT; };
354374
0AC8525723A122C400479160 /* GILaunchServicesLocator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GILaunchServicesLocator.h; sourceTree = "<group>"; };
@@ -577,6 +597,12 @@
577597
isa = PBXFrameworksBuildPhase;
578598
buildActionMask = 2147483647;
579599
files = (
600+
0A0B000B26D8010000BEEF00 /* Security.framework in Frameworks */,
601+
0A0B000A26D8010000BEEF00 /* CoreFoundation.framework in Frameworks */,
602+
0A0B000626D8010000BEEF00 /* libgit2.xcframework in Frameworks */,
603+
0A0B000726D8010000BEEF00 /* libssh2.xcframework in Frameworks */,
604+
0A0B000826D8010000BEEF00 /* libssl.xcframework in Frameworks */,
605+
0A0B000926D8010000BEEF00 /* libcrypto.xcframework in Frameworks */,
580606
DBBEE674256B09B500F96DAF /* libiconv.tbd in Frameworks */,
581607
DBBEE66A256B099300F96DAF /* libsqlite3.xcframework in Frameworks */,
582608
DBBEE675256B09B500F96DAF /* libz.tbd in Frameworks */,
@@ -588,8 +614,12 @@
588614
buildActionMask = 2147483647;
589615
files = (
590616
0A1DA51E265806140041E737 /* Security.framework in Frameworks */,
617+
0A0B000526D8010000BEEF00 /* CoreFoundation.framework in Frameworks */,
618+
0A0B000126D8010000BEEF00 /* libgit2.xcframework in Frameworks */,
619+
0A0B000226D8010000BEEF00 /* libssh2.xcframework in Frameworks */,
620+
0A0B000326D8010000BEEF00 /* libssl.xcframework in Frameworks */,
621+
0A0B000426D8010000BEEF00 /* libcrypto.xcframework in Frameworks */,
591622
DBBEE655256B095000F96DAF /* libiconv.tbd in Frameworks */,
592-
0A4881D726C7B4CF00289CF9 /* Libgit2Origin in Frameworks */,
593623
DBBEE64D256B094000F96DAF /* libz.tbd in Frameworks */,
594624
DBBEE638256B08D300F96DAF /* libsqlite3.xcframework in Frameworks */,
595625
);
@@ -599,9 +629,14 @@
599629
isa = PBXFrameworksBuildPhase;
600630
buildActionMask = 2147483647;
601631
files = (
632+
0A0B001626D8010000BEEF00 /* Security.framework in Frameworks */,
633+
0A0B001026D8010000BEEF00 /* CoreFoundation.framework in Frameworks */,
634+
0A0B000C26D8010000BEEF00 /* libgit2.xcframework in Frameworks */,
635+
0A0B000D26D8010000BEEF00 /* libssh2.xcframework in Frameworks */,
636+
0A0B000E26D8010000BEEF00 /* libssl.xcframework in Frameworks */,
637+
0A0B000F26D8010000BEEF00 /* libcrypto.xcframework in Frameworks */,
602638
1DADC0DE25A25D5D008C2C35 /* libiconv.tbd in Frameworks */,
603639
1DADC0DA25A25D54008C2C35 /* libsqlite3.xcframework in Frameworks */,
604-
1DC7FB2A28748D1200D2FD4C /* Libgit2Origin in Frameworks */,
605640
1DADC0E225A25D63008C2C35 /* libz.tbd in Frameworks */,
606641
);
607642
runOnlyForDeploymentPostprocessing = 0;
@@ -620,9 +655,14 @@
620655
DBBFFF4E2567370900AE139C /* Frameworks */ = {
621656
isa = PBXGroup;
622657
children = (
658+
0A0B001526D8010000BEEF00 /* CoreFoundation.framework */,
623659
0A1DA51D265806140041E737 /* Security.framework */,
624660
0A1DA512265805C30041E737 /* libcommonCrypto.tbd */,
661+
0A0B001426D8010000BEEF00 /* libcrypto.xcframework */,
662+
0A0B001126D8010000BEEF00 /* libgit2.xcframework */,
625663
DBBEE654256B095000F96DAF /* libiconv.tbd */,
664+
0A0B001226D8010000BEEF00 /* libssh2.xcframework */,
665+
0A0B001326D8010000BEEF00 /* libssl.xcframework */,
626666
DBBEE637256B08D300F96DAF /* libsqlite3.xcframework */,
627667
DBBEE64C256B094000F96DAF /* libz.tbd */,
628668
);
@@ -1096,9 +1136,6 @@
10961136
dependencies = (
10971137
);
10981138
name = "GitUpKit (macOS)";
1099-
packageProductDependencies = (
1100-
0A4881D626C7B4CF00289CF9 /* Libgit2Origin */,
1101-
);
11021139
productName = GitUpKit;
11031140
productReference = E267E1A81B84D6C500BAB377 /* GitUpKit.framework */;
11041141
productType = "com.apple.product-type.framework";
@@ -1115,9 +1152,6 @@
11151152
dependencies = (
11161153
);
11171154
name = Tests;
1118-
packageProductDependencies = (
1119-
1DC7FB2928748D1200D2FD4C /* Libgit2Origin */,
1120-
);
11211155
productName = GitUpTests;
11221156
productReference = E2C338C419F8562F00063D95 /* GitUpTests.xctest */;
11231157
productType = "com.apple.product-type.bundle.unit-test";
@@ -1756,16 +1790,6 @@
17561790
};
17571791
/* End XCConfigurationList section */
17581792

1759-
/* Begin XCSwiftPackageProductDependency section */
1760-
0A4881D626C7B4CF00289CF9 /* Libgit2Origin */ = {
1761-
isa = XCSwiftPackageProductDependency;
1762-
productName = Libgit2Origin;
1763-
};
1764-
1DC7FB2928748D1200D2FD4C /* Libgit2Origin */ = {
1765-
isa = XCSwiftPackageProductDependency;
1766-
productName = Libgit2Origin;
1767-
};
1768-
/* End XCSwiftPackageProductDependency section */
17691793
};
17701794
rootObject = E2C338A319F8562F00063D95 /* Project object */;
17711795
}

0 commit comments

Comments
 (0)