Skip to content

Commit 09040e5

Browse files
committed
Runtimes: Add Windows version resources
Add a CMake helper and resource template for embedding VS_VERSIONINFO metadata in Swift runtime DLLs and executables built for Windows. The helper stages the resource file per target, fills in Swift runtime version fields, and attaches the resource to runtime libraries and tools. This gives the PE binaries file/product version metadata and satisfies WiX's versioned-keypath handling for runtime installer components.
1 parent 7131b6d commit 09040e5

26 files changed

Lines changed: 189 additions & 0 deletions

File tree

Runtimes/Core/CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@ list(APPEND CMAKE_MODULE_PATH
4646
include(CMakeWorkarounds)
4747

4848
include(SwiftProjectVersion)
49+
include(SwiftAddWindowsVersionResource)
4950
project(SwiftCore
5051
LANGUAGES C CXX Swift
5152
VERSION ${SWIFT_RUNTIME_VERSION})

Runtimes/Core/Concurrency/CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -97,6 +97,7 @@ add_library(swift_Concurrency
9797
"${CMAKE_CURRENT_BINARY_DIR}/Task+init.swift"
9898
"${CMAKE_CURRENT_BINARY_DIR}/TaskGroup+addTask.swift"
9999
"${CMAKE_CURRENT_BINARY_DIR}/Task+immediate.swift")
100+
swift_add_windows_version_resource(swift_Concurrency)
100101

101102
if(SwiftCore_ENABLE_STDLIB_TRACING)
102103
target_compile_definitions(swift_Concurrency

Runtimes/Core/Core/CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -264,6 +264,7 @@ add_library(swiftCore
264264
"${CMAKE_CURRENT_BINARY_DIR}/UnsafeBufferPointer.swift"
265265
"${CMAKE_CURRENT_BINARY_DIR}/UnsafeRawBufferPointer.swift"
266266
"${CMAKE_CURRENT_BINARY_DIR}/Tuple.swift")
267+
swift_add_windows_version_resource(swiftCore)
267268

268269
# https://github.com/swiftlang/swift/issues/77705 - Freestanding and Linux/Android builds both have failures to resolve.
269270
if(NOT LINUX AND NOT ANDROID)

Runtimes/Core/SwiftOnoneSupport/CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
add_library(swiftSwiftOnoneSupport
22
SwiftOnoneSupport.swift
33
"${PROJECT_SOURCE_DIR}/linker-support/magic-symbols-for-install-name.c")
4+
swift_add_windows_version_resource(swiftSwiftOnoneSupport)
45

56
set_target_properties(swiftSwiftOnoneSupport PROPERTIES
67
Swift_MODULE_NAME SwiftOnoneSupport)

Runtimes/Core/SwiftRemoteMirror/CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11

22
add_library(swiftRemoteMirror
33
SwiftRemoteMirror.cpp)
4+
swift_add_windows_version_resource(swiftRemoteMirror)
45
target_compile_definitions(swiftRemoteMirror PUBLIC
56
$<$<NOT:$<BOOL:${BUILD_SHARED_LIBS}>>:swiftRemoteMirror_STATIC>)
67
target_link_libraries(swiftRemoteMirror PRIVATE

Runtimes/Overlay/Android/Android/CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ add_library(swiftAndroid
77
Platform.swift
88
POSIXError.swift
99
TiocConstants.swift)
10+
swift_add_windows_version_resource(swiftAndroid)
1011
set_target_properties(swiftAndroid PROPERTIES
1112
Swift_MODULE_NAME Android)
1213
target_compile_definitions(swiftAndroid PRIVATE

Runtimes/Overlay/Android/Math/CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11

22
add_library(swift_math
33
Math.swift)
4+
swift_add_windows_version_resource(swift_math)
45
set_target_properties(swift_math PROPERTIES
56
Swift_MODULE_NAME _math)
67
target_link_libraries(swift_math PRIVATE

Runtimes/Overlay/CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ if(POLICY CMP0157 AND CMAKE_Swift_COMPILER_USE_OLD_DRIVER)
1919
endif()
2020

2121
include(SwiftProjectVersion)
22+
include(SwiftAddWindowsVersionResource)
2223
project(SwiftOverlay
2324
LANGUAGES C CXX Swift
2425
VERSION ${SWIFT_RUNTIME_VERSION})

Runtimes/Overlay/Linux/glibc/CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ add_library(swiftGlibc
99
Platform.swift
1010
TiocConstants.swift
1111
tgmath.swift)
12+
swift_add_windows_version_resource(swiftGlibc)
1213

1314
target_link_libraries(swiftGlibc
1415
PRIVATE

Runtimes/Overlay/WASI/WASILibc/CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ add_library(swiftWASILibc
88
tgmath.swift
99
TiocConstants.swift
1010
WASILibc.swift)
11+
swift_add_windows_version_resource(swiftWASILibc)
1112
set_target_properties(swiftWASILibc PROPERTIES
1213
Swift_MODULE_NAME WASILibc)
1314
target_compile_definitions(swiftWASILibc PRIVATE

0 commit comments

Comments
 (0)