diff options
author | Alexander Shabalin <projedi666@gmail.com> | 2023-06-14 13:53:48 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-06-14 13:53:48 +0200 |
commit | 7d597c1d76e1cedc835391b74ebaab6eb26360ba (patch) | |
tree | eedd145087a3b0e09281ed6634eb726e2055adaa | |
parent | a269f97ea00d71a1310e1a0bc237010f72f54cb7 (diff) | |
download | kotlinx.serialization-7d597c1d76e1cedc835391b74ebaab6eb26360ba.tar.gz |
Remove deprecated K/N targets for 1.9.20 (#2325)
See https://kotl.in/native-targets-tiers for details.
-rw-r--r-- | gradle/configure-source-sets.gradle | 1 | ||||
-rw-r--r-- | gradle/native-targets.gradle | 23 |
2 files changed, 17 insertions, 7 deletions
diff --git a/gradle/configure-source-sets.gradle b/gradle/configure-source-sets.gradle index 6356668f..26593aa3 100644 --- a/gradle/configure-source-sets.gradle +++ b/gradle/configure-source-sets.gradle @@ -102,6 +102,7 @@ kotlin { } } + // TODO: Remove deprecated linuxArm32Hfp and mingwX86 targets in 1.9.20. def targetsWithoutTestRunners = ["linuxArm32Hfp", "linuxArm64", "mingwX86"] configure(targets) { // Configure additional binaries to run tests in the background diff --git a/gradle/native-targets.gradle b/gradle/native-targets.gradle index da954faa..880b4b64 100644 --- a/gradle/native-targets.gradle +++ b/gradle/native-targets.gradle @@ -96,6 +96,13 @@ kotlin { targets { if (project.ext.nativeState == NativeState.DISABLED) return + + String[] versionComponents = (~/[.-]/).split(compilerVersion, 4) + String[] versionComponents1920 = ["1", "9", "20"] + def isAtLeast1920 = Arrays.compare(versionComponents, versionComponents1920) { lhs, rhs -> + (lhs as int) <=> (rhs as int) + } >= 0 + if (project.ext.singleTargetMode) { fromPreset(project.ext.ideaPreset, 'native') } else { @@ -131,20 +138,22 @@ kotlin { addTarget(presets.mingwX64) - // Deprecated, but were provided by kotlinx.serialization; can be removed only when K/N drops the target - addTarget(presets.watchosX86) + // Deprecated, but were provided by kotlinx.serialization; can be removed only in 1.9.20 release. + if (!isAtLeast1920) { + addTarget(presets.watchosX86) - if (doesNotDependOnOkio(project)) { - addTarget(presets.iosArm32) - addTarget(presets.linuxArm32Hfp) - addTarget(presets.mingwX86) + if (doesNotDependOnOkio(project)) { + addTarget(presets.iosArm32) + addTarget(presets.linuxArm32Hfp) + addTarget(presets.mingwX86) + } } } if (project.ext.nativeState == NativeState.HOST) { // linux targets that can cross-compile on all three hosts - def linuxCrossCompileTargets = [linuxX64, linuxArm32Hfp, linuxArm64] + def linuxCrossCompileTargets = isAtLeast1920 ? [presets.linuxX64] : [presets.linuxX64, presets.linuxArm32Hfp, presets.linuxArm64] if (getHostName() != "linux") { disableCompilation(linuxCrossCompileTargets) } |