@@ -21,14 +21,21 @@ func envEnable(_ key: String, default defaultValue: Bool = false) -> Bool {
2121 }
2222}
2323
24+ #if os(macOS)
25+ // NOTE: #if os(macOS) check is not accurate if we are cross compiling for Linux platform. So we add an env key to specify it.
26+ let buildForDarwinPlatform = envEnable ( " OPENSWIFTUI_BUILD_FOR_DARWIN_PLATFORM " , default: true )
27+ #else
28+ let buildForDarwinPlatform = envEnable ( " OPENSWIFTUI_BUILD_FOR_DARWIN_PLATFORM " )
29+ #endif
30+
2431var sharedCXXSettings : [ CXXSetting ] = [ ]
2532var sharedSwiftSettings : [ SwiftSetting ] = [
2633 . swiftLanguageMode( . v5) ,
2734]
2835
2936let development = envEnable ( " OPENOBSERVATION_DEVELOPMENT " , default: false )
3037
31- // MARK: [env] OPENGRAPH_SWIFT_TOOLCHAIN_PATH
38+ // MARK: [env] OPENSWIFTUI_SWIFT_TOOLCHAIN_PATH
3239
3340// Modified from: https://github.com/swiftlang/swift/blob/main/SwiftCompilerSources/Package.swift
3441//
@@ -43,7 +50,7 @@ let development = envEnable("OPENOBSERVATION_DEVELOPMENT", default: false)
4350//
4451// where <$OPENGRAPH_SWIFT_TOOLCHAIN_PATH> is the parent directory of the swift repository.
4552
46- let swiftToolchainPath = Context . environment [ " OPENOBSERVATION_SWIFT_TOOLCHAIN_PATH " ] ?? ( development ? " /Volumes/BuildMachine/swift-project " : " " )
53+ let swiftToolchainPath = Context . environment [ " OPENSWIFTUI_SWIFT_TOOLCHAIN_PATH " ] ?? ( development ? " /Volumes/BuildMachine/swift-project " : " " )
4754if !swiftToolchainPath. isEmpty {
4855 sharedCXXSettings. append (
4956 . unsafeFlags(
@@ -65,21 +72,31 @@ if !swiftToolchainPath.isEmpty {
6572 )
6673}
6774
68- // MARK: [env] OPENOBSERVATION_SWIFT_TOOLCHAIN_VERSION
75+ // MARK: [env] OPENSWIFTUI_SWIFT_TOOLCHAIN_VERSION
6976
70- let swiftToolchainVersion = Context . environment [ " OPENOBSERVATION_SWIFT_TOOLCHAIN_VERSION " ] ?? ( development ? " 6.0.2 " : " " )
77+ let swiftToolchainVersion = Context . environment [ " OPENSWIFTUI_SWIFT_TOOLCHAIN_VERSION " ] ?? ( development ? " 6.0.2 " : " " )
7178if !swiftToolchainVersion. isEmpty {
7279 sharedCXXSettings. append (
73- . define( " OPENOBSERVATION_SWIFT_TOOLCHAIN_VERSION " , to: swiftToolchainVersion)
80+ . define( " OPENSWIFTUI_SWIFT_TOOLCHAIN_VERSION " , to: swiftToolchainVersion)
7481 )
7582}
7683
77- // MARK: - [env] OPENOBSERVATION_SWIFT_TOOLCHAIN_SUPPORTED
84+ // MARK: - [env] OPENSWIFTUI_SWIFT_TOOLCHAIN_SUPPORTED
7885
79- let swiftToolchainSupported = envEnable ( " OPENOBSERVATION_SWIFT_TOOLCHAIN_SUPPORTED " , default: !swiftToolchainVersion. isEmpty)
86+ let swiftToolchainSupported = envEnable ( " OPENSWIFTUI_SWIFT_TOOLCHAIN_SUPPORTED " , default: !swiftToolchainVersion. isEmpty)
8087if swiftToolchainSupported {
81- sharedCXXSettings. append ( . define( " OPENOBSERVATION_SWIFT_TOOLCHAIN_SUPPORTED " ) )
82- sharedSwiftSettings. append ( . define( " OPENOBSERVATION_SWIFT_TOOLCHAIN_SUPPORTED " ) )
88+ sharedCXXSettings. append ( . define( " OPENSWIFTUI_SWIFT_TOOLCHAIN_SUPPORTED " ) )
89+ sharedSwiftSettings. append ( . define( " OPENSWIFTUI_SWIFT_TOOLCHAIN_SUPPORTED " ) )
90+ }
91+
92+ // MARK: - [env] OPENSWIFTUI_LIBRARY_EVOLUTION
93+
94+ let libraryEvolutionCondition = envEnable ( " OPENSWIFTUI_LIBRARY_EVOLUTION " , default: buildForDarwinPlatform)
95+
96+ if libraryEvolutionCondition {
97+ // NOTE: -enable-library-evolution will cause module verify failure for `swift build`.
98+ // Either set OPENATTRIBUTEGRAPH_LIBRARY_EVOLUTION=0 or add `-Xswiftc -no-verify-emitted-module-interface` after `swift build`
99+ sharedSwiftSettings. append ( . unsafeFlags( [ " -enable-library-evolution " , " -no-verify-emitted-module-interface " ] ) )
83100}
84101
85102let package = Package (
0 commit comments