@@ -41,10 +41,15 @@ let javaIncludePath = "\(javaHome)/include"
4141
4242// Get NDK version from command line
4343let ndkVersion = ProcessInfo . processInfo. environment [ " ANDROID_NDK_VERSION " ] . flatMap { UInt ( $0) } ?? 27
44- let ndkBinder = ndkVersion >= 29 // binder_ndk Requires NDK 29
45-
4644let ndkVersionDefine = SwiftSetting . define ( " ANDROID_NDK_VERSION_ " + ndkVersion. description)
4745
46+ // Get Android API version
47+ let sdkVersion = ProcessInfo . processInfo. environment [ " ANDROID_SDK_VERSION " ] . flatMap { UInt ( $0) } ?? 29
48+ let sdkVersionDefine = SwiftSetting . define ( " ANDROID_SDK_VERSION_ " + ndkVersion. description)
49+
50+ // Conditionally enable features
51+ let ndkBinder = sdkVersion >= 29 // binder_ndk Requires API 29
52+
4853var package = Package (
4954 name: " SwiftAndroid " ,
5055 platforms: [
@@ -136,7 +141,8 @@ var package = Package(
136141 swiftSettings: [
137142 . swiftLanguageMode( . v5) ,
138143 . unsafeFlags( [ " -I \( javaIncludePath) " , " -I \( javaPlatformIncludePath) " ] ) ,
139- ndkVersionDefine
144+ ndkVersionDefine,
145+ sdkVersionDefine
140146 ]
141147 ) ,
142148 . target(
@@ -197,7 +203,8 @@ var package = Package(
197203 ] ,
198204 swiftSettings: [
199205 . swiftLanguageMode( . v5) ,
200- ndkVersionDefine
206+ ndkVersionDefine,
207+ sdkVersionDefine
201208 ]
202209 ) ,
203210 . target(
@@ -208,7 +215,8 @@ var package = Package(
208215 exclude: [ " swift-java.config " ] ,
209216 swiftSettings: [
210217 . swiftLanguageMode( . v5) ,
211- ndkVersionDefine
218+ ndkVersionDefine,
219+ sdkVersionDefine
212220 ]
213221 ) ,
214222 . target(
@@ -229,7 +237,8 @@ var package = Package(
229237 exclude: [ " swift-java.config " ] ,
230238 swiftSettings: [
231239 . swiftLanguageMode( . v5) ,
232- ndkVersionDefine
240+ ndkVersionDefine,
241+ sdkVersionDefine
233242 ]
234243 ) ,
235244 . target(
@@ -240,7 +249,8 @@ var package = Package(
240249 exclude: [ " swift-java.config " ] ,
241250 swiftSettings: [
242251 . swiftLanguageMode( . v5) ,
243- ndkVersionDefine
252+ ndkVersionDefine,
253+ sdkVersionDefine
244254 ]
245255 ) ,
246256 . target(
@@ -252,7 +262,8 @@ var package = Package(
252262 exclude: [ " swift-java.config " ] ,
253263 swiftSettings: [
254264 . swiftLanguageMode( . v5) ,
255- ndkVersionDefine
265+ ndkVersionDefine,
266+ sdkVersionDefine
256267 ]
257268 ) ,
258269 . target(
@@ -264,7 +275,8 @@ var package = Package(
264275 exclude: [ " swift-java.config " ] ,
265276 swiftSettings: [
266277 . swiftLanguageMode( . v5) ,
267- ndkVersionDefine
278+ ndkVersionDefine,
279+ sdkVersionDefine
268280 ]
269281 ) ,
270282 . target(
@@ -277,7 +289,8 @@ var package = Package(
277289 exclude: [ " swift-java.config " ] ,
278290 swiftSettings: [
279291 . swiftLanguageMode( . v5) ,
280- ndkVersionDefine
292+ ndkVersionDefine,
293+ sdkVersionDefine
281294 ]
282295 ) ,
283296 . target(
@@ -291,7 +304,8 @@ var package = Package(
291304 exclude: [ " swift-java.config " ] ,
292305 swiftSettings: [
293306 . swiftLanguageMode( . v5) ,
294- ndkVersionDefine
307+ ndkVersionDefine,
308+ sdkVersionDefine
295309 ]
296310 ) ,
297311 . target(
@@ -305,7 +319,8 @@ var package = Package(
305319 exclude: [ " swift-java.config " ] ,
306320 swiftSettings: [
307321 . swiftLanguageMode( . v5) ,
308- ndkVersionDefine
322+ ndkVersionDefine,
323+ sdkVersionDefine
309324 ]
310325 ) ,
311326 . target(
@@ -320,7 +335,8 @@ var package = Package(
320335 exclude: [ " swift-java.config " ] ,
321336 swiftSettings: [
322337 . swiftLanguageMode( . v5) ,
323- ndkVersionDefine
338+ ndkVersionDefine,
339+ sdkVersionDefine
324340 ]
325341 ) ,
326342 . target(
@@ -340,7 +356,8 @@ var package = Package(
340356 exclude: [ " swift-java.config " ] ,
341357 swiftSettings: [
342358 . swiftLanguageMode( . v5) ,
343- ndkVersionDefine
359+ ndkVersionDefine,
360+ sdkVersionDefine
344361 ]
345362 ) ,
346363 . target(
@@ -356,7 +373,8 @@ var package = Package(
356373 exclude: [ " swift-java.config " ] ,
357374 swiftSettings: [
358375 . swiftLanguageMode( . v5) ,
359- ndkVersionDefine
376+ ndkVersionDefine,
377+ sdkVersionDefine
360378 ]
361379 ) ,
362380 . target(
@@ -370,7 +388,8 @@ var package = Package(
370388 exclude: [ " swift-java.config " ] ,
371389 swiftSettings: [
372390 . swiftLanguageMode( . v5) ,
373- ndkVersionDefine
391+ ndkVersionDefine,
392+ sdkVersionDefine
374393 ]
375394 ) ,
376395 . target(
@@ -387,7 +406,8 @@ var package = Package(
387406 ] ,
388407 swiftSettings: [
389408 . swiftLanguageMode( . v6) ,
390- ndkVersionDefine
409+ ndkVersionDefine,
410+ sdkVersionDefine
391411 ] ,
392412 linkerSettings: [
393413 . linkedLibrary( " log " , . when( platforms: [ . android] ) )
@@ -408,7 +428,8 @@ var package = Package(
408428 ] ,
409429 swiftSettings: [
410430 . swiftLanguageMode( . v6) ,
411- ndkVersionDefine
431+ ndkVersionDefine,
432+ sdkVersionDefine
412433 ] ,
413434 linkerSettings: [
414435 . linkedLibrary( " android " , . when( platforms: [ . android] ) )
0 commit comments