@@ -23,85 +23,74 @@ if let deploymentTarget = ProcessInfo.processInfo.environment["SWIFTPM_MACOS_DEP
23
23
macOSPlatform = . macOS( . v10_15)
24
24
}
25
25
26
+ let swiftPMDataModelProduct = (
27
+ name: " SwiftPMDataModel " ,
28
+ targets: [
29
+ " SourceControl " ,
30
+ " PackageCollections " ,
31
+ " PackageCollectionsModel " ,
32
+ " PackageModel " ,
33
+ " PackageLoading " ,
34
+ " PackageGraph " ,
35
+ " Xcodeproj " ,
36
+ " Workspace " ,
37
+ ]
38
+ )
39
+
40
+ // The `libSwiftPM` set of interfaces to programatically work with Swift
41
+ // packages. `libSwiftPM` includes all of the SwiftPM code except the
42
+ // command line tools, while `libSwiftPMDataModel` includes only the data model.
43
+ //
44
+ // NOTE: This API is *unstable* and may change at any time.
45
+ let swiftPMProduct = (
46
+ name: " SwiftPM " ,
47
+ targets: swiftPMDataModelProduct. targets + [
48
+ " SPMLLBuild " ,
49
+ " LLBuildManifest " ,
50
+ " Build " ,
51
+ ]
52
+ )
53
+
54
+ /** An array of products which have two versions listed: one dynamically linked, the other with the
55
+ automatic linking type with `-auto` suffix appended to product's name.
56
+ */
57
+ let autoProducts = [ swiftPMProduct, swiftPMDataModelProduct]
58
+
26
59
let package = Package (
27
60
name: " SwiftPM " ,
28
61
platforms: [ macOSPlatform] ,
29
- products: [
30
- // The `libSwiftPM` set of interfaces to programatically work with Swift
31
- // packages. `libSwiftPM` includes all of the SwiftPM code except the
32
- // command line tools, while `libSwiftPMDataModel` includes only the data model.
33
- //
34
- // NOTE: This API is *unstable* and may change at any time.
35
- . library(
36
- name: " SwiftPM " ,
37
- type: . dynamic,
38
- targets: [
39
- " SourceControl " ,
40
- " SPMLLBuild " ,
41
- " PackageCollections " ,
42
- " PackageCollectionsModel " ,
43
- " LLBuildManifest " ,
44
- " PackageModel " ,
45
- " PackageLoading " ,
46
- " PackageGraph " ,
47
- " Build " ,
48
- " Xcodeproj " ,
49
- " Workspace "
50
- ]
51
- ) ,
52
- . library(
53
- name: " SwiftPM-auto " ,
54
- targets: [
55
- " SourceControl " ,
56
- " SPMLLBuild " ,
57
- " LLBuildManifest " ,
58
- " PackageCollections " ,
59
- " PackageCollectionsModel " ,
60
- " PackageModel " ,
61
- " PackageLoading " ,
62
- " PackageGraph " ,
63
- " Build " ,
64
- " Xcodeproj " ,
65
- " Workspace "
66
- ]
67
- ) ,
68
- . library(
69
- name: " SwiftPMDataModel " ,
70
- type: . dynamic,
71
- targets: [
72
- " SourceControl " ,
73
- " PackageCollections " ,
74
- " PackageCollectionsModel " ,
75
- " PackageModel " ,
76
- " PackageLoading " ,
77
- " PackageGraph " ,
78
- " Xcodeproj " ,
79
- " Workspace "
80
- ]
81
- ) ,
82
-
62
+ products:
63
+ autoProducts. flatMap {
64
+ [
65
+ . library(
66
+ name: $0. name,
67
+ type: . dynamic,
68
+ targets: $0. targets
69
+ ) ,
70
+ . library(
71
+ name: " \( $0. name) -auto " ,
72
+ targets: $0. targets
73
+ )
74
+ ]
75
+ } + [
83
76
. library(
84
77
name: " XCBuildSupport " ,
85
78
targets: [ " XCBuildSupport " ]
86
79
) ,
87
-
88
80
. library(
89
81
name: " PackageDescription " ,
90
82
type: . dynamic,
91
83
targets: [ " PackageDescription " ]
92
84
) ,
93
-
94
85
. library(
95
86
name: " PackagePlugin " ,
96
87
type: . dynamic,
97
88
targets: [ " PackagePlugin " ]
98
89
) ,
99
-
100
90
. library(
101
91
name: " PackageCollectionsModel " ,
102
92
targets: [ " PackageCollectionsModel " ]
103
93
) ,
104
-
105
94
. library(
106
95
name: " SwiftPMPackageCollections " ,
107
96
targets: [
@@ -172,7 +161,7 @@ let package = Package(
172
161
dependencies: [ " SwiftToolsSupport-auto " , " Basics " , " PackageLoading " , " PackageModel " , " SourceControl " ] ) ,
173
162
174
163
// MARK: Package Collections
175
-
164
+
176
165
. target(
177
166
/** Package collections models */
178
167
name: " PackageCollectionsModel " ,
0 commit comments