diff --git a/Package.swift b/Package.swift index 03c688b272..968794f208 100644 --- a/Package.swift +++ b/Package.swift @@ -11,17 +11,16 @@ if let version = getGtk4MinorVersion(), version >= 10 { gtkSwiftSettings.append(.define("GTK_4_10_PLUS")) } -let defaultBackend: String +let defaultBackendDependencies: [Target.Dependency] if let backend = ProcessInfo.processInfo.environment["SCUI_DEFAULT_BACKEND"] { - defaultBackend = backend + defaultBackendDependencies = [.target(name: backend)] } else { - #if os(macOS) - defaultBackend = "AppKitBackend" - #elseif os(Windows) - defaultBackend = "WinUIBackend" - #else - defaultBackend = "GtkBackend" - #endif + defaultBackendDependencies = [ + .target(name: "AppKitBackend", condition: .when(platforms: [.macOS])), + .target(name: "UIKitBackend", condition: .when(platforms: [.iOS, .tvOS, .macCatalyst, .visionOS])), + .target(name: "WinUIBackend", condition: .when(platforms: [.windows])), + .target(name: "GtkBackend", condition: .when(platforms: [.linux])), + ] } let hotReloadingEnabled: Bool @@ -182,19 +181,7 @@ let package = Package( .target(name: "SwiftCrossUIMetadataSupport"), .target( name: "DefaultBackend", - dependencies: [ - .target( - name: defaultBackend, - condition: .when(platforms: [.linux, .macOS, .windows]) - ), - // Non-desktop platforms need to be handled separately: - // Only one backend is supported, and `#if` won't work because it's evaluated - // on the compiling desktop, not the target. - .target( - name: "UIKitBackend", - condition: .when(platforms: [.iOS, .tvOS, .macCatalyst, .visionOS]) - ), - ] + dependencies: defaultBackendDependencies ), .target(name: "AppKitBackend", dependencies: ["SwiftCrossUI"]), .target(