xref: /aosp_15_r20/external/ksp/build.gradle.kts (revision af87fb4bb8e3042070d2a054e912924f599b22b7)
1*af87fb4bSXin Li import com.google.devtools.ksp.configureKtlint
2*af87fb4bSXin Li import com.google.devtools.ksp.configureKtlintApplyToIdea
3*af87fb4bSXin Li 
4*af87fb4bSXin Li val sonatypeUserName: String? by project
5*af87fb4bSXin Li val sonatypePassword: String? by project
6*af87fb4bSXin Li 
7*af87fb4bSXin Li val kotlinBaseVersion: String? by project
8*af87fb4bSXin Li if (extra.has("kspOnlyVersion") && kotlinBaseVersion != null) {
9*af87fb4bSXin Li     val kspOnlyVersion = extra.get("kspOnlyVersion") as String
10*af87fb4bSXin Li     extra.set("kspVersion", "$kotlinBaseVersion-$kspOnlyVersion")
11*af87fb4bSXin Li }
12*af87fb4bSXin Li 
13*af87fb4bSXin Li if (!extra.has("kspVersion")) {
14*af87fb4bSXin Li     extra.set("kspVersion", "2.0.255-SNAPSHOT")
15*af87fb4bSXin Li }
16*af87fb4bSXin Li 
<lambda>null17*af87fb4bSXin Li repositories {
18*af87fb4bSXin Li     mavenCentral()
19*af87fb4bSXin Li     maven("https://maven.pkg.jetbrains.space/kotlin/p/kotlin/bootstrap/")
20*af87fb4bSXin Li }
21*af87fb4bSXin Li 
<lambda>null22*af87fb4bSXin Li plugins {
23*af87fb4bSXin Li     kotlin("jvm") version "1.8.0"
24*af87fb4bSXin Li     id("io.github.gradle-nexus.publish-plugin") version "1.1.0"
25*af87fb4bSXin Li }
26*af87fb4bSXin Li 
<lambda>null27*af87fb4bSXin Li nexusPublishing {
28*af87fb4bSXin Li     packageGroup.set("com.google.devtools.ksp")
29*af87fb4bSXin Li     repositories {
30*af87fb4bSXin Li         sonatype {
31*af87fb4bSXin Li             username.set(sonatypeUserName)
32*af87fb4bSXin Li             password.set(sonatypePassword)
33*af87fb4bSXin Li         }
34*af87fb4bSXin Li     }
35*af87fb4bSXin Li }
36*af87fb4bSXin Li 
37*af87fb4bSXin Li version = rootProject.extra.get("kspVersion") as String
38*af87fb4bSXin Li 
39*af87fb4bSXin Li project.configureKtlintApplyToIdea()
<lambda>null40*af87fb4bSXin Li subprojects {
41*af87fb4bSXin Li     group = "com.google.devtools.ksp"
42*af87fb4bSXin Li     version = rootProject.extra.get("kspVersion") as String
43*af87fb4bSXin Li     this.configureKtlint()
44*af87fb4bSXin Li     repositories {
45*af87fb4bSXin Li         mavenCentral()
46*af87fb4bSXin Li         google()
47*af87fb4bSXin Li         maven("https://maven.pkg.jetbrains.space/kotlin/p/kotlin/bootstrap/")
48*af87fb4bSXin Li         maven("https://www.jetbrains.com/intellij-repository/snapshots")
49*af87fb4bSXin Li     }
50*af87fb4bSXin Li     pluginManager.withPlugin("maven-publish") {
51*af87fb4bSXin Li         val publishExtension = extensions.getByType<PublishingExtension>()
52*af87fb4bSXin Li         publishExtension.repositories {
53*af87fb4bSXin Li             if (extra.has("outRepo")) {
54*af87fb4bSXin Li                 val outRepo = extra.get("outRepo") as String
55*af87fb4bSXin Li                 maven {
56*af87fb4bSXin Li                     url = File(outRepo).toURI()
57*af87fb4bSXin Li                 }
58*af87fb4bSXin Li             } else {
59*af87fb4bSXin Li                 mavenLocal()
60*af87fb4bSXin Li             }
61*af87fb4bSXin Li             maven {
62*af87fb4bSXin Li                 name = "test"
63*af87fb4bSXin Li                 url = uri("${rootProject.buildDir}/repos/test")
64*af87fb4bSXin Li             }
65*af87fb4bSXin Li         }
66*af87fb4bSXin Li         publishExtension.publications.whenObjectAdded {
67*af87fb4bSXin Li             check(this is MavenPublication) {
68*af87fb4bSXin Li                 "unexpected publication $this"
69*af87fb4bSXin Li             }
70*af87fb4bSXin Li             val publication = this
71*af87fb4bSXin Li             publication.pom {
72*af87fb4bSXin Li                 url.set("https://goo.gle/ksp")
73*af87fb4bSXin Li                 licenses {
74*af87fb4bSXin Li                     license {
75*af87fb4bSXin Li                         name.set("The Apache License, Version 2.0")
76*af87fb4bSXin Li                         url.set("http://www.apache.org/licenses/LICENSE-2.0.txt")
77*af87fb4bSXin Li                     }
78*af87fb4bSXin Li                 }
79*af87fb4bSXin Li                 developers {
80*af87fb4bSXin Li                     developer {
81*af87fb4bSXin Li                         name.set("KSP Team")
82*af87fb4bSXin Li                     }
83*af87fb4bSXin Li                 }
84*af87fb4bSXin Li                 scm {
85*af87fb4bSXin Li                     connection.set("scm:git:https://github.com/google/ksp.git")
86*af87fb4bSXin Li                     developerConnection.set("scm:git:https://github.com/google/ksp.git")
87*af87fb4bSXin Li                     url.set("https://github.com/google/ksp")
88*af87fb4bSXin Li                 }
89*af87fb4bSXin Li             }
90*af87fb4bSXin Li         }
91*af87fb4bSXin Li     }
92*af87fb4bSXin Li 
93*af87fb4bSXin Li     tasks.withType<JavaCompile>().configureEach {
94*af87fb4bSXin Li         sourceCompatibility = JavaVersion.VERSION_1_8.toString()
95*af87fb4bSXin Li         targetCompatibility = JavaVersion.VERSION_1_8.toString()
96*af87fb4bSXin Li     }
97*af87fb4bSXin Li }
98