From 0c78be760fb1f789a8aff00d19f5ed2316e3c92b Mon Sep 17 00:00:00 2001 From: Michael Taylor Date: Tue, 24 Feb 2026 16:53:42 +1300 Subject: [PATCH] Fix building tools on Windows --- .../BridgeJSCommandPlugin/BridgeJSCommandPlugin.swift | 7 +++++++ Plugins/BridgeJS/Sources/TS2Swift/TS2Swift.swift | 7 +++++++ Plugins/PackageToJS/Sources/PackageToJS.swift | 7 +++++++ 3 files changed, 21 insertions(+) diff --git a/Plugins/BridgeJS/Sources/BridgeJSCommandPlugin/BridgeJSCommandPlugin.swift b/Plugins/BridgeJS/Sources/BridgeJSCommandPlugin/BridgeJSCommandPlugin.swift index a45a06188..23fbae567 100644 --- a/Plugins/BridgeJS/Sources/BridgeJSCommandPlugin/BridgeJSCommandPlugin.swift +++ b/Plugins/BridgeJS/Sources/BridgeJSCommandPlugin/BridgeJSCommandPlugin.swift @@ -1,4 +1,7 @@ #if canImport(PackagePlugin) +#if os(Windows) +import WinSDK +#endif import PackagePlugin @preconcurrency import Foundation @@ -180,7 +183,11 @@ extension Foundation.Process { let signalSource = DispatchSource.makeSignalSource(signal: signalNo) signalSource.setEventHandler { [self] in signalSource.cancel() + #if os(Windows) + _ = TerminateProcess(processHandle, 0) + #else kill(processIdentifier, signalNo) + #endif } signalSource.resume() return signalSource diff --git a/Plugins/BridgeJS/Sources/TS2Swift/TS2Swift.swift b/Plugins/BridgeJS/Sources/TS2Swift/TS2Swift.swift index 6337dcf27..42a6775ff 100644 --- a/Plugins/BridgeJS/Sources/TS2Swift/TS2Swift.swift +++ b/Plugins/BridgeJS/Sources/TS2Swift/TS2Swift.swift @@ -13,6 +13,9 @@ import class Dispatch.DispatchSource import SwiftParser import SwiftSyntax +#if os(Windows) +import WinSDK +#endif #if canImport(BridgeJSCore) import BridgeJSCore #endif @@ -141,7 +144,11 @@ extension Foundation.Process { let signalSource = DispatchSource.makeSignalSource(signal: signalNo) signalSource.setEventHandler { [self] in signalSource.cancel() + #if os(Windows) + _ = TerminateProcess(processHandle, 0) + #else kill(processIdentifier, signalNo) + #endif } signalSource.resume() return signalSource diff --git a/Plugins/PackageToJS/Sources/PackageToJS.swift b/Plugins/PackageToJS/Sources/PackageToJS.swift index 3e22736be..ff3e2ce5a 100644 --- a/Plugins/PackageToJS/Sources/PackageToJS.swift +++ b/Plugins/PackageToJS/Sources/PackageToJS.swift @@ -1,5 +1,8 @@ import Foundation +#if os(Windows) +import WinSDK +#endif struct PackageToJS { struct PackageOptions { enum Platform: String, CaseIterable { @@ -785,7 +788,11 @@ extension Foundation.Process { let signalSource = DispatchSource.makeSignalSource(signal: signalNo) signalSource.setEventHandler { [self] in signalSource.cancel() + #if os(Windows) + _ = TerminateProcess(processHandle, 0) + #else kill(processIdentifier, signalNo) + #endif } signalSource.resume() return signalSource