Skip to content

Commit a32009f

Browse files
ALikhachevSpace Team
authored andcommitted
[Build] Add more bootstrap substitutions
BTA currently adds dependencies on `org.jetbrains.kotlin:kotlin-compiler-runner`, `org.jetbrains.kotlin:kotlin-scripting-common` and `org.jetbrains.kotlin:kotlin-scripting-jvm`. Also, KGP adds dependency on `org.jetbrains.kotlin:kotlin-build-tools-compat` for supporting older compiler versions. Without these substitutions, build may end up with circular dependency issues. Prerequisite for KT-78200 # Conflicts: # repo/gradle-settings-conventions/kotlin-bootstrap/src/main/kotlin/kotlin-bootstrap.settings.gradle.kts # settings.gradle
1 parent 853f1c1 commit a32009f

File tree

7 files changed

+88
-1
lines changed

7 files changed

+88
-1
lines changed
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
val resolvedBootstrap = configurations.resolvable("kotlinBuildToolsApiCompatBootstrapClasspath") {
2+
dependencies.addLater(providers.provider {
3+
project.dependencies.create("org.jetbrains.kotlin:kotlin-build-tools-compat:${bootstrapKotlinVersion}")
4+
})
5+
}
6+
7+
configurations.consumable("buildToolsCompatImplElements") {
8+
attributes {
9+
attribute(Category.CATEGORY_ATTRIBUTE, objects.named(Category.LIBRARY))
10+
attribute(LibraryElements.LIBRARY_ELEMENTS_ATTRIBUTE, objects.named(LibraryElements.JAR))
11+
attribute(Usage.USAGE_ATTRIBUTE, objects.named(Usage.JAVA_RUNTIME))
12+
}
13+
14+
outgoing.artifacts(resolvedBootstrap)
15+
}
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
val resolvedBootstrap = configurations.resolvable("kotlinCompilerRunnerBootstrapClasspath") {
2+
dependencies.addLater(providers.provider {
3+
project.dependencies.create("org.jetbrains.kotlin:kotlin-compiler-runner:${bootstrapKotlinVersion}")
4+
})
5+
}
6+
7+
configurations.consumable("kotlinCompilerRunnerRuntimeElements") {
8+
attributes {
9+
attribute(Category.CATEGORY_ATTRIBUTE, objects.named(Category.LIBRARY))
10+
attribute(LibraryElements.LIBRARY_ELEMENTS_ATTRIBUTE, objects.named(LibraryElements.JAR))
11+
attribute(Usage.USAGE_ATTRIBUTE, objects.named(Usage.JAVA_RUNTIME))
12+
}
13+
outgoing.artifacts(resolvedBootstrap)
14+
}
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
val resolvedBootstrap = configurations.resolvable("kotlinScriptingCommonBootstrapClasspath") {
2+
dependencies.addLater(providers.provider {
3+
project.dependencies.create("org.jetbrains.kotlin:kotlin-scripting-common:${bootstrapKotlinVersion}")
4+
})
5+
}
6+
7+
configurations.consumable("kotlinScriptingCommonRuntimeElements") {
8+
attributes {
9+
attribute(Category.CATEGORY_ATTRIBUTE, objects.named(Category.LIBRARY))
10+
attribute(LibraryElements.LIBRARY_ELEMENTS_ATTRIBUTE, objects.named(LibraryElements.JAR))
11+
attribute(Usage.USAGE_ATTRIBUTE, objects.named(Usage.JAVA_RUNTIME))
12+
}
13+
outgoing.artifacts(resolvedBootstrap)
14+
}
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
val resolvedBootstrap = configurations.resolvable("kotlinScriptingJvmBootstrapClasspath") {
2+
dependencies.addLater(providers.provider {
3+
project.dependencies.create("org.jetbrains.kotlin:kotlin-scripting-jvm:${bootstrapKotlinVersion}")
4+
})
5+
}
6+
7+
configurations.consumable("kotlinScriptingJvmRuntimeElements") {
8+
attributes {
9+
attribute(Category.CATEGORY_ATTRIBUTE, objects.named(Category.LIBRARY))
10+
attribute(LibraryElements.LIBRARY_ELEMENTS_ATTRIBUTE, objects.named(LibraryElements.JAR))
11+
attribute(Usage.USAGE_ATTRIBUTE, objects.named(Usage.JAVA_RUNTIME))
12+
}
13+
outgoing.artifacts(resolvedBootstrap)
14+
}

gradle/verification-metadata.xml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3719,6 +3719,12 @@
37193719
<sha256 value="0243745db8da072aee8d2b11adf0bc0b934d88949e0cc39916da957182a2ea8a" origin="Generated by Gradle"/>
37203720
</artifact>
37213721
</component>
3722+
<component group="org.jetbrains.kotlin" name="kotlin-build-tools-compat" version="2.3.0-dev-7225">
3723+
<artifact name="kotlin-build-tools-compat-2.3.0-dev-7225.jar">
3724+
<md5 value="d02de903eb0960c865a9dc8525335bd9" origin="Generated by Gradle"/>
3725+
<sha256 value="866a8ddc99d703138396c2a8602a0672a608eafb17ead8c24840a9c55e94e702" origin="Generated by Gradle"/>
3726+
</artifact>
3727+
</component>
37223728
<component group="org.jetbrains.kotlin" name="kotlin-build-tools-impl" version="2.0.21">
37233729
<artifact name="kotlin-build-tools-impl-2.0.21.jar">
37243730
<md5 value="49f913b04df07796c15e87d990024470" origin="Generated by Gradle"/>

repo/gradle-settings-conventions/kotlin-bootstrap/src/main/kotlin/kotlin-bootstrap.settings.gradle.kts

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -264,6 +264,16 @@ private fun Settings.applyBootstrapConfiguration(
264264
substitute(module("org.jetbrains.kotlin:kotlin-daemon-client"))
265265
.using(project(":dependencies:bootstrap:kotlin-daemon-client-bootstrap"))
266266
}
267+
} else if (path == ":kotlin-scripting-common") {
268+
resolutionStrategy.dependencySubstitution {
269+
substitute(module("org.jetbrains.kotlin:kotlin-scripting-common"))
270+
.using(project(":dependencies:bootstrap:kotlin-scripting-common-bootstrap"))
271+
}
272+
} else if (path == ":kotlin-scripting-jvm") {
273+
resolutionStrategy.dependencySubstitution {
274+
substitute(module("org.jetbrains.kotlin:kotlin-scripting-jvm"))
275+
.using(project(":dependencies:bootstrap:kotlin-scripting-jvm-bootstrap"))
276+
}
267277
} else if (path == ":kotlin-tooling-core") {
268278
resolutionStrategy.dependencySubstitution {
269279
substitute(module("org.jetbrains.kotlin:kotlin-tooling-core"))
@@ -274,6 +284,16 @@ private fun Settings.applyBootstrapConfiguration(
274284
substitute(module("org.jetbrains.kotlin:kotlin-build-tools-impl"))
275285
.using(project(":dependencies:bootstrap:kotlin-build-tools-impl-bootstrap"))
276286
}
287+
} else if (path == ":compiler:build-tools:kotlin-build-tools-compat") {
288+
resolutionStrategy.dependencySubstitution {
289+
substitute(module("org.jetbrains.kotlin:kotlin-build-tools-compat"))
290+
.using(project(":dependencies:bootstrap:kotlin-build-tools-compat-bootstrap"))
291+
}
292+
} else if (path == ":kotlin-compiler-runner") {
293+
resolutionStrategy.dependencySubstitution {
294+
substitute(module("org.jetbrains.kotlin:kotlin-compiler-runner"))
295+
.using(project(":dependencies:bootstrap:kotlin-compiler-runner-bootstrap"))
296+
}
277297
}
278298

279299
substituteProjectsWithBootstrap()

settings.gradle

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -213,11 +213,15 @@ include ":benchmarks",
213213
":dependencies:bootstrap:kotlin-stdlib-bootstrap",
214214
":dependencies:bootstrap:kotlin-build-tools-api-bootstrap",
215215
":dependencies:bootstrap:kotlin-build-tools-impl-bootstrap",
216+
":dependencies:bootstrap:kotlin-build-tools-compat-bootstrap",
216217
":dependencies:bootstrap:kotlin-script-runtime-bootstrap",
218+
":dependencies:bootstrap:kotlin-scripting-common-bootstrap",
219+
":dependencies:bootstrap:kotlin-scripting-jvm-bootstrap",
217220
":dependencies:bootstrap:kotlin-daemon-client-bootstrap",
218221
":dependencies:bootstrap:kotlin-reflect-bootstrap",
219222
":dependencies:bootstrap:kotlin-tooling-core-bootstrap",
220-
":dependencies:bootstrap:kotlin-compiler-embeddable-bootstrap"
223+
":dependencies:bootstrap:kotlin-compiler-embeddable-bootstrap",
224+
":dependencies:bootstrap:kotlin-compiler-runner-bootstrap"
221225

222226
include ":kotlin-allopen-compiler-plugin",
223227
":kotlin-allopen-compiler-plugin.embeddable",

0 commit comments

Comments
 (0)