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}")
|
||||
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")
|
||||
|
||||
set(SWIFT_HOST_VARIANT "freebsd" CACHE STRING
|
||||
|
||||
@@ -27,7 +27,7 @@ if(swift_build_osx)
|
||||
endif()
|
||||
|
||||
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
|
||||
"Which SDK to use when building the FREESTANDING stdlib")
|
||||
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-R "FREESTANDING Release" FREESTANDING R "Release")
|
||||
configure_target_variant(FREESTANDING-S "FREESTANDING MinSizeRelease" FREESTANDING S "MinSizeRelease")
|
||||
|
||||
set(SWIFT_FREESTANDING_TEST_DEPENDENCIES "Darwin")
|
||||
endif()
|
||||
|
||||
# Compatible cross-compile SDKS for Darwin OSes: IOS, IOS_SIMULATOR, TVOS,
|
||||
|
||||
@@ -3521,7 +3521,9 @@ public:
|
||||
for (auto element : proto->getInherited()) {
|
||||
auto elementType = element.getType();
|
||||
assert(!elementType || !elementType->hasArchetype());
|
||||
if (elementType && elementType->is<ProtocolType>())
|
||||
if (elementType &&
|
||||
(elementType->is<ProtocolType>() ||
|
||||
elementType->is<ProtocolCompositionType>()))
|
||||
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."
|
||||
"${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
|
||||
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.")
|
||||
|
||||
@@ -46,7 +46,7 @@ add_swift_target_library(swiftStdlibUnittest ${SWIFT_STDLIB_LIBRARY_BUILD_TYPES}
|
||||
SWIFT_MODULE_DEPENDS_OSX Darwin
|
||||
SWIFT_MODULE_DEPENDS_TVOS 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_FREEBSD 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_TVOS 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_FREEBSD 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_TVOS 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_FREEBSD Glibc
|
||||
SWIFT_MODULE_DEPENDS_OPENBSD Glibc
|
||||
|
||||
@@ -11,6 +11,10 @@ if(NOT BUILD_STANDALONE)
|
||||
list(APPEND darwin_depends copy_apinotes)
|
||||
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
|
||||
${swift_platform_sources}
|
||||
POSIXError.swift
|
||||
@@ -27,11 +31,15 @@ add_swift_target_library(swiftDarwin ${SWIFT_STDLIB_LIBRARY_BUILD_TYPES} IS_SDK_
|
||||
${SWIFT_STANDARD_LIBRARY_SWIFT_FLAGS}
|
||||
-Xfrontend -disable-objc-attr-requires-foundation-module
|
||||
LINK_FLAGS "${SWIFT_RUNTIME_SWIFT_LINK_FLAGS}"
|
||||
TARGET_SDKS ALL_APPLE_PLATFORMS FREESTANDING
|
||||
TARGET_SDKS "${swiftDarwin_target_sdks}"
|
||||
INSTALL_IN_COMPONENT sdk-overlay
|
||||
|
||||
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
|
||||
${swift_platform_sources}
|
||||
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_STANDARD_LIBRARY_SWIFT_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
|
||||
DEPENDS glibc_modulemap)
|
||||
|
||||
|
||||
@@ -43,6 +43,8 @@ public protocol HiddenProtocol {
|
||||
associatedtype Value
|
||||
}
|
||||
|
||||
public protocol HiddenProtocol2 {}
|
||||
|
||||
public protocol HiddenProtocolWithOverride {
|
||||
func hiddenOverride()
|
||||
}
|
||||
@@ -98,6 +100,15 @@ public class SomeClass {
|
||||
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
|
||||
|
||||
import public_lib
|
||||
|
||||
@@ -2443,6 +2443,7 @@ mixin-preset=
|
||||
stdlib-deployment-targets=freestanding-x86_64
|
||||
swift-primary-variant-sdk=FREESTANDING
|
||||
swift-primary-variant-arch=x86_64
|
||||
swift-freestanding-flavor=apple
|
||||
swift-freestanding-sdk=macosx
|
||||
# For now, until clang/swiftc works correctly with "none-macho" as the OS part of target triple.
|
||||
swift-freestanding-triple-name=macosx11.0
|
||||
|
||||
@@ -207,6 +207,7 @@ KNOWN_SETTINGS=(
|
||||
common-swift-flags "" "Flags used for Swift targets other than the stdlib, like the corelibs"
|
||||
|
||||
## FREESTANDING Stdlib Options
|
||||
swift-freestanding-flavor "" "when building the FREESTANDING stdlib, which build style to use (options: apple, linux)"
|
||||
swift-freestanding-sdk "" "which SDK 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-module-name "" "which .swiftmodule name (e.g. 'freestanding') to use when building the FREESTANDING stdlib"
|
||||
@@ -2072,6 +2073,13 @@ for host in "${ALL_HOSTS[@]}"; do
|
||||
)
|
||||
fi
|
||||
|
||||
if [ "${SWIFT_FREESTANDING_FLAVOR}" ] ; then
|
||||
cmake_options=(
|
||||
"${cmake_options[@]}"
|
||||
-DSWIFT_FREESTANDING_FLAVOR:STRING="${SWIFT_FREESTANDING_FLAVOR}"
|
||||
)
|
||||
fi
|
||||
|
||||
if [ "${SWIFT_FREESTANDING_SDK}" ] ; then
|
||||
cmake_options=(
|
||||
"${cmake_options[@]}"
|
||||
|
||||
Reference in New Issue
Block a user