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