mirror of
https://github.com/apple/swift.git
synced 2025-12-21 12:14:44 +01:00
Merge remote-tracking branch 'origin/main' into rebranch
This commit is contained in:
@@ -744,6 +744,12 @@ if("${SWIFT_HOST_VARIANT_SDK}" STREQUAL "LINUX")
|
|||||||
set(SWIFT_PRIMARY_VARIANT_ARCH_default "${SWIFT_HOST_VARIANT_ARCH}")
|
set(SWIFT_PRIMARY_VARIANT_ARCH_default "${SWIFT_HOST_VARIANT_ARCH}")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
is_sdk_requested(FREESTANDING swift_build_freestanding)
|
||||||
|
if(swift_build_freestanding AND (SWIFT_FREESTANDING_FLAVOR STREQUAL "linux"))
|
||||||
|
# TODO
|
||||||
|
# configure_sdk_unix("FREESTANDING" "${SWIFT_HOST_VARIANT_ARCH}")
|
||||||
|
endif()
|
||||||
|
|
||||||
elseif("${SWIFT_HOST_VARIANT_SDK}" STREQUAL "FREEBSD")
|
elseif("${SWIFT_HOST_VARIANT_SDK}" STREQUAL "FREEBSD")
|
||||||
|
|
||||||
set(SWIFT_HOST_VARIANT "freebsd" CACHE STRING
|
set(SWIFT_HOST_VARIANT "freebsd" CACHE STRING
|
||||||
|
|||||||
@@ -27,7 +27,7 @@ if(swift_build_osx)
|
|||||||
endif()
|
endif()
|
||||||
|
|
||||||
is_sdk_requested(FREESTANDING swift_build_freestanding)
|
is_sdk_requested(FREESTANDING swift_build_freestanding)
|
||||||
if(swift_build_freestanding)
|
if(swift_build_freestanding AND (SWIFT_FREESTANDING_FLAVOR STREQUAL "apple"))
|
||||||
set(SWIFT_FREESTANDING_SDK "" CACHE STRING
|
set(SWIFT_FREESTANDING_SDK "" CACHE STRING
|
||||||
"Which SDK to use when building the FREESTANDING stdlib")
|
"Which SDK to use when building the FREESTANDING stdlib")
|
||||||
set(SWIFT_FREESTANDING_TRIPLE_NAME "" CACHE STRING
|
set(SWIFT_FREESTANDING_TRIPLE_NAME "" CACHE STRING
|
||||||
@@ -45,6 +45,8 @@ if(swift_build_freestanding)
|
|||||||
configure_target_variant(FREESTANDING-RA "FREESTANDING Release+Asserts" FREESTANDING RA "Release+Asserts")
|
configure_target_variant(FREESTANDING-RA "FREESTANDING Release+Asserts" FREESTANDING RA "Release+Asserts")
|
||||||
configure_target_variant(FREESTANDING-R "FREESTANDING Release" FREESTANDING R "Release")
|
configure_target_variant(FREESTANDING-R "FREESTANDING Release" FREESTANDING R "Release")
|
||||||
configure_target_variant(FREESTANDING-S "FREESTANDING MinSizeRelease" FREESTANDING S "MinSizeRelease")
|
configure_target_variant(FREESTANDING-S "FREESTANDING MinSizeRelease" FREESTANDING S "MinSizeRelease")
|
||||||
|
|
||||||
|
set(SWIFT_FREESTANDING_TEST_DEPENDENCIES "Darwin")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# Compatible cross-compile SDKS for Darwin OSes: IOS, IOS_SIMULATOR, TVOS,
|
# Compatible cross-compile SDKS for Darwin OSes: IOS, IOS_SIMULATOR, TVOS,
|
||||||
|
|||||||
@@ -3521,7 +3521,9 @@ public:
|
|||||||
for (auto element : proto->getInherited()) {
|
for (auto element : proto->getInherited()) {
|
||||||
auto elementType = element.getType();
|
auto elementType = element.getType();
|
||||||
assert(!elementType || !elementType->hasArchetype());
|
assert(!elementType || !elementType->hasArchetype());
|
||||||
if (elementType && elementType->is<ProtocolType>())
|
if (elementType &&
|
||||||
|
(elementType->is<ProtocolType>() ||
|
||||||
|
elementType->is<ProtocolCompositionType>()))
|
||||||
dependencyTypes.insert(elementType);
|
dependencyTypes.insert(elementType);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -79,6 +79,9 @@ option(SWIFT_BUILD_TEST_SUPPORT_MODULES
|
|||||||
"Whether to build StdlibUnittest and other test support modules. Defaults to On when SWIFT_BUILD_SDK_OVERLAY is On, or when SWIFT_INCLUDE_TESTS is On."
|
"Whether to build StdlibUnittest and other test support modules. Defaults to On when SWIFT_BUILD_SDK_OVERLAY is On, or when SWIFT_INCLUDE_TESTS is On."
|
||||||
"${SWIFT_BUILD_TEST_SUPPORT_MODULES_default}")
|
"${SWIFT_BUILD_TEST_SUPPORT_MODULES_default}")
|
||||||
|
|
||||||
|
option(SWIFT_FREESTANDING_FLAVOR
|
||||||
|
"When building the FREESTANDING stdlib, which build style to use (options: apple, linux)")
|
||||||
|
|
||||||
set(SWIFT_STDLIB_ENABLE_LTO OFF CACHE STRING "Build Swift stdlib with LTO. One
|
set(SWIFT_STDLIB_ENABLE_LTO OFF CACHE STRING "Build Swift stdlib with LTO. One
|
||||||
must specify the form of LTO by setting this to one of: 'full', 'thin'. This
|
must specify the form of LTO by setting this to one of: 'full', 'thin'. This
|
||||||
option only affects the standard library and runtime, not tools.")
|
option only affects the standard library and runtime, not tools.")
|
||||||
|
|||||||
@@ -46,7 +46,7 @@ add_swift_target_library(swiftStdlibUnittest ${SWIFT_STDLIB_LIBRARY_BUILD_TYPES}
|
|||||||
SWIFT_MODULE_DEPENDS_OSX Darwin
|
SWIFT_MODULE_DEPENDS_OSX Darwin
|
||||||
SWIFT_MODULE_DEPENDS_TVOS Darwin
|
SWIFT_MODULE_DEPENDS_TVOS Darwin
|
||||||
SWIFT_MODULE_DEPENDS_WATCHOS Darwin
|
SWIFT_MODULE_DEPENDS_WATCHOS Darwin
|
||||||
SWIFT_MODULE_DEPENDS_FREESTANDING Darwin
|
SWIFT_MODULE_DEPENDS_FREESTANDING "${SWIFT_FREESTANDING_TEST_DEPENDENCIES}"
|
||||||
SWIFT_MODULE_DEPENDS_LINUX Glibc
|
SWIFT_MODULE_DEPENDS_LINUX Glibc
|
||||||
SWIFT_MODULE_DEPENDS_FREEBSD Glibc
|
SWIFT_MODULE_DEPENDS_FREEBSD Glibc
|
||||||
SWIFT_MODULE_DEPENDS_OPENBSD Glibc
|
SWIFT_MODULE_DEPENDS_OPENBSD Glibc
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ add_swift_target_library(swiftSwiftPrivateLibcExtras ${SWIFT_STDLIB_LIBRARY_BUIL
|
|||||||
SWIFT_MODULE_DEPENDS_IOS Darwin
|
SWIFT_MODULE_DEPENDS_IOS Darwin
|
||||||
SWIFT_MODULE_DEPENDS_TVOS Darwin
|
SWIFT_MODULE_DEPENDS_TVOS Darwin
|
||||||
SWIFT_MODULE_DEPENDS_WATCHOS Darwin
|
SWIFT_MODULE_DEPENDS_WATCHOS Darwin
|
||||||
SWIFT_MODULE_DEPENDS_FREESTANDING Darwin
|
SWIFT_MODULE_DEPENDS_FREESTANDING "${SWIFT_FREESTANDING_TEST_DEPENDENCIES}"
|
||||||
SWIFT_MODULE_DEPENDS_LINUX Glibc
|
SWIFT_MODULE_DEPENDS_LINUX Glibc
|
||||||
SWIFT_MODULE_DEPENDS_FREEBSD Glibc
|
SWIFT_MODULE_DEPENDS_FREEBSD Glibc
|
||||||
SWIFT_MODULE_DEPENDS_OPENBSD Glibc
|
SWIFT_MODULE_DEPENDS_OPENBSD Glibc
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ add_swift_target_library(swiftSwiftPrivateThreadExtras ${SWIFT_STDLIB_LIBRARY_BU
|
|||||||
SWIFT_MODULE_DEPENDS_OSX Darwin
|
SWIFT_MODULE_DEPENDS_OSX Darwin
|
||||||
SWIFT_MODULE_DEPENDS_TVOS Darwin
|
SWIFT_MODULE_DEPENDS_TVOS Darwin
|
||||||
SWIFT_MODULE_DEPENDS_WATCHOS Darwin
|
SWIFT_MODULE_DEPENDS_WATCHOS Darwin
|
||||||
SWIFT_MODULE_DEPENDS_FREESTANDING Darwin
|
SWIFT_MODULE_DEPENDS_FREESTANDING "${SWIFT_FREESTANDING_TEST_DEPENDENCIES}"
|
||||||
SWIFT_MODULE_DEPENDS_LINUX Glibc
|
SWIFT_MODULE_DEPENDS_LINUX Glibc
|
||||||
SWIFT_MODULE_DEPENDS_FREEBSD Glibc
|
SWIFT_MODULE_DEPENDS_FREEBSD Glibc
|
||||||
SWIFT_MODULE_DEPENDS_OPENBSD Glibc
|
SWIFT_MODULE_DEPENDS_OPENBSD Glibc
|
||||||
|
|||||||
@@ -11,6 +11,10 @@ if(NOT BUILD_STANDALONE)
|
|||||||
list(APPEND darwin_depends copy_apinotes)
|
list(APPEND darwin_depends copy_apinotes)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
set(swiftDarwin_target_sdks ALL_APPLE_PLATFORMS)
|
||||||
|
if(SWIFT_FREESTANDING_FLAVOR STREQUAL "apple")
|
||||||
|
set(swiftDarwin_target_sdks ALL_APPLE_PLATFORMS FREESTANDING)
|
||||||
|
endif()
|
||||||
add_swift_target_library(swiftDarwin ${SWIFT_STDLIB_LIBRARY_BUILD_TYPES} IS_SDK_OVERLAY
|
add_swift_target_library(swiftDarwin ${SWIFT_STDLIB_LIBRARY_BUILD_TYPES} IS_SDK_OVERLAY
|
||||||
${swift_platform_sources}
|
${swift_platform_sources}
|
||||||
POSIXError.swift
|
POSIXError.swift
|
||||||
@@ -27,11 +31,15 @@ add_swift_target_library(swiftDarwin ${SWIFT_STDLIB_LIBRARY_BUILD_TYPES} IS_SDK_
|
|||||||
${SWIFT_STANDARD_LIBRARY_SWIFT_FLAGS}
|
${SWIFT_STANDARD_LIBRARY_SWIFT_FLAGS}
|
||||||
-Xfrontend -disable-objc-attr-requires-foundation-module
|
-Xfrontend -disable-objc-attr-requires-foundation-module
|
||||||
LINK_FLAGS "${SWIFT_RUNTIME_SWIFT_LINK_FLAGS}"
|
LINK_FLAGS "${SWIFT_RUNTIME_SWIFT_LINK_FLAGS}"
|
||||||
TARGET_SDKS ALL_APPLE_PLATFORMS FREESTANDING
|
TARGET_SDKS "${swiftDarwin_target_sdks}"
|
||||||
INSTALL_IN_COMPONENT sdk-overlay
|
INSTALL_IN_COMPONENT sdk-overlay
|
||||||
|
|
||||||
DEPENDS ${darwin_depends})
|
DEPENDS ${darwin_depends})
|
||||||
|
|
||||||
|
set(swiftGlibc_target_sdks ANDROID CYGWIN FREEBSD OPENBSD LINUX HAIKU)
|
||||||
|
if(SWIFT_FREESTANDING_FLAVOR STREQUAL "linux")
|
||||||
|
set(swiftGlibc_target_sdks ANDROID CYGWIN FREEBSD OPENBSD LINUX HAIKU FREESTANDING)
|
||||||
|
endif()
|
||||||
add_swift_target_library(swiftGlibc ${SWIFT_STDLIB_LIBRARY_BUILD_TYPES} IS_SDK_OVERLAY
|
add_swift_target_library(swiftGlibc ${SWIFT_STDLIB_LIBRARY_BUILD_TYPES} IS_SDK_OVERLAY
|
||||||
${swift_platform_sources}
|
${swift_platform_sources}
|
||||||
POSIXError.swift
|
POSIXError.swift
|
||||||
@@ -44,7 +52,7 @@ add_swift_target_library(swiftGlibc ${SWIFT_STDLIB_LIBRARY_BUILD_TYPES} IS_SDK_O
|
|||||||
${SWIFT_RUNTIME_SWIFT_COMPILE_FLAGS}
|
${SWIFT_RUNTIME_SWIFT_COMPILE_FLAGS}
|
||||||
${SWIFT_STANDARD_LIBRARY_SWIFT_FLAGS}
|
${SWIFT_STANDARD_LIBRARY_SWIFT_FLAGS}
|
||||||
LINK_FLAGS "${SWIFT_RUNTIME_SWIFT_LINK_FLAGS}"
|
LINK_FLAGS "${SWIFT_RUNTIME_SWIFT_LINK_FLAGS}"
|
||||||
TARGET_SDKS ANDROID CYGWIN FREEBSD OPENBSD LINUX HAIKU
|
TARGET_SDKS "${swiftGlibc_target_sdks}"
|
||||||
INSTALL_IN_COMPONENT sdk-overlay
|
INSTALL_IN_COMPONENT sdk-overlay
|
||||||
DEPENDS glibc_modulemap)
|
DEPENDS glibc_modulemap)
|
||||||
|
|
||||||
|
|||||||
@@ -43,6 +43,8 @@ public protocol HiddenProtocol {
|
|||||||
associatedtype Value
|
associatedtype Value
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public protocol HiddenProtocol2 {}
|
||||||
|
|
||||||
public protocol HiddenProtocolWithOverride {
|
public protocol HiddenProtocolWithOverride {
|
||||||
func hiddenOverride()
|
func hiddenOverride()
|
||||||
}
|
}
|
||||||
@@ -98,6 +100,15 @@ public class SomeClass {
|
|||||||
func funcUsingIoiType(_ a: HiddenClass) {}
|
func funcUsingIoiType(_ a: HiddenClass) {}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Check that we recover from a reference to an implementation-only
|
||||||
|
// imported type in a protocol composition. rdar://78631465
|
||||||
|
protocol CompositionMemberInheriting : HiddenProtocol2 {}
|
||||||
|
protocol CompositionMemberSimple {}
|
||||||
|
protocol InheritingFromComposition : CompositionMemberInheriting & CompositionMemberSimple {}
|
||||||
|
struct StructInheritingFromComposition : CompositionMemberInheriting & CompositionMemberSimple {}
|
||||||
|
class ClassInheritingFromComposition : CompositionMemberInheriting & CompositionMemberSimple {}
|
||||||
|
protocol InheritingFromCompositionDirect : CompositionMemberSimple & HiddenProtocol2 {}
|
||||||
|
|
||||||
#elseif CLIENT_APP
|
#elseif CLIENT_APP
|
||||||
|
|
||||||
import public_lib
|
import public_lib
|
||||||
|
|||||||
@@ -2443,6 +2443,7 @@ mixin-preset=
|
|||||||
stdlib-deployment-targets=freestanding-x86_64
|
stdlib-deployment-targets=freestanding-x86_64
|
||||||
swift-primary-variant-sdk=FREESTANDING
|
swift-primary-variant-sdk=FREESTANDING
|
||||||
swift-primary-variant-arch=x86_64
|
swift-primary-variant-arch=x86_64
|
||||||
|
swift-freestanding-flavor=apple
|
||||||
swift-freestanding-sdk=macosx
|
swift-freestanding-sdk=macosx
|
||||||
# For now, until clang/swiftc works correctly with "none-macho" as the OS part of target triple.
|
# For now, until clang/swiftc works correctly with "none-macho" as the OS part of target triple.
|
||||||
swift-freestanding-triple-name=macosx11.0
|
swift-freestanding-triple-name=macosx11.0
|
||||||
|
|||||||
@@ -207,10 +207,11 @@ KNOWN_SETTINGS=(
|
|||||||
common-swift-flags "" "Flags used for Swift targets other than the stdlib, like the corelibs"
|
common-swift-flags "" "Flags used for Swift targets other than the stdlib, like the corelibs"
|
||||||
|
|
||||||
## FREESTANDING Stdlib Options
|
## FREESTANDING Stdlib Options
|
||||||
swift-freestanding-sdk "" "which SDK to use when building the FREESTANDING stdlib"
|
swift-freestanding-flavor "" "when building the FREESTANDING stdlib, which build style to use (options: apple, linux)"
|
||||||
swift-freestanding-triple-name "" "which triple name (e.g. 'none-macho') to use when building the FREESTANDING stdlib"
|
swift-freestanding-sdk "" "which SDK to use when building the FREESTANDING stdlib"
|
||||||
swift-freestanding-module-name "" "which .swiftmodule name (e.g. 'freestanding') to use when building the FREESTANDING stdlib"
|
swift-freestanding-triple-name "" "which triple name (e.g. 'none-macho') to use when building the FREESTANDING stdlib"
|
||||||
swift-freestanding-archs "" "space-separated list of which architectures to build when building the FREESTANDING stdlib"
|
swift-freestanding-module-name "" "which .swiftmodule name (e.g. 'freestanding') to use when building the FREESTANDING stdlib"
|
||||||
|
swift-freestanding-archs "" "space-separated list of which architectures to build when building the FREESTANDING stdlib"
|
||||||
|
|
||||||
## Uncategorised
|
## Uncategorised
|
||||||
install-prefix "" "installation prefix"
|
install-prefix "" "installation prefix"
|
||||||
@@ -2072,6 +2073,13 @@ for host in "${ALL_HOSTS[@]}"; do
|
|||||||
)
|
)
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if [ "${SWIFT_FREESTANDING_FLAVOR}" ] ; then
|
||||||
|
cmake_options=(
|
||||||
|
"${cmake_options[@]}"
|
||||||
|
-DSWIFT_FREESTANDING_FLAVOR:STRING="${SWIFT_FREESTANDING_FLAVOR}"
|
||||||
|
)
|
||||||
|
fi
|
||||||
|
|
||||||
if [ "${SWIFT_FREESTANDING_SDK}" ] ; then
|
if [ "${SWIFT_FREESTANDING_SDK}" ] ; then
|
||||||
cmake_options=(
|
cmake_options=(
|
||||||
"${cmake_options[@]}"
|
"${cmake_options[@]}"
|
||||||
|
|||||||
Reference in New Issue
Block a user