-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathPackage.swift
More file actions
67 lines (62 loc) · 1.89 KB
/
Package.swift
File metadata and controls
67 lines (62 loc) · 1.89 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
// swift-tools-version: 6.3
import CompilerPluginSupport
import PackageDescription
import Foundation
let isAndroidBuild = ProcessInfo.processInfo.environment["ANDROID_BUILD"] == "1"
let localSwiftJavaPath = "../../swift-java"
struct AndroidDependencies {
let packages: [Package.Dependency]
let targetDependencies: [Target.Dependency]
let plugins: [Target.PluginUsage]
}
let androidDependencies = isAndroidBuild
? AndroidDependencies(
packages: [
.package(path: localSwiftJavaPath)
],
targetDependencies: [
.product(name: "SwiftJava", package: "swift-java")
],
plugins: [
.plugin(name: "JExtractSwiftPlugin", package: "swift-java")
]
)
: AndroidDependencies(packages: [], targetDependencies: [], plugins: [])
let sharedNetworkLayerProducts: [Product] = isAndroidBuild
? [
.library(
name: "SharedNetworkLayer",
type: .dynamic,
targets: ["SharedNetworkLayer"]
)
]
: [
.library(
name: "SharedNetworkLayer",
targets: ["SharedNetworkLayer"]
)
]
let package = Package(
name: "SharedNetworkLayer",
platforms: [.iOS(.v26), .macOS(.v13)],
products: sharedNetworkLayerProducts,
dependencies: [
.package(path: "../SharedModels")
] + androidDependencies.packages,
targets: [
.target(
name: "SharedNetworkLayer",
dependencies: [
.product(name: "SharedModels", package: "SharedModels")
] + androidDependencies.targetDependencies,
exclude: ["swift-java.config"],
swiftSettings: [
.unsafeFlags(
["-strict-concurrency=minimal"],
.when(platforms: [.android])
)
],
plugins: androidDependencies.plugins
)
]
)