Skip to content

Commit 599b5b6

Browse files
authored
Merge pull request #200 from egorzhdan/windows-1
Fix build on Windows
2 parents 3dfd080 + f74c879 commit 599b5b6

File tree

5 files changed

+20
-0
lines changed

5 files changed

+20
-0
lines changed

Sources/SwiftDriver/CMakeLists.txt

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,7 @@ add_library(SwiftDriver
7979

8080
target_link_libraries(SwiftDriver PUBLIC
8181
TSCBasic
82+
TSCUtility
8283
SwiftOptions
8384
llbuildSwift
8485
CYaml
@@ -90,3 +91,9 @@ set_property(GLOBAL APPEND PROPERTY SWIFTDRIVER_EXPORTS SwiftDriver)
9091
set_target_properties(SwiftDriver PROPERTIES
9192
INTERFACE_INCLUDE_DIRECTORIES ${CMAKE_Swift_MODULE_DIRECTORY})
9293

94+
if(CMAKE_SYSTEM_NAME STREQUAL Windows)
95+
install(TARGETS SwiftDriver
96+
ARCHIVE DESTINATION lib
97+
LIBRARY DESTINATION lib
98+
RUNTIME DESTINATION bin)
99+
endif()

Sources/SwiftDriver/Driver/ToolExecutionDelegate.swift

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,10 +77,12 @@ public struct ToolExecutionDelegate: JobExecutionDelegate {
7777
let finishedMessage = FinishedMessage(exitStatus: Int(code), pid: pid, output: output)
7878
message = ParsableMessage(name: job.kind.rawValue, kind: .finished(finishedMessage))
7979

80+
#if !os(Windows)
8081
case .signalled(let signal):
8182
let errorMessage = strsignal(signal).map { String(cString: $0) } ?? ""
8283
let signalledMessage = SignalledMessage(pid: pid, output: output, errorMessage: errorMessage, signal: Int(signal))
8384
message = ParsableMessage(name: job.kind.rawValue, kind: .signalled(signalledMessage))
85+
#endif
8486
}
8587
emit(message)
8688
}

Sources/SwiftDriver/Execution/DriverExecutor.swift

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,8 +55,10 @@ extension DriverExecutor {
5555
switch result.exitStatus {
5656
case .terminated(let code):
5757
returnCode = Int(code)
58+
#if !os(Windows)
5859
case .signalled(let signal):
5960
returnCode = Int(signal)
61+
#endif
6062
}
6163
throw JobExecutionError.jobFailedWithNonzeroExitCode(returnCode, try result.utf8stderrOutput())
6264
}

Sources/SwiftDriver/Execution/MultiJobExecutor.swift

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -358,8 +358,10 @@ class ExecuteJobRule: LLBuildRule {
358358
if !job.kind.isCompile || code != EXIT_FAILURE {
359359
context.diagnosticsEngine.emit(.error_command_failed(kind: job.kind, code: code))
360360
}
361+
#if !os(Windows)
361362
case let .signalled(signal):
362363
context.diagnosticsEngine.emit(.error_command_signalled(kind: job.kind, signal: signal))
364+
#endif
363365
}
364366
}
365367

Sources/SwiftOptions/CMakeLists.txt

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,3 +24,10 @@ set_property(GLOBAL APPEND PROPERTY SWIFTDRIVER_EXPORTS SwiftOptions)
2424
# NOTE: workaround for CMake not setting up include flags yet
2525
set_target_properties(SwiftOptions PROPERTIES
2626
INTERFACE_INCLUDE_DIRECTORIES ${CMAKE_Swift_MODULE_DIRECTORY})
27+
28+
if(CMAKE_SYSTEM_NAME STREQUAL Windows)
29+
install(TARGETS SwiftOptions
30+
ARCHIVE DESTINATION lib
31+
LIBRARY DESTINATION lib
32+
RUNTIME DESTINATION bin)
33+
endif()

0 commit comments

Comments
 (0)