@@ -29,6 +29,7 @@ let includePath = SDKPath.appending("/usr/lib/swift")
2929
3030var sharedCSettings : [ CSetting ] = [
3131 . unsafeFlags( [ " -I " , includePath] , . when( platforms: . nonDarwinPlatforms) ) ,
32+ . define( " NDEBUG " , . when( configuration: . release) ) ,
3233]
3334
3435var sharedSwiftSettings : [ SwiftSetting ] = [
@@ -110,26 +111,54 @@ if warningsAsErrorsCondition {
110111
111112// MARK: - Targets
112113
114+ let openGraphTarget = Target . target (
115+ name: " OpenGraph " ,
116+ dependencies: [ " OpenGraph_SPI " ] ,
117+ cSettings: sharedCSettings,
118+ swiftSettings: sharedSwiftSettings
119+ )
120+ // FIXME: Merge into one target
121+ // OpenGraph is a C++ & Swift mix target.
122+ // The SwiftPM support for such usage is still in progress.
123+ let openGraphSPITarget = Target . target (
124+ name: " OpenGraph_SPI " ,
125+ cSettings: sharedCSettings + [
126+ . define( " __COREFOUNDATION_FORSWIFTFOUNDATIONONLY__ " , to: " 1 " , . when( platforms: . nonDarwinPlatforms) ) ,
127+ ]
128+ )
113129let openGraphShimsTarget = Target . target (
114130 name: " OpenGraphShims " ,
115131 cSettings: sharedCSettings,
116132 swiftSettings: sharedSwiftSettings
117133)
118134
119- let openGraphShimsTestTarget = Target . testTarget (
120- name: " OpenGraphShimsTests " ,
135+ // MARK: - Test Targets
136+
137+ let openGraphTestTarget = Target . testTarget (
138+ name: " OpenGraphTests " ,
121139 dependencies: [
122- " OpenGraphShims " ,
140+ " OpenGraph " ,
123141 ] ,
124142 exclude: [ " README.md " ] ,
125143 cSettings: sharedCSettings,
126144 swiftSettings: sharedSwiftSettings
127145)
128-
129- let openGraphTestTarget = Target . testTarget (
130- name: " OpenGraphTests " ,
146+ let openGraphSPITestTarget = Target . testTarget (
147+ name: " OpenGraph_SPITests " ,
131148 dependencies: [
132- " OpenGraph " ,
149+ " OpenGraph_SPI " ,
150+ ] ,
151+ exclude: [ " README.md " ] ,
152+ cSettings: sharedCSettings + [
153+ . headerSearchPath( " ../../Sources/OpenGraph_SPI " ) ,
154+ ] ,
155+ swiftSettings: sharedSwiftSettings,
156+ linkerSettings: [ . linkedFramework( " XCTest " ) ]
157+ )
158+ let openGraphShimsTestTarget = Target . testTarget (
159+ name: " OpenGraphShimsTests " ,
160+ dependencies: [
161+ " OpenGraphShims " ,
133162 ] ,
134163 exclude: [ " README.md " ] ,
135164 cSettings: sharedCSettings,
@@ -159,37 +188,24 @@ let openGraphSPICompatibilityTestTarget = Target.testTarget(
159188let package = Package (
160189 name: " OpenGraph " ,
161190 products: [
162- . library( name: " OpenGraph_SPI " , targets: [ " OpenGraph_SPI " ] ) ,
163- . library( name: " OpenGraph " , targets: [ " OpenGraph " ] ) ,
164- . library( name: " OpenGraphShims " , targets: [ " OpenGraphShims " ] ) ,
191+ . library( name: " OpenGraph " , type: . dynamic, targets: [ " OpenGraph " , " OpenGraph_SPI " ] ) ,
192+ . library( name: " OpenGraphShims " , type: . dynamic, targets: [ " OpenGraph " , " OpenGraph_SPI " , " OpenGraphShims " ] ) ,
165193 ] ,
166194 dependencies: [
167195 . package ( url: " https://github.com/apple/swift-numerics " , from: " 1.0.2 " ) ,
168196 ] ,
169197 targets: [
170- // FIXME: Merge into one target
171- // OpenGraph is a C++ & Swift mix target.
172- // The SwiftPM support for such usage is still in progress.
173- . target(
174- name: " OpenGraph_SPI " ,
175- cSettings: sharedCSettings + [
176- . define( " __COREFOUNDATION_FORSWIFTFOUNDATIONONLY__ " , to: " 1 " , . when( platforms: . nonDarwinPlatforms) ) ,
177- ]
178- ) ,
179- . target(
180- name: " OpenGraph " ,
181- dependencies: [ " OpenGraph_SPI " ] ,
182- cSettings: sharedCSettings,
183- swiftSettings: sharedSwiftSettings
184- ) ,
198+ openGraphTarget,
199+ openGraphSPITarget,
185200 openGraphShimsTarget,
186201
187202 openGraphTestTarget,
203+ openGraphSPITestTarget,
188204 openGraphShimsTestTarget,
189205 openGraphCompatibilityTestTarget,
190206 openGraphSPICompatibilityTestTarget,
191207 ] ,
192- cxxLanguageStandard: . cxx17
208+ cxxLanguageStandard: . cxx20
193209)
194210
195211
0 commit comments