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