@@ -22,14 +22,22 @@ func envEnable(_ key: String, default defaultValue: Bool = false) -> Bool {
22
22
let isXcodeEnv = Context . environment [ " __CFBundleIdentifier " ] == " com.apple.dt.Xcode "
23
23
let development = envEnable ( " OPENGRAPH_DEVELOPMENT " , default: false )
24
24
25
- let releaseVersion = Context . environment [ " OPENGRAPH_TARGET_RELEASE " ] . flatMap { Int ( $0) } ?? 2024
26
-
27
25
let swiftBinPath = Context . environment [ " _ " ] ?? " /usr/bin/swift "
28
26
let swiftBinURL = URL ( fileURLWithPath: swiftBinPath)
29
27
let SDKPath = swiftBinURL. deletingLastPathComponent ( ) . deletingLastPathComponent ( ) . deletingLastPathComponent ( ) . path
30
28
let includePath = SDKPath . appending ( " /usr/lib/swift " )
31
29
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
33
41
34
42
// Modified from: https://github.com/swiftlang/swift/blob/main/SwiftCompilerSources/Package.swift
35
43
//
@@ -44,15 +52,7 @@ let includePath = SDKPath.appending("/usr/lib/swift")
44
52
//
45
53
// where <$OPENGRAPH_SWIFT_TOOLCHAIN_PATH> is the parent directory of the swift repository.
46
54
47
- let swiftToolchainVersion = Context . environment [ " OPENGRAPH_SWIFT_TOOLCHAIN_VERSION " ] ?? ( development ? " 6.0.2 " : " " )
48
55
let 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
-
56
56
if !swiftToolchainPath. isEmpty {
57
57
sharedCSettings. append (
58
58
. unsafeFlags(
@@ -74,38 +74,36 @@ if !swiftToolchainPath.isEmpty {
74
74
)
75
75
}
76
76
77
+ // MARK: [env] OPENGRAPH_SWIFT_TOOLCHAIN_VERSION
78
+
79
+ let swiftToolchainVersion = Context . environment [ " OPENGRAPH_SWIFT_TOOLCHAIN_VERSION " ] ?? ( development ? " 6.0.2 " : " " )
77
80
if !swiftToolchainVersion. isEmpty {
78
81
sharedCSettings. append (
79
82
. define( " OPENGRAPH_SWIFT_TOOLCHAIN_VERSION " , to: swiftToolchainVersion)
80
83
)
81
84
}
82
85
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
96
87
88
+ let swiftToolchainSupported = envEnable ( " OPENGRAPH_SWIFT_TOOLCHAIN_SUPPORTED " , default: !swiftToolchainVersion. isEmpty)
97
89
if 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 " ) )
101
92
}
102
93
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) " ) )
103
99
if releaseVersion >= 2021 {
104
100
for year in 2021 ... releaseVersion {
105
101
sharedSwiftSettings. append ( . define( " OPENGRAPH_SUPPORT_ \( year) _API " ) )
106
102
}
107
103
}
108
104
105
+ // MARK: - [env] OPENGRAPH_WERROR
106
+
109
107
let warningsAsErrorsCondition = envEnable ( " OPENGRAPH_WERROR " , default: isXcodeEnv && development)
110
108
if warningsAsErrorsCondition {
111
109
sharedSwiftSettings. append ( . unsafeFlags( [ " -warnings-as-errors " ] ) )
0 commit comments