|
1 | 1 | // swift-tools-version: 5.9 |
2 | 2 |
|
3 | 3 | import PackageDescription |
| 4 | +import Foundation |
| 5 | + |
| 6 | +func oneSignalEnvFlag(_ name: String) -> Bool { |
| 7 | + let value = Context.environment[name]?.trimmingCharacters(in: .whitespacesAndNewlines).lowercased() |
| 8 | + return value == "true" || value == "1" |
| 9 | +} |
| 10 | + |
| 11 | +let oneSignalDisableLocation = oneSignalEnvFlag("ONESIGNAL_DISABLE_LOCATION") |
| 12 | + |
| 13 | +// InAppMessages, Location, and Extension are separate library products in |
| 14 | +// OneSignal-XCFramework and must be linked explicitly under SPM. Location can |
| 15 | +// be omitted for apps that do not use OneSignal.Location. |
| 16 | +var oneSignalDependencies: [Target.Dependency] = [ |
| 17 | + .product(name: "OneSignalFramework", package: "OneSignal-XCFramework"), |
| 18 | + .product(name: "OneSignalInAppMessages", package: "OneSignal-XCFramework"), |
| 19 | + .product(name: "OneSignalExtension", package: "OneSignal-XCFramework"), |
| 20 | +] |
| 21 | + |
| 22 | +if !oneSignalDisableLocation { |
| 23 | + oneSignalDependencies.append(.product(name: "OneSignalLocation", package: "OneSignal-XCFramework")) |
| 24 | +} |
| 25 | + |
| 26 | +var capacitorPluginDependencies: [Target.Dependency] = [ |
| 27 | + .product(name: "Capacitor", package: "capacitor-swift-pm"), |
| 28 | + .product(name: "Cordova", package: "capacitor-swift-pm"), |
| 29 | +] |
| 30 | +capacitorPluginDependencies.append(contentsOf: oneSignalDependencies) |
| 31 | +capacitorPluginDependencies.append("OSCapacitorLaunchOptions") |
4 | 32 |
|
5 | 33 | let package = Package( |
6 | 34 | name: "OnesignalCapacitorPlugin", |
@@ -28,19 +56,7 @@ let package = Package( |
28 | 56 | ), |
29 | 57 | .target( |
30 | 58 | name: "OnesignalCapacitorPlugin", |
31 | | - dependencies: [ |
32 | | - .product(name: "Capacitor", package: "capacitor-swift-pm"), |
33 | | - .product(name: "Cordova", package: "capacitor-swift-pm"), |
34 | | - // InAppMessages and Location are separate library products in |
35 | | - // OneSignal-XCFramework and must be linked explicitly under SPM, |
36 | | - // otherwise their xcframeworks aren't loaded and the namespaces |
37 | | - // are silent no-ops at runtime. |
38 | | - .product(name: "OneSignalFramework", package: "OneSignal-XCFramework"), |
39 | | - .product(name: "OneSignalInAppMessages", package: "OneSignal-XCFramework"), |
40 | | - .product(name: "OneSignalLocation", package: "OneSignal-XCFramework"), |
41 | | - .product(name: "OneSignalExtension", package: "OneSignal-XCFramework"), |
42 | | - "OSCapacitorLaunchOptions" |
43 | | - ], |
| 59 | + dependencies: capacitorPluginDependencies, |
44 | 60 | path: "ios/Sources/OneSignalCapacitorPlugin" |
45 | 61 | ) |
46 | 62 | ] |
|
0 commit comments