Fix several build issues.

This commit is contained in:
Brent Simmons 2024-03-10 18:17:04 -07:00
parent 64dc45ef38
commit 917d433deb
15 changed files with 91 additions and 37 deletions

View File

@ -7,6 +7,7 @@ let package = Package(
products: [ products: [
.library( .library(
name: "Account", name: "Account",
type: .dynamic,
targets: ["Account"]), targets: ["Account"]),
], ],
dependencies: [ dependencies: [

View File

@ -15,6 +15,7 @@ import CloudKit
import SyncDatabase import SyncDatabase
import Articles import Articles
import ArticlesDatabase import ArticlesDatabase
import Database
class CloudKitArticlesZoneDelegate: CloudKitZoneDelegate { class CloudKitArticlesZoneDelegate: CloudKitZoneDelegate {

View File

@ -12,6 +12,7 @@ import os.log
import RSCore import RSCore
import RSWeb import RSWeb
import SyncDatabase import SyncDatabase
import Database
class CloudKitSendStatusOperation: MainThreadOperation { class CloudKitSendStatusOperation: MainThreadOperation {

View File

@ -1164,7 +1164,9 @@ private extension FeedbinAccountDelegate {
account.fetchArticleIDsForStatusesWithoutArticlesNewerThanCutoffDate { result in account.fetchArticleIDsForStatusesWithoutArticlesNewerThanCutoffDate { result in
func process(_ fetchedArticleIDs: Set<String>) { Task { @MainActor in
@MainActor func process(_ fetchedArticleIDs: Set<String>) {
let group = DispatchGroup() let group = DispatchGroup()
var errorOccurred = false var errorOccurred = false
@ -1179,11 +1181,15 @@ private extension FeedbinAccountDelegate {
case .success(let entries): case .success(let entries):
self.processEntries(account: account, entries: entries) { error in self.processEntries(account: account, entries: entries) { error in
Task { @MainActor in
group.leave() group.leave()
if error != nil { if error != nil {
errorOccurred = true errorOccurred = true
} }
} }
}
case .failure(let error): case .failure(let error):
errorOccurred = true errorOccurred = true
@ -1194,6 +1200,7 @@ private extension FeedbinAccountDelegate {
} }
group.notify(queue: DispatchQueue.main) { group.notify(queue: DispatchQueue.main) {
Task { @MainActor in
self.refreshProgress.completeTask() self.refreshProgress.completeTask()
os_log(.debug, log: self.log, "Done refreshing missing articles.") os_log(.debug, log: self.log, "Done refreshing missing articles.")
if errorOccurred { if errorOccurred {
@ -1203,6 +1210,7 @@ private extension FeedbinAccountDelegate {
} }
} }
} }
}
switch result { switch result {
case .success(let fetchedArticleIDs): case .success(let fetchedArticleIDs):
@ -1213,6 +1221,7 @@ private extension FeedbinAccountDelegate {
} }
} }
} }
}
func refreshArticles(_ account: Account, page: String?, updateFetchDate: Date?, completion: @escaping ((Result<Void, Error>) -> Void)) { func refreshArticles(_ account: Account, page: String?, updateFetchDate: Date?, completion: @escaping ((Result<Void, Error>) -> Void)) {
guard let page = page else { guard let page = page else {

View File

@ -9,6 +9,7 @@
import Foundation import Foundation
import os.log import os.log
import Secrets import Secrets
import Database
/// Ensure a status exists for every article id the user might be interested in. /// Ensure a status exists for every article id the user might be interested in.
/// ///

View File

@ -9,6 +9,7 @@
import Foundation import Foundation
import RSParser import RSParser
import os.log import os.log
import Database
/// Combine the articles with their feeds for a specific account. /// Combine the articles with their feeds for a specific account.
final class FeedlyUpdateAccountFeedsWithItemsOperation: FeedlyOperation { final class FeedlyUpdateAccountFeedsWithItemsOperation: FeedlyOperation {

View File

@ -13,6 +13,7 @@ import RSWeb
import SyncDatabase import SyncDatabase
import os.log import os.log
import Secrets import Secrets
import Database
public enum ReaderAPIAccountDelegateError: LocalizedError { public enum ReaderAPIAccountDelegateError: LocalizedError {
case unknown case unknown

View File

@ -7,6 +7,7 @@ let package = Package(
products: [ products: [
.library( .library(
name: "Articles", name: "Articles",
type: .dynamic,
targets: ["Articles"]), targets: ["Articles"]),
], ],
dependencies: [ dependencies: [

View File

@ -12,6 +12,7 @@ var dependencies: [Package.Dependency] = [
dependencies.append(contentsOf: [ dependencies.append(contentsOf: [
.package(path: "../Articles"), .package(path: "../Articles"),
.package(path: "../Database"), .package(path: "../Database"),
.package(path: "../FMDB"),
]) ])
#else #else
dependencies.append(contentsOf: [ dependencies.append(contentsOf: [
@ -25,6 +26,7 @@ let package = Package(
products: [ products: [
.library( .library(
name: "ArticlesDatabase", name: "ArticlesDatabase",
type: .dynamic,
targets: ["ArticlesDatabase"]), targets: ["ArticlesDatabase"]),
], ],
dependencies: dependencies, dependencies: dependencies,
@ -36,6 +38,7 @@ let package = Package(
"Database", "Database",
"RSParser", "RSParser",
"Articles", "Articles",
"FMDB",
]), ]),
] ]
) )

View File

@ -661,6 +661,8 @@
847120D92B8AE6AF00BBFC34 /* UTType+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 847120D62B8AE6AF00BBFC34 /* UTType+Extensions.swift */; }; 847120D92B8AE6AF00BBFC34 /* UTType+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 847120D62B8AE6AF00BBFC34 /* UTType+Extensions.swift */; };
8472058120142E8900AD578B /* FeedInspectorViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8472058020142E8900AD578B /* FeedInspectorViewController.swift */; }; 8472058120142E8900AD578B /* FeedInspectorViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8472058020142E8900AD578B /* FeedInspectorViewController.swift */; };
8477ACBE22238E9500DF7F37 /* SearchFeedDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8477ACBD22238E9500DF7F37 /* SearchFeedDelegate.swift */; }; 8477ACBE22238E9500DF7F37 /* SearchFeedDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8477ACBD22238E9500DF7F37 /* SearchFeedDelegate.swift */; };
8479ABE32B9E906E00F84C4D /* Database in Frameworks */ = {isa = PBXBuildFile; productRef = 8479ABE22B9E906E00F84C4D /* Database */; };
8479ABE52B9E907400F84C4D /* FMDB in Frameworks */ = {isa = PBXBuildFile; productRef = 8479ABE42B9E907400F84C4D /* FMDB */; };
847CD6CA232F4CBF00FAC46D /* IconView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 847CD6C9232F4CBF00FAC46D /* IconView.swift */; }; 847CD6CA232F4CBF00FAC46D /* IconView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 847CD6C9232F4CBF00FAC46D /* IconView.swift */; };
847E64A02262783000E00365 /* NSAppleEventDescriptor+UserRecordFields.swift in Sources */ = {isa = PBXBuildFile; fileRef = 847E64942262782F00E00365 /* NSAppleEventDescriptor+UserRecordFields.swift */; }; 847E64A02262783000E00365 /* NSAppleEventDescriptor+UserRecordFields.swift in Sources */ = {isa = PBXBuildFile; fileRef = 847E64942262782F00E00365 /* NSAppleEventDescriptor+UserRecordFields.swift */; };
848362FF2262A30E00DA1D35 /* template.html in Resources */ = {isa = PBXBuildFile; fileRef = 848362FE2262A30E00DA1D35 /* template.html */; }; 848362FF2262A30E00DA1D35 /* template.html in Resources */ = {isa = PBXBuildFile; fileRef = 848362FE2262A30E00DA1D35 /* template.html */; };
@ -668,6 +670,8 @@
848363052262A3CC00DA1D35 /* AddFolderSheet.xib in Resources */ = {isa = PBXBuildFile; fileRef = 848363032262A3CC00DA1D35 /* AddFolderSheet.xib */; }; 848363052262A3CC00DA1D35 /* AddFolderSheet.xib in Resources */ = {isa = PBXBuildFile; fileRef = 848363032262A3CC00DA1D35 /* AddFolderSheet.xib */; };
848363082262A3DD00DA1D35 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 848363062262A3DD00DA1D35 /* Main.storyboard */; }; 848363082262A3DD00DA1D35 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 848363062262A3DD00DA1D35 /* Main.storyboard */; };
8483630B2262A3F000DA1D35 /* RenameSheet.xib in Resources */ = {isa = PBXBuildFile; fileRef = 848363092262A3F000DA1D35 /* RenameSheet.xib */; }; 8483630B2262A3F000DA1D35 /* RenameSheet.xib in Resources */ = {isa = PBXBuildFile; fileRef = 848363092262A3F000DA1D35 /* RenameSheet.xib */; };
8485654F2B9E90FD00F4BAE0 /* Database in Frameworks */ = {isa = PBXBuildFile; productRef = 8485654E2B9E90FD00F4BAE0 /* Database */; };
848565512B9E910200F4BAE0 /* FMDB in Frameworks */ = {isa = PBXBuildFile; productRef = 848565502B9E910200F4BAE0 /* FMDB */; };
848B937221C8C5540038DC0D /* CrashReporter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 848B937121C8C5540038DC0D /* CrashReporter.swift */; }; 848B937221C8C5540038DC0D /* CrashReporter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 848B937121C8C5540038DC0D /* CrashReporter.swift */; };
848D578E21543519005FFAD5 /* PasteboardFeed.swift in Sources */ = {isa = PBXBuildFile; fileRef = 848D578D21543519005FFAD5 /* PasteboardFeed.swift */; }; 848D578E21543519005FFAD5 /* PasteboardFeed.swift in Sources */ = {isa = PBXBuildFile; fileRef = 848D578D21543519005FFAD5 /* PasteboardFeed.swift */; };
848F6AE51FC29CFB002D422E /* FaviconDownloader.swift in Sources */ = {isa = PBXBuildFile; fileRef = 848F6AE41FC29CFA002D422E /* FaviconDownloader.swift */; }; 848F6AE51FC29CFB002D422E /* FaviconDownloader.swift in Sources */ = {isa = PBXBuildFile; fileRef = 848F6AE41FC29CFA002D422E /* FaviconDownloader.swift */; };
@ -1617,6 +1621,8 @@
51E4DB082425F9EB0091EB5B /* CloudKit.framework in Frameworks */, 51E4DB082425F9EB0091EB5B /* CloudKit.framework in Frameworks */,
513F32742593EE6F0003048F /* ArticlesDatabase in Frameworks */, 513F32742593EE6F0003048F /* ArticlesDatabase in Frameworks */,
513F327A2593EE6F0003048F /* SyncDatabase in Frameworks */, 513F327A2593EE6F0003048F /* SyncDatabase in Frameworks */,
848565512B9E910200F4BAE0 /* FMDB in Frameworks */,
8485654F2B9E90FD00F4BAE0 /* Database in Frameworks */,
5138E93A24D33E5600AFF0FE /* RSTree in Frameworks */, 5138E93A24D33E5600AFF0FE /* RSTree in Frameworks */,
); );
runOnlyForDeploymentPostprocessing = 0; runOnlyForDeploymentPostprocessing = 0;
@ -1630,6 +1636,7 @@
51A737C524DB19B50015FA66 /* RSWeb in Frameworks */, 51A737C524DB19B50015FA66 /* RSWeb in Frameworks */,
514C16DE24D2EF15009A3AFA /* RSTree in Frameworks */, 514C16DE24D2EF15009A3AFA /* RSTree in Frameworks */,
5132775E2590FC640064F1E7 /* Articles in Frameworks */, 5132775E2590FC640064F1E7 /* Articles in Frameworks */,
8479ABE32B9E906E00F84C4D /* Database in Frameworks */,
513277612590FC640064F1E7 /* ArticlesDatabase in Frameworks */, 513277612590FC640064F1E7 /* ArticlesDatabase in Frameworks */,
51C4CFF624D37DD500AF9874 /* Secrets in Frameworks */, 51C4CFF624D37DD500AF9874 /* Secrets in Frameworks */,
51A737AE24DB19730015FA66 /* RSCore in Frameworks */, 51A737AE24DB19730015FA66 /* RSCore in Frameworks */,
@ -1637,6 +1644,7 @@
179C39EA26F76B0500D4E741 /* Zip in Frameworks */, 179C39EA26F76B0500D4E741 /* Zip in Frameworks */,
51E4DAED2425F6940091EB5B /* CloudKit.framework in Frameworks */, 51E4DAED2425F6940091EB5B /* CloudKit.framework in Frameworks */,
514C16E124D2EF38009A3AFA /* RSCoreResources in Frameworks */, 514C16E124D2EF38009A3AFA /* RSCoreResources in Frameworks */,
8479ABE52B9E907400F84C4D /* FMDB in Frameworks */,
514C16CE24D2E63F009A3AFA /* Account in Frameworks */, 514C16CE24D2E63F009A3AFA /* Account in Frameworks */,
519CA8E525841DB700EB079A /* CrashReporter in Frameworks */, 519CA8E525841DB700EB079A /* CrashReporter in Frameworks */,
); );
@ -2975,6 +2983,8 @@
513F32762593EE6F0003048F /* Secrets */, 513F32762593EE6F0003048F /* Secrets */,
513F32792593EE6F0003048F /* SyncDatabase */, 513F32792593EE6F0003048F /* SyncDatabase */,
179D280A26F6F93D003B2E0A /* Zip */, 179D280A26F6F93D003B2E0A /* Zip */,
8485654E2B9E90FD00F4BAE0 /* Database */,
848565502B9E910200F4BAE0 /* FMDB */,
); );
productName = "NetNewsWire-iOS"; productName = "NetNewsWire-iOS";
productReference = 840D617C2029031C009BC708 /* NetNewsWire.app */; productReference = 840D617C2029031C009BC708 /* NetNewsWire.app */;
@ -3016,6 +3026,8 @@
513277602590FC640064F1E7 /* ArticlesDatabase */, 513277602590FC640064F1E7 /* ArticlesDatabase */,
513277632590FC640064F1E7 /* SyncDatabase */, 513277632590FC640064F1E7 /* SyncDatabase */,
179C39E926F76B0500D4E741 /* Zip */, 179C39E926F76B0500D4E741 /* Zip */,
8479ABE22B9E906E00F84C4D /* Database */,
8479ABE42B9E907400F84C4D /* FMDB */,
); );
productName = NetNewsWire; productName = NetNewsWire;
productReference = 849C64601ED37A5D003D8FC0 /* NetNewsWire.app */; productReference = 849C64601ED37A5D003D8FC0 /* NetNewsWire.app */;
@ -5017,6 +5029,22 @@
package = 653813412680E2DA007A082C /* XCRemoteSwiftPackageReference "RSCore" */; package = 653813412680E2DA007A082C /* XCRemoteSwiftPackageReference "RSCore" */;
productName = RSCore; productName = RSCore;
}; };
8479ABE22B9E906E00F84C4D /* Database */ = {
isa = XCSwiftPackageProductDependency;
productName = Database;
};
8479ABE42B9E907400F84C4D /* FMDB */ = {
isa = XCSwiftPackageProductDependency;
productName = FMDB;
};
8485654E2B9E90FD00F4BAE0 /* Database */ = {
isa = XCSwiftPackageProductDependency;
productName = Database;
};
848565502B9E910200F4BAE0 /* FMDB */ = {
isa = XCSwiftPackageProductDependency;
productName = FMDB;
};
/* End XCSwiftPackageProductDependency section */ /* End XCSwiftPackageProductDependency section */
}; };
rootObject = 849C64581ED37A5D003D8FC0 /* Project object */; rootObject = 849C64581ED37A5D003D8FC0 /* Project object */;

View File

@ -7,6 +7,7 @@ let package = Package(
products: [ products: [
.library( .library(
name: "Secrets", name: "Secrets",
type: .dynamic,
targets: ["Secrets"] targets: ["Secrets"]
) )
], ],

View File

@ -11,6 +11,7 @@ import RSCore
import Articles import Articles
import ArticlesDatabase import ArticlesDatabase
import Account import Account
import Database
final class SmartFeed: PseudoFeed { final class SmartFeed: PseudoFeed {

View File

@ -11,6 +11,7 @@ import Account
import Articles import Articles
import ArticlesDatabase import ArticlesDatabase
import RSCore import RSCore
import Database
protocol SmartFeedDelegate: SidebarItemIdentifiable, DisplayNameProvider, ArticleFetcher, SmallIconProvider { protocol SmartFeedDelegate: SidebarItemIdentifiable, DisplayNameProvider, ArticleFetcher, SmallIconProvider {
var fetchType: FetchType { get } var fetchType: FetchType { get }

View File

@ -10,6 +10,7 @@ import Foundation
import RSCore import RSCore
import Account import Account
import Articles import Articles
import Database
// Main thread only. // Main thread only.
// Runs an asynchronous fetch. // Runs an asynchronous fetch.

View File

@ -9,6 +9,7 @@ var dependencies: [Package.Dependency] = [
dependencies.append(contentsOf: [ dependencies.append(contentsOf: [
.package(path: "../Articles"), .package(path: "../Articles"),
.package(path: "../Database"), .package(path: "../Database"),
.package(path: "../FMDB"),
]) ])
#else #else
dependencies.append(contentsOf: [ dependencies.append(contentsOf: [
@ -22,6 +23,7 @@ let package = Package(
products: [ products: [
.library( .library(
name: "SyncDatabase", name: "SyncDatabase",
type: .dynamic,
targets: ["SyncDatabase"]), targets: ["SyncDatabase"]),
], ],
dependencies: dependencies, dependencies: dependencies,
@ -32,6 +34,7 @@ let package = Package(
"RSCore", "RSCore",
"Database", "Database",
"Articles", "Articles",
"FMDB"
], ],
swiftSettings: [ swiftSettings: [
.enableExperimentalFeature("StrictConcurrency") .enableExperimentalFeature("StrictConcurrency")