@@ -22,14 +22,22 @@ func envEnable(_ key: String, default defaultValue: Bool = false) -> Bool {
2222let isXcodeEnv = Context . environment [ " __CFBundleIdentifier " ] == " com.apple.dt.Xcode "
2323let development = envEnable ( " OPENGRAPH_DEVELOPMENT " , default: false )
2424
25- let releaseVersion = Context . environment [ " OPENGRAPH_TARGET_RELEASE " ] . flatMap { Int ( $0) } ?? 2024
26-
2725let swiftBinPath = Context . environment [ " _ " ] ?? " /usr/bin/swift "
2826let swiftBinURL = URL ( fileURLWithPath: swiftBinPath)
2927let SDKPath = swiftBinURL. deletingLastPathComponent ( ) . deletingLastPathComponent ( ) . deletingLastPathComponent ( ) . path
3028let includePath = SDKPath . appending ( " /usr/lib/swift " )
3129
32- // MARK: - C/CXX Settings
30+ var sharedCSettings : [ CSetting ] = [
31+ . unsafeFlags( [ " -I " , includePath] , . when( platforms: . nonDarwinPlatforms) ) ,
32+ . define( " __COREFOUNDATION_FORSWIFTFOUNDATIONONLY__ " , to: " 1 " , . when( platforms: . nonDarwinPlatforms) ) ,
33+ ]
34+
35+ var sharedSwiftSettings : [ SwiftSetting ] = [
36+ . enableUpcomingFeature( " InternalImportsByDefault " ) ,
37+ . swiftLanguageMode( . v5) ,
38+ ]
39+
40+ // MARK: [env] OPENGRAPH_SWIFT_TOOLCHAIN_PATH
3341
3442// Modified from: https://github.com/swiftlang/swift/blob/main/SwiftCompilerSources/Package.swift
3543//
@@ -44,15 +52,7 @@ let includePath = SDKPath.appending("/usr/lib/swift")
4452//
4553// where <$OPENGRAPH_SWIFT_TOOLCHAIN_PATH> is the parent directory of the swift repository.
4654
47- let swiftToolchainVersion = Context . environment [ " OPENGRAPH_SWIFT_TOOLCHAIN_VERSION " ] ?? ( development ? " 6.0.2 " : " " )
4855let swiftToolchainPath = Context . environment [ " OPENGRAPH_SWIFT_TOOLCHAIN_PATH " ] ?? ( development ? " /Volumes/BuildMachine/swift-project " : " " )
49- let swiftToolchainSupported = envEnable ( " OPENGRAPH_SWIFT_TOOLCHAIN_SUPPORTED " , default: !swiftToolchainVersion. isEmpty)
50-
51- var sharedCSettings : [ CSetting ] = [
52- . unsafeFlags( [ " -I " , includePath] , . when( platforms: . nonDarwinPlatforms) ) ,
53- . define( " __COREFOUNDATION_FORSWIFTFOUNDATIONONLY__ " , to: " 1 " , . when( platforms: . nonDarwinPlatforms) ) ,
54- ]
55-
5656if !swiftToolchainPath. isEmpty {
5757 sharedCSettings. append (
5858 . unsafeFlags(
@@ -74,38 +74,36 @@ if !swiftToolchainPath.isEmpty {
7474 )
7575}
7676
77+ // MARK: [env] OPENGRAPH_SWIFT_TOOLCHAIN_VERSION
78+
79+ let swiftToolchainVersion = Context . environment [ " OPENGRAPH_SWIFT_TOOLCHAIN_VERSION " ] ?? ( development ? " 6.0.2 " : " " )
7780if !swiftToolchainVersion. isEmpty {
7881 sharedCSettings. append (
7982 . define( " OPENGRAPH_SWIFT_TOOLCHAIN_VERSION " , to: swiftToolchainVersion)
8083 )
8184}
8285
83- if swiftToolchainSupported {
84- sharedCSettings. append (
85- . define( " OPENGRAPH_SWIFT_TOOLCHAIN_SUPPORTED " )
86- )
87- }
88-
89- // MARK: - Swift Settings
90-
91- var sharedSwiftSettings : [ SwiftSetting ] = [
92- . enableUpcomingFeature( " InternalImportsByDefault " ) ,
93- . define( " OPENGRAPH_RELEASE_ \( releaseVersion) " ) ,
94- . swiftLanguageMode( . v5) ,
95- ]
86+ // MARK: - [env] OPENGRAPH_SWIFT_TOOLCHAIN_SUPPORTED
9687
88+ let swiftToolchainSupported = envEnable ( " OPENGRAPH_SWIFT_TOOLCHAIN_SUPPORTED " , default: !swiftToolchainVersion. isEmpty)
9789if swiftToolchainSupported {
98- sharedSwiftSettings. append (
99- . define( " OPENGRAPH_SWIFT_TOOLCHAIN_SUPPORTED " )
100- )
90+ sharedCSettings. append ( . define( " OPENGRAPH_SWIFT_TOOLCHAIN_SUPPORTED " ) )
91+ sharedSwiftSettings. append ( . define( " OPENGRAPH_SWIFT_TOOLCHAIN_SUPPORTED " ) )
10192}
10293
94+ // MARK: - [env] OPENGRAPH_TARGET_RELEASE
95+
96+ let releaseVersion = Context . environment [ " OPENGRAPH_TARGET_RELEASE " ] . flatMap { Int ( $0) } ?? 2024
97+ sharedCSettings. append ( . define( " OPENGRAPH_RELEASE " , to: " \( releaseVersion) " ) )
98+ sharedSwiftSettings. append ( . define( " OPENGRAPH_RELEASE_ \( releaseVersion) " ) )
10399if releaseVersion >= 2021 {
104100 for year in 2021 ... releaseVersion {
105101 sharedSwiftSettings. append ( . define( " OPENGRAPH_SUPPORT_ \( year) _API " ) )
106102 }
107103}
108104
105+ // MARK: - [env] OPENGRAPH_WERROR
106+
109107let warningsAsErrorsCondition = envEnable ( " OPENGRAPH_WERROR " , default: isXcodeEnv && development)
110108if warningsAsErrorsCondition {
111109 sharedSwiftSettings. append ( . unsafeFlags( [ " -warnings-as-errors " ] ) )
0 commit comments