Skip to content

Commit cf7a4f3

Browse files
authored
Allow Swift projects that use JavaScriptKit to compile on Windows (#673)
1 parent aa9aa77 commit cf7a4f3

File tree

3 files changed

+21
-0
lines changed

3 files changed

+21
-0
lines changed

Plugins/BridgeJS/Sources/BridgeJSCommandPlugin/BridgeJSCommandPlugin.swift

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,7 @@
11
#if canImport(PackagePlugin)
2+
#if os(Windows)
3+
import WinSDK
4+
#endif
25
import PackagePlugin
36
@preconcurrency import Foundation
47

@@ -180,7 +183,11 @@ extension Foundation.Process {
180183
let signalSource = DispatchSource.makeSignalSource(signal: signalNo)
181184
signalSource.setEventHandler { [self] in
182185
signalSource.cancel()
186+
#if os(Windows)
187+
_ = TerminateProcess(processHandle, 0)
188+
#else
183189
kill(processIdentifier, signalNo)
190+
#endif
184191
}
185192
signalSource.resume()
186193
return signalSource

Plugins/BridgeJS/Sources/TS2Swift/TS2Swift.swift

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,9 @@ import class Dispatch.DispatchSource
1313
import SwiftParser
1414
import SwiftSyntax
1515

16+
#if os(Windows)
17+
import WinSDK
18+
#endif
1619
#if canImport(BridgeJSCore)
1720
import BridgeJSCore
1821
#endif
@@ -141,7 +144,11 @@ extension Foundation.Process {
141144
let signalSource = DispatchSource.makeSignalSource(signal: signalNo)
142145
signalSource.setEventHandler { [self] in
143146
signalSource.cancel()
147+
#if os(Windows)
148+
_ = TerminateProcess(processHandle, 0)
149+
#else
144150
kill(processIdentifier, signalNo)
151+
#endif
145152
}
146153
signalSource.resume()
147154
return signalSource

Plugins/PackageToJS/Sources/PackageToJS.swift

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
11
import Foundation
22

3+
#if os(Windows)
4+
import WinSDK
5+
#endif
36
struct PackageToJS {
47
struct PackageOptions {
58
enum Platform: String, CaseIterable {
@@ -785,7 +788,11 @@ extension Foundation.Process {
785788
let signalSource = DispatchSource.makeSignalSource(signal: signalNo)
786789
signalSource.setEventHandler { [self] in
787790
signalSource.cancel()
791+
#if os(Windows)
792+
_ = TerminateProcess(processHandle, 0)
793+
#else
788794
kill(processIdentifier, signalNo)
795+
#endif
789796
}
790797
signalSource.resume()
791798
return signalSource

0 commit comments

Comments
 (0)