File tree Expand file tree Collapse file tree 2 files changed +41
-2
lines changed Expand file tree Collapse file tree 2 files changed +41
-2
lines changed Original file line number Diff line number Diff line change @@ -133,7 +133,7 @@ extension Triple {
133
133
/// The file extension for dynamic libraries (eg. `.dll`, `.so`, or `.dylib`)
134
134
public var dynamicLibraryExtension : String {
135
135
guard let os = self . os else {
136
- fatalError ( " Cannot create dynamic libraries unknown os. " )
136
+ fatalError ( " Cannot create dynamic libraries for unknown os. " )
137
137
}
138
138
139
139
switch os {
@@ -146,7 +146,24 @@ extension Triple {
146
146
case . wasi:
147
147
return " .wasm "
148
148
default :
149
- fatalError ( " Cannot create dynamic libraries for os \" \( os) \" . " )
149
+ break
150
+ }
151
+
152
+ guard let objectFormat = self . objectFormat else {
153
+ fatalError ( " Cannot create dynamic libraries for unknown object format. " )
154
+ }
155
+
156
+ switch objectFormat {
157
+ case . coff:
158
+ return " .coff "
159
+ case . elf:
160
+ return " .elf "
161
+ case . macho:
162
+ return " .macho "
163
+ case . wasm:
164
+ return " .wasm "
165
+ case . xcoff:
166
+ return " .xcoff "
150
167
}
151
168
}
152
169
Original file line number Diff line number Diff line change @@ -209,11 +209,33 @@ final class TripleTests: XCTestCase {
209
209
func testWASI( ) throws {
210
210
let wasi = try Triple ( " wasm32-unknown-wasi " )
211
211
212
+
213
+
212
214
// WASI dynamic libraries are only experimental,
213
215
// but SwiftPM requires this property not to crash.
214
216
_ = wasi. dynamicLibraryExtension
215
217
}
216
218
219
+ func testNoneOSDynamicLibrary( ) throws {
220
+ // Dynamic libraries aren't actually supported for OS none, but swiftpm
221
+ // wants an extension to avoid crashing during build planning.
222
+ try XCTAssertEqual (
223
+ Triple ( " armv7em-unknown-none-coff " ) . dynamicLibraryExtension,
224
+ " .coff " )
225
+ try XCTAssertEqual (
226
+ Triple ( " armv7em-unknown-none-elf " ) . dynamicLibraryExtension,
227
+ " .elf " )
228
+ try XCTAssertEqual (
229
+ Triple ( " armv7em-unknown-none-macho " ) . dynamicLibraryExtension,
230
+ " .macho " )
231
+ try XCTAssertEqual (
232
+ Triple ( " armv7em-unknown-none-wasm " ) . dynamicLibraryExtension,
233
+ " .wasm " )
234
+ try XCTAssertEqual (
235
+ Triple ( " armv7em-unknown-none-xcoff " ) . dynamicLibraryExtension,
236
+ " .xcoff " )
237
+ }
238
+
217
239
func testIsRuntimeCompatibleWith( ) throws {
218
240
try XCTAssertTrue ( Triple ( " x86_64-apple-macosx " ) . isRuntimeCompatible ( with: Triple ( " x86_64-apple-macosx " ) ) )
219
241
try XCTAssertTrue ( Triple ( " x86_64-unknown-linux " ) . isRuntimeCompatible ( with: Triple ( " x86_64-unknown-linux " ) ) )
You can’t perform that action at this time.
0 commit comments