xref: /aosp_15_r20/external/kotlinx.serialization/buildSrc/src/main/kotlin/KotlinVersion.kt (revision 57b5a4a64c534cf7f27ac9427ceab07f3d8ed3d8)
1*57b5a4a6SAndroid Build Coastguard Worker @file:JvmName("KotlinVersion")
2*57b5a4a6SAndroid Build Coastguard Worker 
isKotlinVersionAtLeastnull3*57b5a4a6SAndroid Build Coastguard Worker fun isKotlinVersionAtLeast(kotlinVersion: String, atLeastMajor: Int, atLeastMinor: Int, atLeastPatch: Int): Boolean {
4*57b5a4a6SAndroid Build Coastguard Worker     val (major, minor) = kotlinVersion
5*57b5a4a6SAndroid Build Coastguard Worker         .split('.')
6*57b5a4a6SAndroid Build Coastguard Worker         .take(2)
7*57b5a4a6SAndroid Build Coastguard Worker         .map { it.toInt() }
8*57b5a4a6SAndroid Build Coastguard Worker     val patch = kotlinVersion.substringAfterLast('.').substringBefore('-').toInt()
9*57b5a4a6SAndroid Build Coastguard Worker     return when {
10*57b5a4a6SAndroid Build Coastguard Worker         major > atLeastMajor -> true
11*57b5a4a6SAndroid Build Coastguard Worker         major < atLeastMajor -> false
12*57b5a4a6SAndroid Build Coastguard Worker         else -> (minor == atLeastMinor && patch >= atLeastPatch) || minor > atLeastMinor
13*57b5a4a6SAndroid Build Coastguard Worker     }
14*57b5a4a6SAndroid Build Coastguard Worker }
15