Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/release-cli.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ jobs:
done

cs bootstrap \
--standalone \
--assembly \
-o scip-java \
"$ARTIFACT" \
--main org.scip_code.scip_java.ScipJava
Expand Down
2 changes: 1 addition & 1 deletion docs/getting-started.md
Original file line number Diff line number Diff line change
Expand Up @@ -90,7 +90,7 @@ binary.
# macOS/Linux
curl -fLo coursier https://git.io/coursier-cli \
&& chmod +x coursier \
&& ./coursier bootstrap --standalone -o scip-java org.scip-code:scip-java:@STABLE_VERSION@ --main org.scip_code.scip_java.ScipJava
&& ./coursier bootstrap --assembly -o scip-java org.scip-code:scip-java:@STABLE_VERSION@ --main org.scip_code.scip_java.ScipJava
./scip-java --help
```

Expand Down
1 change: 0 additions & 1 deletion gradle/libs.versions.toml
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,6 @@ kotlin-analysis-api-k2 = { module = "org.jetbrains.kotlin:analysis-api-k2-for-id
kotlin-analysis-api-platform-interface = { module = "org.jetbrains.kotlin:analysis-api-platform-interface-for-ide", version.ref = "kotlin-analysis-api" }
kotlin-analysis-api-standalone = { module = "org.jetbrains.kotlin:analysis-api-standalone-for-ide", version.ref = "kotlin-analysis-api" }
kotlin-analysis-compiler = { module = "org.jetbrains.kotlin:kotlin-compiler", version.ref = "kotlin-analysis-api" }
kotlin-analysis-compiler-common = { module = "org.jetbrains.kotlin:kotlin-compiler-common-for-ide", version.ref = "kotlin-analysis-api" }
kotlin-analysis-low-level-api-fir = { module = "org.jetbrains.kotlin:low-level-api-fir-for-ide", version.ref = "kotlin-analysis-api" }
kotlin-analysis-symbol-light-classes = { module = "org.jetbrains.kotlin:symbol-light-classes-for-ide", version.ref = "kotlin-analysis-api" }
kotlin-stdlib = { module = "org.jetbrains.kotlin:kotlin-stdlib", version.ref = "kotlin" }
Expand Down
36 changes: 25 additions & 11 deletions scip-kotlin-analysis/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,32 +1,46 @@
plugins {
id("scip.java-library")
id("scip.kotlin-jvm")
id("scip.maven-publish")
}

description = "Standalone Kotlin SCIP indexer built on the Kotlin Analysis API"

// The Analysis API `*-for-ide` artifacts and the IntelliJ coroutines fork are only
// published to JetBrains' repository, not Maven Central. They are merged into this
// module's jar, so the published POM only references Maven Central artifacts.
val bundled: Configuration by configurations.creating {
isCanBeConsumed = false
}
configurations.compileOnly { extendsFrom(bundled) }
configurations.testImplementation { extendsFrom(bundled) }

tasks.named<Jar>("jar") {
from({ bundled.map { zipTree(it) } }) {
exclude("META-INF/MANIFEST.MF")
}
}

// The Analysis API `*-for-ide` artifacts have unusable POM metadata (they drag in
// IDE-only dependencies), so every artifact is pinned non-transitively — the same
// approach used by Dokka's analysis-kotlin-symbols and KSP2. `kotlin-compiler`
// (the non-embeddable jar) provides the bundled IntelliJ core classes at runtime.
dependencies {
implementation(project(":scip-shared"))
implementation(libs.scip.kotlin.bindings)
implementation(libs.kotlin.stdlib)

implementation(libs.kotlin.analysis.compiler) { isTransitive = false }
implementation(libs.kotlin.analysis.api.api) { isTransitive = false }
implementation(libs.kotlin.analysis.api.standalone) { isTransitive = false }
bundled(libs.kotlin.analysis.api.api) { isTransitive = false }
bundled(libs.kotlin.analysis.api.standalone) { isTransitive = false }
bundled(libs.kotlin.analysis.api.impl.base) { isTransitive = false }
bundled(libs.kotlin.analysis.api.k2) { isTransitive = false }
bundled(libs.kotlin.analysis.low.level.api.fir) { isTransitive = false }
bundled(libs.kotlin.analysis.api.platform.`interface`) { isTransitive = false }
bundled(libs.kotlin.analysis.symbol.light.classes) { isTransitive = false }
bundled(libs.kotlinx.coroutines.core.jvm) { isTransitive = false }

runtimeOnly(libs.kotlin.analysis.api.impl.base) { isTransitive = false }
runtimeOnly(libs.kotlin.analysis.api.k2) { isTransitive = false }
// Provides org.jetbrains.kotlin.analysis.decompiler.* which is no longer
// bundled in kotlin-compiler as of the 2.4 line.
runtimeOnly(libs.kotlin.analysis.compiler.common) { isTransitive = false }
runtimeOnly(libs.kotlin.analysis.low.level.api.fir) { isTransitive = false }
runtimeOnly(libs.kotlin.analysis.api.platform.`interface`) { isTransitive = false }
runtimeOnly(libs.kotlin.analysis.symbol.light.classes) { isTransitive = false }
runtimeOnly(libs.caffeine)
runtimeOnly(libs.kotlinx.coroutines.core.jvm)
runtimeOnly(libs.kotlinx.collections.immutable.jvm)
runtimeOnly(libs.kotlinx.serialization.json.jvm)

Expand Down
Loading