xref: /aosp_15_r20/external/ksp/symbol-processing-cmdline/build.gradle.kts (revision af87fb4bb8e3042070d2a054e912924f599b22b7)
1 import com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar
2 
3 evaluationDependsOn(":common-util")
4 evaluationDependsOn(":compiler-plugin")
5 
6 val kotlinBaseVersion: String by project
7 val signingKey: String? by project
8 val signingPassword: String? by project
9 
<lambda>null10 plugins {
11     kotlin("jvm")
12     id("com.github.johnrengelman.shadow") version "6.0.0"
13     `maven-publish`
14     signing
15 }
16 
17 val packedJars by configurations.creating
18 
<lambda>null19 dependencies {
20     packedJars(project(":compiler-plugin")) { isTransitive = false }
21     packedJars(project(":common-util")) { isTransitive = false }
22 }
23 
<lambda>null24 tasks.withType<ShadowJar>() {
25     archiveClassifier.set("")
26     // ShadowJar picks up the `compile` configuration by default and pulls stdlib in.
27     // Therefore, specifying another configuration instead.
28     configurations = listOf(packedJars)
29 }
30 
<lambda>null31 tasks {
32     publish {
33         dependsOn(shadowJar)
34         dependsOn(project(":compiler-plugin").tasks["dokkaJavadocJar"])
35         dependsOn(project(":compiler-plugin").tasks["sourcesJar"])
36     }
37 }
38 
<lambda>null39 publishing {
40     publications {
41         create<MavenPublication>("shadow") {
42             artifactId = "symbol-processing-cmdline"
43             artifact(tasks["shadowJar"])
44             artifact(project(":compiler-plugin").tasks["dokkaJavadocJar"])
45             artifact(project(":compiler-plugin").tasks["sourcesJar"])
46             pom {
47                 name.set("com.google.devtools.ksp:symbol-processing-cmdline")
48                 description.set("Symbol processing for K/N and command line")
49                 withXml {
50                     fun groovy.util.Node.addDependency(
51                         groupId: String,
52                         artifactId: String,
53                         version: String,
54                         scope: String = "runtime"
55                     ) {
56                         appendNode("dependency").apply {
57                             appendNode("groupId", groupId)
58                             appendNode("artifactId", artifactId)
59                             appendNode("version", version)
60                             appendNode("scope", scope)
61                         }
62                     }
63 
64                     asNode().appendNode("dependencies").apply {
65                         addDependency("org.jetbrains.kotlin", "kotlin-stdlib", kotlinBaseVersion)
66                         addDependency("org.jetbrains.kotlin", "kotlin-compiler", kotlinBaseVersion)
67                         addDependency("com.google.devtools.ksp", "symbol-processing-api", version)
68                     }
69                 }
70             }
71         }
72     }
73 }
74 
<lambda>null75 signing {
76     isRequired = hasProperty("signingKey")
77     useInMemoryPgpKeys(signingKey, signingPassword)
78     sign(extensions.getByType<PublishingExtension>().publications)
79 }
80