@@ -70,6 +70,11 @@ var dependencies: [Package.Dependency] {
70
70
}
71
71
}
72
72
73
+ let wasiLibcCSettings : [ CSetting ] = [
74
+ . define( " _WASI_EMULATED_SIGNAL " , . when( platforms: [ . wasi] ) ) ,
75
+ . define( " _WASI_EMULATED_MMAN " , . when( platforms: [ . wasi] ) ) ,
76
+ ]
77
+
73
78
let package = Package (
74
79
name: " swift-foundation " ,
75
80
platforms: [ . macOS( " 13.3 " ) , . iOS( " 16.4 " ) , . tvOS( " 16.4 " ) , . watchOS( " 9.4 " ) ] ,
@@ -80,15 +85,23 @@ let package = Package(
80
85
dependencies: dependencies,
81
86
targets: [
82
87
// _FoundationCShims (Internal)
83
- . target( name: " _FoundationCShims " ,
84
- cSettings: [ . define( " _CRT_SECURE_NO_WARNINGS " ,
85
- . when( platforms: [ . windows] ) ) ] ) ,
88
+ . target(
89
+ name: " _FoundationCShims " ,
90
+ cSettings: [
91
+ . define( " _CRT_SECURE_NO_WARNINGS " , . when( platforms: [ . windows] ) )
92
+ ] + wasiLibcCSettings
93
+ ) ,
86
94
87
95
// TestSupport (Internal)
88
- . target( name: " TestSupport " , dependencies: [
89
- " FoundationEssentials " ,
90
- " FoundationInternationalization " ,
91
- ] , swiftSettings: availabilityMacros + concurrencyChecking) ,
96
+ . target(
97
+ name: " TestSupport " ,
98
+ dependencies: [
99
+ " FoundationEssentials " ,
100
+ " FoundationInternationalization " ,
101
+ ] ,
102
+ cSettings: wasiLibcCSettings,
103
+ swiftSettings: availabilityMacros + concurrencyChecking
104
+ ) ,
92
105
93
106
// FoundationEssentials
94
107
. target(
@@ -119,11 +132,14 @@ let package = Package(
119
132
] ,
120
133
cSettings: [
121
134
. define( " _GNU_SOURCE " , . when( platforms: [ . linux] ) )
122
- ] ,
135
+ ] + wasiLibcCSettings ,
123
136
swiftSettings: [
124
137
. enableExperimentalFeature( " VariadicGenerics " ) ,
125
138
. enableExperimentalFeature( " AccessLevelOnImport " )
126
- ] + availabilityMacros + concurrencyChecking
139
+ ] + availabilityMacros + concurrencyChecking,
140
+ linkerSettings: [
141
+ . linkedLibrary( " wasi-emulated-getpid " , . when( platforms: [ . wasi] ) ) ,
142
+ ]
127
143
) ,
128
144
. testTarget(
129
145
name: " FoundationEssentialsTests " ,
@@ -155,6 +171,7 @@ let package = Package(
155
171
" CMakeLists.txt " ,
156
172
" Predicate/CMakeLists.txt "
157
173
] ,
174
+ cSettings: wasiLibcCSettings,
158
175
swiftSettings: [
159
176
. enableExperimentalFeature( " AccessLevelOnImport " )
160
177
] + availabilityMacros + concurrencyChecking
0 commit comments