Merge pull request #84063 from etcwilde/ewilde/runtime-version-number

CMake: Runtime: Extract runtime version number
This commit is contained in:
Evan Wilde
2025-09-05 11:38:29 -07:00
committed by GitHub
9 changed files with 73 additions and 68 deletions

View File

@@ -43,23 +43,16 @@ set(CMAKE_VISIBILITY_INLINES_HIDDEN YES)
set(CMAKE_POSITION_INDEPENDENT_CODE YES)
set(SwiftCore_CMAKE_MODULES_DIR "${CMAKE_SOURCE_DIR}/cmake/modules")
list(APPEND CMAKE_MODULE_PATH ${SwiftCore_CMAKE_MODULES_DIR})
list(APPEND CMAKE_MODULE_PATH
${SwiftCore_CMAKE_MODULES_DIR}
"${CMAKE_SOURCE_DIR}/../cmake/modules")
include(CMakeWorkarounds)
# NOTE: always use the 3-component style as the expansion as
# `${PROJECT_VERSION}` will not extend this to the complete form and this can
# change the behaviour for comparison with non-SemVer compliant parsing. If
# possible, use the 4-version component as that is used to differentiate the
# builds of the runtime for Windows.
if($ENV{BUILD_NUMBER})
# NOTE: SxS modules have a limit on each component being [0-65535].
# https://learn.microsoft.com/en-us/windows/win32/sbscs/assembly-versions
math(EXPR BUILD_NUMBER "$ENV{BUILD_NUMBER} % 65535")
set(BUILD_NUMBER ".${BUILD_NUMBER}")
endif()
include(SwiftProjectVersion)
project(SwiftCore
LANGUAGES C CXX Swift
VERSION 6.3.0${BUILD_NUMBER})
VERSION ${SWIFT_RUNTIME_VERSION})
# The Swift standard library is not intended for use as a sub-library as part of
# another project. It is tightly coupled with the compiler version.

View File

@@ -10,26 +10,18 @@ set(CMAKE_C_VISIBILITY_PRESET "hidden")
set(CMAKE_CXX_VISIBILITY_PRESET "hidden")
set(CMAKE_VISIBILITY_INLINES_HIDDEN YES)
list(APPEND CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake/modules")
list(APPEND CMAKE_MODULE_PATH
"${CMAKE_SOURCE_DIR}/cmake/modules"
"${CMAKE_SOURCE_DIR}/../cmake/modules")
if(POLICY CMP0157 AND CMAKE_Swift_COMPILER_USE_OLD_DRIVER)
cmake_policy(SET CMP0157 OLD)
endif()
# NOTE: always use the 3-component style as the expansion as
# `${PROJECT_VERSION}` will not extend this to the complete form and this can
# change the behaviour for comparison with non-SemVer compliant parsing. If
# possible, use the 4-version component as that is used to differentiate the
# builds of the runtime for Windows.
if($ENV{BUILD_NUMBER})
# NOTE: SxS modules have a limit on each component being [0-65535].
# https://learn.microsoft.com/en-us/windows/win32/sbscs/assembly-versions
math(EXPR BUILD_NUMBER "$ENV{BUILD_NUMBER} % 65535")
set(BUILD_NUMBER ".${BUILD_NUMBER}")
endif()
include(SwiftProjectVersion)
project(SwiftOverlay
LANGUAGES C CXX Swift
VERSION 6.3.0${BUILD_NUMBER})
VERSION ${SWIFT_RUNTIME_VERSION})
set(CMAKE_Swift_LANGUAGE_VERSION 5)

View File

@@ -9,13 +9,14 @@ if(POLICY CMP0157 AND CMAKE_Swift_COMPILER_USE_OLD_DRIVER)
cmake_policy(SET CMP0157 OLD)
endif()
if($ENV{BUILD_NUMBER})
math(EXPR BUILD_NUMBER "$ENV{BUILD_NUMBER} % 65535")
set(BUILD_NUMBER ".${BUILD_NUMBER}")
endif()
list(APPEND CMAKE_MODULE_PATH
"${CMAKE_SOURCE_DIR}/../cmake/modules"
"${CMAKE_SOURCE_DIR}/../../cmake/modules")
include(SwiftProjectVersion)
project(SwiftDifferentiation
LANGUAGES Swift C
VERSION 6.3.0${BUILD_NUMBER})
VERSION ${SWIFT_RUNTIME_VERSION})
if(NOT PROJECT_IS_TOP_LEVEL)
message(SEND_ERROR "Swift Differentiation must build as a standalone project")
@@ -24,8 +25,6 @@ endif()
set(CMAKE_POSITION_INDEPENDENT_CODE YES)
set(CMAKE_Swift_LANGUAGE_VERSION 5)
list(APPEND CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/../cmake/modules")
set(${PROJECT_NAME}_SWIFTC_SOURCE_DIR
"${PROJECT_SOURCE_DIR}/../../../"
CACHE FILEPATH "Path to the root source directory of the Swift compiler")

View File

@@ -9,13 +9,14 @@ if(POLICY CMP0157 AND CMAKE_Swift_COMPILER_USE_OLD_DRIVER)
cmake_policy(SET CMP0157 OLD)
endif()
if($ENV{BUILD_NUMBER})
math(EXPR BUILD_NUMBER "$ENV{BUILD_NUMBER} % 65535")
set(BUILD_NUMBER ".${BUILD_NUMBER}")
endif()
list(APPEND CMAKE_MODULE_PATH
"${CMAKE_SOURCE_DIR}/../cmake/modules"
"${CMAKE_SOURCE_DIR}/../../cmake/modules")
include(SwiftProjectVersion)
project(SwiftDistributed
LANGUAGES C CXX Swift
VERSION 6.3.0${BUILD_NUMBER})
VERSION ${SWIFT_RUNTIME_VERSION})
if(NOT PROJECT_IS_TOP_LEVEL)
message(SEND_ERROR "Swift Distributed must build as a standalone project")
@@ -34,8 +35,6 @@ set(CMAKE_CXX_VISIBILITY_PRESET "hidden")
set(CMAKE_VISIBILITY_INLINES_HIDDEN YES)
list(APPEND CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/../cmake/modules")
set(${PROJECT_NAME}_SWIFTC_SOURCE_DIR
"${PROJECT_SOURCE_DIR}/../../../"
CACHE FILEPATH "Path to the root source directory of the Swift compiler")

View File

@@ -9,13 +9,14 @@ if(POLICY CMP0157 AND CMAKE_Swift_COMPILER_USE_OLD_DRIVER)
cmake_policy(SET CMP0157 OLD)
endif()
if($ENV{BUILD_NUMBER})
math(EXPR BUILD_NUMBER "$ENV{BUILD_NUMBER} % 65535")
set(BUILD_NUMBER ".${BUILD_NUMBER}")
endif()
list(APPEND CMAKE_MODULE_PATH
"${CMAKE_SOURCE_DIR}/../cmake/modules"
"${CMAKE_SOURCE_DIR}/../../cmake/modules")
include(SwiftProjectVersion)
project(SwiftObservation
LANGUAGES Swift CXX
VERSION 6.3.0${BUILD_NUMBER})
VERSION ${SWIFT_RUNTIME_VERSION})
if(NOT PROJECT_IS_TOP_LEVEL)
message(SEND_ERROR "Swift Observation must build as a standalone project")
@@ -26,8 +27,6 @@ set(CMAKE_CXX_STANDARD_REQUIRED YES)
set(CMAKE_CXX_EXTENSIONS NO)
set(CMAKE_POSITION_INDEPENDENT_CODE YES)
list(APPEND CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/../cmake/modules")
set(${PROJECT_NAME}_SWIFTC_SOURCE_DIR
"${PROJECT_SOURCE_DIR}/../../../"
CACHE FILEPATH "Path to the root source directory of the Swift compiler")

View File

@@ -9,13 +9,15 @@ if(POLICY CMP0157 AND CMAKE_Swift_COMPILER_USE_OLD_DRIVER)
cmake_policy(SET CMP0157 OLD)
endif()
if($ENV{BUILD_NUMBER})
math(EXPR BUILD_NUMBER "$ENV{BUILD_NUMBER} % 65535")
set(BUILD_NUMBER ".${BUILD_NUMBER}")
endif()
list(APPEND CMAKE_MODULE_PATH
"${CMAKE_SOURCE_DIR}/../cmake/modules"
"${CMAKE_SOURCE_DIR}/../../cmake/modules")
include(SwiftProjectVersion)
project(SwiftStringProcessing
LANGUAGES Swift C
VERSION 6.3.0${BUILD_NUMBER})
VERSION ${SWIFT_RUNTIME_VERSION})
if(NOT PROJECT_IS_TOP_LEVEL)
message(FATAL_ERROR "Swift StringProcessing must build as a standalone project")
@@ -23,8 +25,6 @@ endif()
set(CMAKE_POSITION_INDEPENDENT_CODE YES)
list(APPEND CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/../cmake/modules")
set(${PROJECT_NAME}_SWIFTC_SOURCE_DIR
"${PROJECT_SOURCE_DIR}/../../../"
CACHE FILEPATH "Path to the root source directory of the Swift compiler")

View File

@@ -9,13 +9,15 @@ if(POLICY CMP0157 AND CMAKE_Swift_COMPILER_USE_OLD_DRIVER)
cmake_policy(SET CMP0157 OLD)
endif()
if($ENV{BUILD_NUMBER})
math(EXPR BUILD_NUMBER "$ENV{BUILD_NUMBER} % 65535")
set(BUILD_NUMBER ".${BUILD_NUMBER}")
endif()
list(APPEND CMAKE_MODULE_PATH
"${CMAKE_SOURCE_DIR}/../cmake/modules"
"${CMAKE_SOURCE_DIR}/../../cmake/modules")
include(SwiftProjectVersion)
project(SwiftSynchronization
LANGUAGES Swift
VERSION 6.3.0${BUILD_NUMBER})
VERSION ${SWIFT_RUNTIME_VERSION})
# FIXME(compnerd) this is a workaround for `GNUInstallDirs` which cannot be used
# with a pure Swift project.
enable_language(C)
@@ -26,8 +28,6 @@ endif()
set(CMAKE_POSITION_INDEPENDENT_CODE YES)
list(APPEND CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/../cmake/modules")
set(${PROJECT_NAME}_SWIFTC_SOURCE_DIR
"${PROJECT_SOURCE_DIR}/../../../"
CACHE FILEPATH "Path to the root source directory of the Swift compiler")

View File

@@ -9,13 +9,15 @@ if(POLICY CMP0157 AND CMAKE_Swift_COMPILER_USE_OLD_DRIVER)
cmake_policy(SET CMP0157 OLD)
endif()
if($ENV{BUILD_NUMBER})
math(EXPR BUILD_NUMBER "$ENV{BUILD_NUMBER} % 65535")
set(BUILD_NUMBER ".${BUILD_NUMBER}")
endif()
list(APPEND CMAKE_MODULE_PATH
"${CMAKE_SOURCE_DIR}/../cmake/modules"
"${CMAKE_SOURCE_DIR}/../../cmake/modules")
include(SwiftProjectVersion)
project(SwiftVolatile
LANGUAGES Swift
VERSION 6.3.0${BUILD_NUMBER})
VERSION ${SWIFT_RUNTIME_VERSION})
# FIXME(compnerd) this is a workaround for `GNUInstallDirs` which cannot be used
# with a pure Swift project.
enable_language(C)
@@ -24,8 +26,6 @@ if(NOT PROJECT_IS_TOP_LEVEL)
message(SEND_ERROR "Swift Observation must build as a standalone project")
endif()
list(APPEND CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/../cmake/modules")
set(${PROJECT_NAME}_SWIFTC_SOURCE_DIR
"${PROJECT_SOURCE_DIR}/../../../"
CACHE FILEPATH "Path to the root source directory of the Swift compiler")

View File

@@ -0,0 +1,23 @@
# This module sets the Swift version number variable consistently across the
# Swift runtime projects.
## Result Variable
#
# ``SWIFT_RUNTIME_VERSION``
# The computed version number applied to apply to the project.
# If ``SWIFT_RUNTIME_VERSION`` is set prior to entering the module, the version
# is not modified.
block(PROPAGATE SWIFT_RUNTIME_VERSION)
if(SWIFT_RUNTIME_VERSION)
return()
endif()
if($ENV{BUILD_NUMBER})
# Microsoft build numbers limit each version number component to [0 - 65535]
# https://learn.microsoft.com/en-us/windows/win32/sbscs/assembly-versions
math(EXPR BUILD_NUMBER "$ENV{BUILD_NUMBER} % 65535")
set(BUILD_NUMBER ".${BUILD_NUMBER}")
endif()
set(SWIFT_RUNTIME_VERSION 6.3.0${BUILD_NUMBER})
endblock()