Skip to content

Commit 30d20ed

Browse files
committed
Add OPENSWIFTUI_LIBRARY_EVOLUTION to fix the ABI call issue
1 parent 5533c19 commit 30d20ed

File tree

8 files changed

+43
-78
lines changed

8 files changed

+43
-78
lines changed

Package.resolved

Lines changed: 3 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Package.swift

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -123,6 +123,18 @@ if warningsAsErrorsCondition {
123123
// sharedSwiftSettings.append(.unsafeFlags(["-Wwarning", "concurrency"]))
124124
}
125125

126+
// MARK: - [env] OPENSWIFTUI_LIBRARY_EVOLUTION
127+
128+
#if os(macOS)
129+
let libraryEvolutionCondition = envEnable("OPENSWIFTUI_LIBRARY_EVOLUTION", default: true)
130+
#else
131+
let libraryEvolutionCondition = envEnable("OPENSWIFTUI_LIBRARY_EVOLUTION")
132+
#endif
133+
134+
if libraryEvolutionCondition {
135+
sharedSwiftSettings.append(.unsafeFlags(["-enable-library-evolution"]))
136+
}
137+
126138
// MARK: - CoreGraphicsShims Target
127139

128140
let coreGraphicsShimsTarget = Target.target(
@@ -352,7 +364,7 @@ let package = Package(
352364
name: "OpenSwiftUI",
353365
products: products,
354366
dependencies: [
355-
.package(url: "https://github.com/apple/swift-numerics.git", from: "1.0.3"),
367+
.package(url: "https://github.com/apple/swift-numerics", from: "1.0.3"),
356368
],
357369
targets: [
358370
// TODO: Add SwiftGTK as an backend alternative for UIKit/AppKit on Linux and macOS

Sources/OpenSwiftUI/Integration/Hosting/UIKit/View/UIHostingView.swift

Lines changed: 9 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -534,28 +534,15 @@ extension _UIHostingView: ViewRendererHost {
534534
let scale = window?.screen.scale ?? 1
535535
let environment = DisplayList.ViewRenderer.Environment(contentsScale: scale)
536536
#if canImport(SwiftUI, _underlyingVersion: 6.0.87) && _OPENSWIFTUI_SWIFTUI_RENDER
537-
return withUnsafePointer(to: list) { list in
538-
withUnsafePointer(to: time) { time in
539-
withUnsafePointer(to: nextTime) { nextTime in
540-
withUnsafePointer(to: version) { version in
541-
withUnsafePointer(to: maxVersion) { maxVersion in
542-
withUnsafePointer(to: environment) { environment in
543-
return renderer
544-
.swiftUI_render(
545-
rootView: self,
546-
from: list,
547-
time: time,
548-
nextTime: nextTime,
549-
version: version,
550-
maxVersion: maxVersion,
551-
environment: environment
552-
)
553-
}
554-
}
555-
}
556-
}
557-
}
558-
}
537+
return renderer.swiftUI_render(
538+
rootView: self,
539+
from: list,
540+
time: time,
541+
nextTime: nextTime,
542+
version: version,
543+
maxVersion: maxVersion,
544+
environment: environment
545+
)
559546
#else
560547
return renderer.render(
561548
rootView: self,

Sources/OpenSwiftUI/Integration/Render/AppKit/NSViewPlatformViewDefinition.swift

Lines changed: 3 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -13,28 +13,13 @@ import AppKit
1313
final class NSViewPlatformViewDefinition: PlatformViewDefinition, @unchecked Sendable {
1414
override final class var system: PlatformViewDefinition.System { .nsView }
1515

16-
#if _OPENSWIFTUI_SWIFTUI_RENDER
17-
override static func makeView(kind: UnsafePointer<PlatformViewDefinition.ViewKind>) -> AnyObject {
18-
_makeView(kind: kind.pointee)
19-
}
20-
21-
override static func makeLayerView(type: CALayer.Type, kind: UnsafePointer<PlatformViewDefinition.ViewKind>) -> AnyObject {
22-
preconditionFailure("TODO")
23-
}
24-
#else
2516
override static func makeView(kind: PlatformViewDefinition.ViewKind) -> AnyObject {
26-
_makeView(kind: kind)
17+
// TODO
18+
return NSView()
2719
}
2820

29-
override static func makeLayerView(type: CALayer.Type, kind: UnsafePointer<PlatformViewDefinition.ViewKind>) -> AnyObject {
21+
override static func makeLayerView(type: CALayer.Type, kind: PlatformViewDefinition.ViewKind) -> AnyObject {
3022
preconditionFailure("TODO")
3123
}
32-
#endif
33-
34-
// FIXME: A shim for _OPENSWIFTUI_SWIFTUI_RENDER
35-
private static func _makeView(kind: PlatformViewDefinition.ViewKind) -> AnyObject {
36-
// TODO
37-
return NSView()
38-
}
3924
}
4025
#endif

Sources/OpenSwiftUI/Integration/Render/UIKit/UIViewPlatformViewDefinition.swift

Lines changed: 4 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -15,26 +15,7 @@ import OpenSwiftUISymbolDualTestsSupport
1515
final class UIViewPlatformViewDefinition: PlatformViewDefinition, @unchecked Sendable {
1616
override final class var system: PlatformViewDefinition.System { .uiView }
1717

18-
#if _OPENSWIFTUI_SWIFTUI_RENDER
19-
override static func makeView(kind: UnsafePointer<PlatformViewDefinition.ViewKind>) -> AnyObject {
20-
_makeView(kind: kind.pointee)
21-
}
22-
23-
override static func makeLayerView(type: CALayer.Type, kind: UnsafePointer<PlatformViewDefinition.ViewKind>) -> AnyObject {
24-
preconditionFailure("TODO")
25-
}
26-
#else
2718
override static func makeView(kind: PlatformViewDefinition.ViewKind) -> AnyObject {
28-
_makeView(kind: kind)
29-
}
30-
31-
override static func makeLayerView(type: CALayer.Type, kind: UnsafePointer<PlatformViewDefinition.ViewKind>) -> AnyObject {
32-
preconditionFailure("TODO")
33-
}
34-
#endif
35-
36-
// FIXME: A shim for _OPENSWIFTUI_SWIFTUI_RENDER
37-
private static func _makeView(kind: PlatformViewDefinition.ViewKind) -> AnyObject {
3819
let view: UIView
3920
switch kind {
4021
case .mask:
@@ -48,6 +29,10 @@ final class UIViewPlatformViewDefinition: PlatformViewDefinition, @unchecked Sen
4829
return view
4930
}
5031

32+
override static func makeLayerView(type: CALayer.Type, kind: PlatformViewDefinition.ViewKind) -> AnyObject {
33+
preconditionFailure("TODO")
34+
}
35+
5136
private static func initView(_ view: UIView, kind: PlatformViewDefinition.ViewKind) {
5237
if kind != .platformView && kind != .platformGroup {
5338
view.autoresizesSubviews = false

Sources/OpenSwiftUI/Scene/Core/Scene.swift

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,18 @@
55
// Audited for iOS 15.5
66
// Status: Empty
77

8+
#if canImport(CoreTransferable)
9+
import CoreTransferable
10+
#endif
11+
812
public protocol Scene {
913
associatedtype Body: Scene
1014

1115
@SceneBuilder
1216
var body: Self.Body { get }
1317
// static func _makeScene(scene: _GraphValue<Self>, inputs: _SceneInputs) -> _SceneOutputs
1418
}
19+
1520
extension Never: Scene {}
1621

1722
extension Scene {

Sources/OpenSwiftUICore/Render/DisplayList/DisplayListViewRenderer.swift

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -102,12 +102,12 @@ extension DisplayList {
102102
@_silgen_name("OpenSwiftUITestStub_DisplayListViewRendererRenderRootView")
103103
package func swiftUI_render(
104104
rootView: AnyObject,
105-
from list: UnsafePointer<DisplayList>,
106-
time: UnsafePointer<Time>,
107-
nextTime: UnsafePointer<Time>,
108-
version: UnsafePointer<DisplayList.Version>,
109-
maxVersion: UnsafePointer<DisplayList.Version>,
110-
environment: UnsafePointer<DisplayList.ViewRenderer.Environment>
105+
from list: DisplayList,
106+
time: Time,
107+
nextTime: Time,
108+
version: DisplayList.Version,
109+
maxVersion: DisplayList.Version,
110+
environment: DisplayList.ViewRenderer.Environment
111111
) -> Time
112112
#endif
113113

Sources/OpenSwiftUICore/Render/PlatformViewDefinition.swift

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -50,20 +50,11 @@ open class PlatformViewDefinition: @unchecked Sendable {
5050
}
5151

5252
open class var system: PlatformViewDefinition.System { .init(base: .swiftUIView) }
53-
54-
#if _OPENSWIFTUI_SWIFTUI_RENDER
55-
open class func makeView(kind: UnsafePointer<PlatformViewDefinition.ViewKind>) -> AnyObject { preconditionFailure("") }
56-
#if canImport(Darwin)
57-
open class func makeLayerView(type: CALayer.Type, kind: UnsafePointer<PlatformViewDefinition.ViewKind>) -> AnyObject { preconditionFailure("") }
58-
#endif
59-
open class func makePlatformView(view: AnyObject, kind: UnsafePointer<PlatformViewDefinition.ViewKind>) { preconditionFailure("") }
60-
#else
6153
open class func makeView(kind: PlatformViewDefinition.ViewKind) -> AnyObject { preconditionFailure("") }
6254
#if canImport(Darwin)
6355
open class func makeLayerView(type: CALayer.Type, kind: PlatformViewDefinition.ViewKind) -> AnyObject { preconditionFailure("") }
6456
#endif
6557
open class func makePlatformView(view: AnyObject, kind: PlatformViewDefinition.ViewKind) { preconditionFailure("") }
66-
#endif
6758
open class func makeDrawingView(options: PlatformDrawableOptions) -> any PlatformDrawable { preconditionFailure("") }
6859
open class func setPath(_ path: Path, shapeView: AnyObject) { preconditionFailure("") }
6960
open class func setProjectionTransform(_ transform: ProjectionTransform, projectionView: AnyObject) { preconditionFailure("") }

0 commit comments

Comments
 (0)