summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexander Shabalin <projedi666@gmail.com>2023-06-14 13:53:48 +0200
committerGitHub <noreply@github.com>2023-06-14 13:53:48 +0200
commit7d597c1d76e1cedc835391b74ebaab6eb26360ba (patch)
treeeedd145087a3b0e09281ed6634eb726e2055adaa
parenta269f97ea00d71a1310e1a0bc237010f72f54cb7 (diff)
downloadkotlinx.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.gradle1
-rw-r--r--gradle/native-targets.gradle23
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)
}