[aa-klib-reader] Implement 'analysis-api-klib-reader' for swift- and objc export
This new module gives the ability to resolve symbols from provided klib KtLibraryModules withing a Analysis Session. ^KT-65327 Fixed
This commit is contained in:
committed by
Space Team
parent
1bb6f869a2
commit
b5b7e5f262
@@ -0,0 +1,67 @@
|
||||
import org.jetbrains.kotlin.gradle.plugin.KotlinPlatformType
|
||||
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinNativeTarget
|
||||
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinUsages
|
||||
import org.jetbrains.kotlin.konan.target.HostManager
|
||||
|
||||
plugins {
|
||||
kotlin("jvm")
|
||||
}
|
||||
|
||||
sourceSets {
|
||||
"main" { projectDefault() }
|
||||
"test" { projectDefault() }
|
||||
}
|
||||
|
||||
kotlin {
|
||||
compilerOptions {
|
||||
explicitApi()
|
||||
|
||||
/* Required to use Analysis Api */
|
||||
freeCompilerArgs.add("-Xcontext-receivers")
|
||||
}
|
||||
}
|
||||
|
||||
projectTest(jUnitMode = JUnitMode.JUnit5) {
|
||||
workingDir = rootDir
|
||||
|
||||
useJUnitPlatform()
|
||||
val testProjectKlib = configurations.create("testProjectKlib") {
|
||||
attributes {
|
||||
attribute(Usage.USAGE_ATTRIBUTE, objects.named(KotlinUsages.KOTLIN_API))
|
||||
attribute(Category.CATEGORY_ATTRIBUTE, objects.named(Category.LIBRARY))
|
||||
attribute(KotlinPlatformType.attribute, KotlinPlatformType.native)
|
||||
attribute(KotlinNativeTarget.konanTargetAttribute, HostManager.host.name)
|
||||
}
|
||||
}
|
||||
|
||||
val testProjectKlibFiles = testProjectKlib.incoming.files
|
||||
|
||||
dependencies {
|
||||
testProjectKlib(project("testProject"))
|
||||
}
|
||||
|
||||
inputs.files(testProjectKlibFiles)
|
||||
.withPathSensitivity(PathSensitivity.RELATIVE)
|
||||
|
||||
doFirst {
|
||||
systemProperty("testKlibs", testProjectKlibFiles.joinToString(File.pathSeparator))
|
||||
}
|
||||
}
|
||||
|
||||
dependencies {
|
||||
api(project(":analysis:analysis-api"))
|
||||
|
||||
implementation(project(":core:compiler.common"))
|
||||
implementation(project(":core:compiler.common.native"))
|
||||
implementation(project(":kotlin-tooling-core"))
|
||||
|
||||
compileOnly(project(":analysis:analysis-api-standalone"))
|
||||
compileOnly(project(":core:metadata"))
|
||||
compileOnly(project(":kotlin-metadata"))
|
||||
compileOnly(project(":kotlin-util-klib-metadata"))
|
||||
compileOnly(protobufLite())
|
||||
|
||||
testImplementation(kotlinTest("junit5"))
|
||||
testImplementation(project(":compiler:tests-common", "tests-jar"))
|
||||
testImplementation(project(":analysis:analysis-api-standalone"))
|
||||
}
|
||||
Reference in New Issue
Block a user