-
Notifications
You must be signed in to change notification settings - Fork 1
/
Package.swift
105 lines (101 loc) · 3.25 KB
/
Package.swift
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
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
// swift-tools-version:5.5
// The swift-tools-version declares the minimum version of Swift required to build this package.
// Copyright 2023 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
import PackageDescription
let package = Package(
name: "AppCheck",
platforms: [.iOS(.v12), .macCatalyst(.v13), .macOS(.v10_15), .tvOS(.v13), .watchOS(.v7)],
products: [
.library(
name: "AppCheckCore",
targets: ["AppCheckCore"]
),
],
dependencies: [
.package(
url: "https://github.com/google/promises.git",
"2.4.0" ..< "3.0.0"
),
.package(
url: "https://github.com/google/GoogleUtilities.git",
"8.0.0" ..< "9.0.0"
),
.package(
url: "https://github.com/erikdoe/ocmock.git",
revision: "2c0bfd373289f4a7716db5d6db471640f91a6507"
),
],
targets: [
.target(name: "AppCheckCore",
dependencies: [
.product(name: "FBLPromises", package: "Promises"),
.product(name: "GULEnvironment", package: "GoogleUtilities"),
.product(name: "GULUserDefaults", package: "GoogleUtilities"),
],
path: "AppCheckCore/Sources",
publicHeadersPath: "Public",
cSettings: [
.headerSearchPath("../.."),
],
linkerSettings: [
.linkedFramework(
"DeviceCheck",
.when(platforms: [.iOS, .macCatalyst, .macOS, .tvOS, .appCheckVisionOS])
),
]),
.testTarget(
name: "AppCheckCoreUnit",
dependencies: [
"AppCheckCore",
.product(name: "OCMock", package: "ocmock"),
],
path: "AppCheckCore/Tests",
exclude: [
// Swift tests are in the target `AppCheckCoreUnitSwift` since mixed language targets are
// not supported (as of Xcode 14.3).
"Unit/Swift",
],
resources: [
.process("Fixture"),
],
cSettings: [
.headerSearchPath("../.."),
]
),
.testTarget(
name: "AppCheckCoreUnitSwift",
dependencies: ["AppCheckCore"],
path: "AppCheckCore/Tests/Unit/Swift",
cSettings: [
.headerSearchPath("../.."),
]
),
]
)
extension Platform {
// Xcode dependent value for the visionOS platform. Namespaced with an "appCheck" prefix to
// prevent any API collisions (such issues should not arise as the manifest APIs should be
// confined to the `Package.swift`).
static var appCheckVisionOS: Self {
#if swift(>=5.9)
// For Xcode 15, return the available `visionOS` platform.
return .visionOS
#else
// For Xcode 14, return `iOS` as `visionOS` is unavailable. Since all targets support iOS,
// this acts as a no-op.
return .iOS
#endif // swift(>=5.9)
}
}