forked from apple/swift-http-types
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathPackage.swift
More file actions
70 lines (65 loc) · 2.14 KB
/
Copy pathPackage.swift
File metadata and controls
70 lines (65 loc) · 2.14 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
68
69
70
// swift-tools-version:6.1
import PackageDescription
let package = Package(
name: "swift-http-types",
products: [
.library(name: "HTTPTypes", targets: ["HTTPTypes"]),
.library(name: "HTTPTypesFoundation", targets: ["HTTPTypesFoundation"]),
],
traits: [
.trait(name: "FoundationURL", description: "Enable HTTPRequest conveniences with Foundation URL"),
.default(enabledTraits: ["FoundationURL"]),
],
targets: [
.target(name: "HTTPTypes"),
.target(
name: "HTTPTypesFoundation",
dependencies: [
"HTTPTypes"
]
),
.testTarget(
name: "HTTPTypesTests",
dependencies: [
"HTTPTypes"
]
),
.testTarget(
name: "HTTPTypesFoundationTests",
dependencies: [
"HTTPTypesFoundation"
]
),
]
)
let availabilityMacros: KeyValuePairs<String, String> = [
"HTTPTypes 1.0": "macOS 10.0",
"HTTPTypes 1.1": "macOS 10.0",
"HTTPTypes 1.2": "macOS 10.0",
"HTTPTypes 1.3": "macOS 10.0",
"HTTPTypes 1.6": "macOS 10.0",
"HTTPTypes 1.7": "macOS 10.0",
]
for target in package.targets {
var settings = target.swiftSettings ?? []
settings.append(.enableUpcomingFeature("InternalImportsByDefault"))
settings += availabilityMacros.map { name, value in
.enableExperimentalFeature("AvailabilityMacro=\(name): \(value)")
}
target.swiftSettings = settings
}
// --- STANDARD CROSS-REPO SETTINGS DO NOT EDIT --- //
for target in package.targets {
switch target.type {
case .regular, .test, .executable:
var settings = target.swiftSettings ?? []
// https://github.com/swiftlang/swift-evolution/blob/main/proposals/0444-member-import-visibility.md
settings.append(.enableUpcomingFeature("MemberImportVisibility"))
target.swiftSettings = settings
case .macro, .plugin, .system, .binary:
() // not applicable
@unknown default:
() // we don't know what to do here, do nothing
}
}
// --- END: STANDARD CROSS-REPO SETTINGS DO NOT EDIT --- //