[Gradle] Provide JNA jar to compiler classpath with intellij-core 203+

#KT-47748 Fixed
This commit is contained in:
Alexander Likhachev
2021-07-15 13:48:35 +03:00
parent da1d49e622
commit 1a77b57a7b
3 changed files with 7 additions and 1 deletions
+1
View File
@@ -18,6 +18,7 @@ versions.jar.serviceMessages=2019.1.4
versions.jar.lz4-java=1.7.1
ignore.jar.snappy-in-java=true
versions.gradle-api=4.5.1
versions.jna=5.6.0
versions.shadow=6.1.0
versions.junit-bom=5.7.0
versions.org.junit.platform=1.7.0
@@ -38,6 +38,7 @@ private val KOTLIN_SCRIPT_ANNOTATION_EXPECTED_CLASS = "kotlin.script.experimenta
private val KOTLIN_JVM_SCRIPT_COMPILER_EXPECTED_CLASS = "kotlin.script.experimental.jvm.JvmScriptCompiler"
private val KOTLIN_REFLECT_EXPECTED_CLASS = "kotlin.reflect.full.KClasses"
private val TROVE4J_EXPECTED_CLASS = "gnu.trove.THashMap"
private val JNA_EXPECTED_CLASS = "com.sun.jna.Structure"
private val DAEMON_EXPECTED_CLASS = "org.jetbrains.kotlin.daemon.CompileServiceImpl"
internal const val KOTLIN_MODULE_GROUP = "org.jetbrains.kotlin"
private val KOTLIN_GRADLE_PLUGIN = "kotlin-gradle-plugin"
@@ -77,7 +78,7 @@ internal fun findKotlinCompilerClasspath(project: Project): List<File> {
return findKotlinStdlibClasspath(project) +
findKotlinScriptRuntimeClasspath(project) +
findKotlinReflectClasspath(project) +
listOfNotNull(findTrove4j(), findDaemon())
listOfNotNull(findTrove4j(), findJna(), findDaemon())
}
internal fun findJarByClass(classFqName: String): File? {
@@ -92,6 +93,7 @@ internal fun findJarByClass(classFqName: String): File? {
}
internal fun findTrove4j() = findJarByClass(TROVE4J_EXPECTED_CLASS)
internal fun findJna() = findJarByClass(JNA_EXPECTED_CLASS)
internal fun findDaemon() = findJarByClass(DAEMON_EXPECTED_CLASS)
internal fun findKotlinStdlibClasspath(project: Project): List<File> =
@@ -26,6 +26,9 @@ dependencies {
runtimeOnly(project(":kotlin-reflect"))
runtimeOnly(project(":kotlin-daemon-embeddable"))
runtimeOnly(commonDep("org.jetbrains.intellij.deps", "trove4j"))
Platform[203].orHigher {
runtimeOnly(commonDep("net.java.dev.jna", "jna"))
}
testCompile(commonDep("junit:junit"))
testCompile(project(":kotlin-test:kotlin-test-junit"))
testCompilationClasspath(kotlinStdlib())