Skip to content

Commit 6afec35

Browse files
authored
Move KSP/KAPT specific things from compiler-common to compiler (#231)
1 parent a80f3b6 commit 6afec35

File tree

65 files changed

+220
-192
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

65 files changed

+220
-192
lines changed

.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -105,3 +105,5 @@ fabric.properties
105105
# Android studio 3.1+ serialized cache file
106106
.idea/caches/build_file_checksums.ser
107107
.idea/deploymentTargetDropDown.xml
108+
109+
.kotlin

build-logic/src/main/kotlin/library.compiler.gradle.kts

Lines changed: 0 additions & 34 deletions
This file was deleted.

build-logic/src/main/kotlin/library.publishing.gradle.kts

Lines changed: 38 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11

22
import com.android.build.gradle.LibraryExtension
3-
import com.github.jengelman.gradle.plugins.shadow.ShadowExtension
3+
import com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar
44
import org.gradle.accessors.dm.LibrariesForLibs
55
import org.jetbrains.dokka.gradle.AbstractDokkaLeafTask
66
import se.ansman.dagger.auto.gradle.cachedProvider
@@ -16,11 +16,6 @@ plugins {
1616

1717
val libs = the<LibrariesForLibs>()
1818

19-
//archivesName.set(project.path
20-
// .removePrefix(":third-party")
21-
// .removePrefix(":")
22-
// .replace(':', '-'))
23-
2419
val gitCommit = cachedProvider {
2520
project.execWithOutput {
2621
commandLine("git", "rev-parse", "HEAD")
@@ -36,7 +31,6 @@ val remoteSource: Provider<String> = providers.gradleProperty("version")
3631
.map { repo("/blob/$it") }
3732

3833
tasks.withType<AbstractDokkaLeafTask>().configureEach {
39-
// moduleName.set(archivesName)
4034
val projectPath = project.path.removePrefix(":").replace(':', '/')
4135
dokkaSourceSets.configureEach {
4236
reportUndocumented.set(false)
@@ -181,22 +175,50 @@ pluginManager.withPlugin("com.android.library") {
181175
}
182176
}
183177

184-
afterEvaluate {
185-
if (pluginManager.hasPlugin("org.jetbrains.kotlin.jvm")) {
186-
publication {
187-
if (pluginManager.hasPlugin("com.github.johnrengelman.shadow")) {
188-
the<ShadowExtension>().component(this)
178+
pluginManager.withPlugin("org.jetbrains.kotlin.jvm") {
179+
publication {
180+
afterEvaluate {
181+
if (pluginManager.hasPlugin("com.gradleup.shadow")) {
182+
from(components["shadow"])
189183
} else {
190184
from(components["java"])
191185
}
192186
}
187+
}
193188

194-
sourcesJar {
195-
dependsOn("classes")
196-
from(project.extensions.getByType<SourceSetContainer>().getByName("main").allSource)
197-
}
189+
sourcesJar {
190+
dependsOn("classes")
191+
from(project.extensions.getByType<SourceSetContainer>().getByName("main").allSource)
198192
}
199193
}
194+
195+
pluginManager.withPlugin("com.gradleup.shadow") {
196+
val compileShaded: Configuration by configurations.creating
197+
configurations.named("compileOnly") { extendsFrom(compileShaded) }
198+
configurations.named("testRuntimeOnly") { extendsFrom(compileShaded) }
199+
configurations.named("shadow") { extendsFrom(configurations["implementation"]) }
200+
201+
// Since we change the classifier of the shadowJar we need to disable the default jar task or we'll get two
202+
// artifacts that have the same classifier
203+
tasks.named<Jar>("jar") {
204+
archiveClassifier.set("ignored")
205+
}
206+
207+
tasks.named<ShadowJar>("shadowJar") {
208+
archiveClassifier.set("")
209+
configurations = listOf(compileShaded)
210+
isEnableRelocation = true
211+
relocationPrefix = "se.ansman.dagger.auto${project.path.replace(':', '.').replace('-', '_')}"
212+
mergeServiceFiles()
213+
}
214+
215+
pluginManager.withPlugin("org.gradle.java-test-fixtures") {
216+
configurations.named("testFixturesImplementation") { extendsFrom(compileShaded) }
217+
configurations.named("testFixturesImplementation") { extendsFrom(configurations["implementation"]) }
218+
configurations.named("testFixturesApi") { extendsFrom(configurations["api"]) }
219+
}
220+
}
221+
200222
pluginManager.withPlugin("org.gradle.java-test-fixtures") {
201223
// Disables publishing test fixtures:
202224
// https://docs.gradle.org/current/userguide/java_testing.html#ex-disable-publishing-of-test-fixtures-variants

build.gradle.kts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,14 +12,14 @@ plugins {
1212
id("dokka-common")
1313
alias(libs.plugins.binaryCompatibilityValidator)
1414
alias(libs.plugins.mkdocs)
15+
alias(libs.plugins.shadow) apply false
1516
}
1617

1718
buildscript {
1819
dependencies {
1920
classpath(libs.android.gradlePlugin)
2021
classpath(libs.dokka.gradlePlugin)
2122
classpath(libs.dokka.versioningPlugin)
22-
classpath(libs.shadow)
2323
}
2424
}
2525

compiler/build.gradle.kts

Lines changed: 34 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,44 @@
1+
2+
import se.ansman.dagger.auto.gradle.setupResourceTests
3+
14
plugins {
2-
id("library.compiler")
5+
kotlin("jvm")
6+
kotlin("kapt")
7+
id("library")
38
id("library.publishing")
9+
id("com.gradleup.shadow")
410
`java-test-fixtures`
511
}
612

13+
setupResourceTests()
14+
715
dependencies {
16+
implementation(libs.javapoet)
17+
implementation(libs.bundles.kotlinpoet)
18+
implementation(libs.dagger)
19+
implementation(libs.dagger.hilt.core)
20+
implementation(libs.ksp.api)
21+
implementation(libs.auto.common)
22+
823
implementation(projects.core)
924
implementation(projects.android.testing)
10-
implementation(projects.thirdParty.retrofit)
11-
implementation(projects.thirdParty.ktorfit)
1225
implementation(projects.thirdParty.androidx.room)
13-
testFixturesApi(projects.compiler.common.testUtils)
14-
testImplementation(projects.compiler.common.testUtils)
26+
implementation(projects.thirdParty.ktorfit)
27+
implementation(projects.thirdParty.retrofit)
28+
29+
implementation(projects.compiler.common)
30+
compileShaded(libs.kotlinx.metadata) {
31+
exclude("org.jetbrains.kotlin", "kotlin-stdlib")
32+
}
33+
34+
implementation(libs.auto.service.annotations)
35+
kapt(libs.auto.service)
36+
37+
implementation(libs.incap)
38+
kapt(libs.incap.compiler)
39+
40+
testFixturesApi(libs.bundles.jvmTesting)
41+
testFixturesApi(libs.dagger)
42+
testFixturesApi(libs.dagger.hilt.core)
43+
testFixturesApi(libs.bundles.compileTesting)
1544
}

compiler/common/build.gradle.kts

Lines changed: 3 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -1,39 +1,13 @@
1-
2-
import com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar
3-
import com.github.jengelman.gradle.plugins.shadow.transformers.ServiceFileTransformer
4-
51
plugins {
62
kotlin("jvm")
73
id("library")
84
id("library.publishing")
9-
id("com.github.johnrengelman.shadow")
10-
}
11-
12-
val compileShaded: Configuration by configurations.creating
13-
configurations.named("compileOnly") { extendsFrom(compileShaded) }
14-
configurations.named("testRuntimeOnly") { extendsFrom(compileShaded) }
15-
16-
val shadowJar = tasks.named<ShadowJar>("shadowJar") {
17-
configurations = listOf(compileShaded)
18-
isEnableRelocation = true
19-
relocationPrefix = "se.ansman.dagger.auto${project.path.replace(':', '.').replace('-', '_')}"
20-
transformers.add(ServiceFileTransformer())
21-
}
22-
23-
artifacts {
24-
add("runtimeOnly", shadowJar)
255
}
266

277
dependencies {
28-
@Suppress("UnstableApiUsage")
29-
compileShaded(libs.kotlinx.metadata) {
30-
exclude("org.jetbrains.kotlin", "kotlin-stdlib")
31-
}
32-
33-
implementation(libs.javapoet)
34-
implementation(libs.bundles.kotlinpoet)
8+
compileOnly(libs.kotlinx.metadata)
9+
compileOnly(libs.javapoet)
10+
compileOnly(libs.bundles.kotlinpoet)
3511
implementation(libs.dagger)
3612
implementation(libs.dagger.hilt.core)
37-
implementation(libs.ksp.api)
38-
implementation(libs.auto.common)
3913
}

compiler/src/main/kotlin/se/ansman/dagger/auto/compiler/androidx/room/renderer/JavaAndroidXRoomDatabaseModuleRenderer.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,8 @@ import com.squareup.javapoet.JavaFile
77
import com.squareup.javapoet.ParameterSpec
88
import com.squareup.javapoet.TypeName
99
import se.ansman.dagger.auto.compiler.androidx.room.models.AndroidXRoomDatabaseModule
10-
import se.ansman.dagger.auto.compiler.common.kapt.JavaPoetRenderEngine
11-
import se.ansman.dagger.auto.compiler.common.rendering.HiltJavaModuleBuilder
10+
import se.ansman.dagger.auto.compiler.kapt.JavaPoetRenderEngine
11+
import se.ansman.dagger.auto.compiler.kapt.HiltJavaModuleBuilder
1212
import javax.lang.model.element.Element
1313

1414
object JavaAndroidXRoomDatabaseModuleRenderer :

compiler/src/main/kotlin/se/ansman/dagger/auto/compiler/androidx/room/renderer/KotlinAndroidXRoomDatabaseModuleRenderer.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,8 @@ import com.squareup.kotlinpoet.FileSpec
88
import com.squareup.kotlinpoet.ParameterSpec
99
import com.squareup.kotlinpoet.TypeName
1010
import se.ansman.dagger.auto.compiler.androidx.room.models.AndroidXRoomDatabaseModule
11-
import se.ansman.dagger.auto.compiler.common.ksp.KotlinPoetRenderEngine
12-
import se.ansman.dagger.auto.compiler.common.rendering.HiltKotlinModuleBuilder
11+
import se.ansman.dagger.auto.compiler.ksp.KotlinPoetRenderEngine
12+
import se.ansman.dagger.auto.compiler.ksp.HiltKotlinModuleBuilder
1313

1414
object KotlinAndroidXRoomDatabaseModuleRenderer :
1515
AndroidXRoomDatabaseModuleRenderer<KSDeclaration, TypeName, ClassName, AnnotationSpec, ParameterSpec, CodeBlock, FileSpec>(

compiler/src/main/kotlin/se/ansman/dagger/auto/compiler/autobind/renderer/JavaAutoBindModuleModuleRenderer.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@ import com.squareup.javapoet.CodeBlock
66
import com.squareup.javapoet.JavaFile
77
import com.squareup.javapoet.ParameterSpec
88
import com.squareup.javapoet.TypeName
9-
import se.ansman.dagger.auto.compiler.common.kapt.JavaPoetRenderEngine
10-
import se.ansman.dagger.auto.compiler.common.rendering.HiltJavaModuleBuilder
9+
import se.ansman.dagger.auto.compiler.kapt.JavaPoetRenderEngine
10+
import se.ansman.dagger.auto.compiler.kapt.HiltJavaModuleBuilder
1111
import javax.lang.model.element.Element
1212

1313
object JavaAutoBindModuleModuleRenderer : AutoBindObjectModuleRenderer<Element, TypeName, ClassName, AnnotationSpec, ParameterSpec, CodeBlock, JavaFile>(

compiler/src/main/kotlin/se/ansman/dagger/auto/compiler/autobind/renderer/KotlinAutoBindObjectModuleRenderer.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,8 @@ import com.squareup.kotlinpoet.CodeBlock
77
import com.squareup.kotlinpoet.FileSpec
88
import com.squareup.kotlinpoet.ParameterSpec
99
import com.squareup.kotlinpoet.TypeName
10-
import se.ansman.dagger.auto.compiler.common.ksp.KotlinPoetRenderEngine
11-
import se.ansman.dagger.auto.compiler.common.rendering.HiltKotlinModuleBuilder
10+
import se.ansman.dagger.auto.compiler.ksp.KotlinPoetRenderEngine
11+
import se.ansman.dagger.auto.compiler.ksp.HiltKotlinModuleBuilder
1212

1313
object KotlinAutoBindObjectModuleRenderer : AutoBindObjectModuleRenderer<KSDeclaration, TypeName, ClassName, AnnotationSpec, ParameterSpec, CodeBlock, FileSpec>(
1414
KotlinPoetRenderEngine,

0 commit comments

Comments
 (0)