Skip to content

Commit e9ec4cb

Browse files
committed
Kotlin version 1.3.70-eap-42, fixed HMPP support in IDE
1 parent 10979a3 commit e9ec4cb

File tree

4 files changed

+32
-33
lines changed

4 files changed

+32
-33
lines changed

gradle.properties

+2-2
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,11 @@
55
# Kotlin
66
version=1.3.3-native-mt-SNAPSHOT
77
group=org.jetbrains.kotlinx
8-
kotlin_version=1.3.61
8+
kotlin_version=1.3.70-eap-42
99

1010
# Dependencies
1111
junit_version=4.12
12-
atomicfu_version=0.14.1
12+
atomicfu_version=0.14.1-1.3.70-eap-42-2
1313
html_version=0.6.8
1414
lincheck_version=2.0
1515
dokka_version=0.9.16-rdev-2-mpp-hacks

gradle/compile-native-multiplatform.gradle

+11-17
Original file line numberDiff line numberDiff line change
@@ -9,23 +9,17 @@ kotlin {
99
}
1010

1111
targets {
12-
if (project.ext.ideaActive) {
13-
// todo: This is IDEA kludge, without "fromPresent" the code does not resolve properly
14-
//fromPreset(project.ext.ideaPreset, 'native')
15-
addTarget(project.ext.ideaPreset)
16-
} else {
17-
addTarget(presets.linuxX64)
18-
addTarget(presets.iosArm64)
19-
addTarget(presets.iosArm32)
20-
addTarget(presets.iosX64)
21-
addTarget(presets.macosX64)
22-
addTarget(presets.mingwX64)
23-
addTarget(presets.tvosArm64)
24-
addTarget(presets.tvosX64)
25-
addTarget(presets.watchosArm32)
26-
addTarget(presets.watchosArm64)
27-
addTarget(presets.watchosX86)
28-
}
12+
addTarget(presets.linuxX64)
13+
addTarget(presets.iosArm64)
14+
addTarget(presets.iosArm32)
15+
addTarget(presets.iosX64)
16+
addTarget(presets.macosX64)
17+
addTarget(presets.mingwX64)
18+
addTarget(presets.tvosArm64)
19+
addTarget(presets.tvosX64)
20+
addTarget(presets.watchosArm32)
21+
addTarget(presets.watchosArm64)
22+
addTarget(presets.watchosX86)
2923
}
3024

3125
sourceSets {

gradle/targets.gradle

-7
Original file line numberDiff line numberDiff line change
@@ -17,12 +17,5 @@ kotlin {
1717
project.ext.isLinuxHost = linuxEnabled
1818
project.ext.isMacosHost = macosEnabled
1919
project.ext.isWinHost = winEnabled
20-
21-
if (project.ext.ideaActive) {
22-
def ideaPreset = presets.linuxX64
23-
if (macosEnabled) ideaPreset = presets.macosX64
24-
if (winEnabled) ideaPreset = presets.mingwX64
25-
project.ext.ideaPreset = ideaPreset
26-
}
2720
}
2821
}

kotlinx-coroutines-core/build.gradle

+19-7
Original file line numberDiff line numberDiff line change
@@ -48,13 +48,6 @@ defineSourceSet("concurrent", ["common"]) { it in ["jvm", "native"] }
4848
defineSourceSet("nativeDarwin", ["native"]) { isNativeDarwin(it) }
4949
defineSourceSet("nativeOther", ["native"]) { isNativeOther(it) }
5050

51-
// todo: This is IDEA kludge, without "fromPresent" the code does not resolve properly
52-
if (project.ext.ideaActive && isNativeDarwin(project.ext.ideaPreset.name)) {
53-
kotlin.targets {
54-
fromPreset(project.ext.ideaPreset, 'nativeDarwin')
55-
}
56-
}
57-
5851
/*
5952
* All platform plugins and configuration magic happens here instead of build.gradle
6053
* because JMV-only projects depend on core, thus core should always be initialized before configuration.
@@ -118,6 +111,25 @@ configurations {
118111
configureKotlinJvmPlatform(kotlinCompilerPluginClasspath)
119112
}
120113

114+
if (project.ext.ideaActive) {
115+
def ideaPreset = kotlin.presets.linuxX64
116+
if (project.ext.isLinuxHost) ideaPreset = kotlin.presets.macosX64
117+
if (project.ext.isWinHost) ideaPreset = kotlin.presets.mingwX64
118+
119+
kotlin.sourceSets {
120+
configure(matching { it.name.startsWith("native")}) {
121+
def hostMainCompilation = project.kotlin.targetFromPreset(ideaPreset).compilations.main
122+
def compileConfiguration = configurations[hostMainCompilation.compileDependencyConfigurationName]
123+
def hostNativePlatformLibs = files(provider {
124+
compileConfiguration.findAll {
125+
it.path.endsWith(".klib") || it.absolutePath.contains("klib${File.separator}platform")
126+
}
127+
})
128+
dependencies.add(implementationMetadataConfigurationName, hostNativePlatformLibs)
129+
}
130+
}
131+
}
132+
121133
kotlin.sourceSets {
122134
jvmTest.dependencies {
123135
api "com.devexperts.lincheck:lincheck:$lincheck_version"

0 commit comments

Comments
 (0)