@@ -20,7 +20,19 @@ func envEnable(_ key: String, default defaultValue: Bool = false) -> Bool {
2020let isXcodeEnv = Context . environment [ " __CFBundleIdentifier " ] == " com.apple.dt.Xcode "
2121let development = envEnable ( " OPENGRAPH_DEVELOPMENT " , default: false )
2222
23- var sharedSwiftSettings : [ SwiftSetting ] = [ ]
23+ let releaseVersion = Context . environment [ " OPENGRAPH_TARGET_RELEASE " ] . flatMap { Int ( $0) } ?? 2021
24+
25+ var sharedSwiftSettings : [ SwiftSetting ] = [
26+ . enableExperimentalFeature( " AccessLevelOnImport " ) ,
27+ . enableUpcomingFeature( " InternalImportsByDefault " ) ,
28+ . define( " OPENGRAPH_RELEASE_ \( releaseVersion) " ) ,
29+ ]
30+
31+ if releaseVersion >= 2021 {
32+ for year in 2021 ... releaseVersion {
33+ sharedSwiftSettings. append ( . define( " OPENGRAPH_SUPPORT_ \( year) _API " ) )
34+ }
35+ }
2436
2537let warningsAsErrorsCondition = envEnable ( " OPENGRAPH_WERROR " , default: isXcodeEnv && development)
2638if warningsAsErrorsCondition {
@@ -79,7 +91,7 @@ let package = Package(
7991 // OpenGraph is a C++ & Swift mix target.
8092 // The SwiftPM support for such usage is still in progress.
8193 . target(
82- name: " _OpenGraph " ,
94+ name: " OpenGraph_SPI " ,
8395 cSettings: [
8496 . unsafeFlags( [ " -I " , includePath] , . when( platforms: . nonDarwinPlatforms) ) ,
8597 . define( " __COREFOUNDATION_FORSWIFTFOUNDATIONONLY__ " , to: " 1 " , . when( platforms: . nonDarwinPlatforms) ) ,
@@ -91,7 +103,7 @@ let package = Package(
91103 ) ,
92104 . target(
93105 name: " OpenGraph " ,
94- dependencies: [ " _OpenGraph " ] ,
106+ dependencies: [ " OpenGraph_SPI " ] ,
95107 swiftSettings: sharedSwiftSettings
96108 ) ,
97109 . plugin(
0 commit comments