@@ -14,17 +14,19 @@ lazy val V =
1414 val coursier = " 2.0.8"
1515 val bsp = " 2.0.0-M13"
1616 val moped = " 0.1.11"
17- def scala213 = " 2.13.10"
18- def scala212 = " 2.12.17"
19- def scala211 = " 2.11.12"
20- def scala3 = " 3.2.2"
21- def metals = " 0.11.11"
22- def scalameta = " 4.7.6"
23- def semanticdbKotlinc = " 0.3.0"
24- def testcontainers = " 0.39.3"
25- def requests = " 0.6.5"
26- def minimalMillVersion = " 0.10.0"
27- def millScipVersion = " 0.3.2"
17+ val gradle = " 7.0"
18+ val scala213 = " 2.13.10"
19+ val scala212 = " 2.12.17"
20+ val scala211 = " 2.11.12"
21+ val scala3 = " 3.2.2"
22+ val metals = " 0.11.11"
23+ val scalameta = " 4.7.6"
24+ val semanticdbKotlinc = " 0.3.0"
25+ val testcontainers = " 0.39.3"
26+ val requests = " 0.6.5"
27+ val minimalMillVersion = " 0.10.0"
28+ val millScipVersion = " 0.3.2"
29+ val kotlinGradlePlugin = " 1.5.31"
2830 }
2931
3032inThisBuild(
@@ -90,6 +92,7 @@ lazy val agent = project
9092 .settings(
9193 fatjarPackageSettings,
9294 javaOnlySettings,
95+ javaToolchainVersion := " 8" ,
9396 moduleName := " semanticdb-agent" ,
9497 libraryDependencies ++=
9598 List (
@@ -104,8 +107,51 @@ lazy val agent = project
104107 " Premain-Class" -> " com.sourcegraph.semanticdb_javac.SemanticdbAgent"
105108 )
106109 )
110+ lazy val gradlePlugin = project
111+ .in(file(" semanticdb-gradle-plugin" ))
112+ .settings(
113+ name := " semanticdb-gradle" ,
114+ scalaVersion := V .scala213,
115+ buildInfoPackage := " com.sourcegraph.scip_java" ,
116+ publish / skip := true ,
117+ javaToolchainVersion := " 8" ,
118+ scalacOptions ++= Seq (" -target:8" , " -release" , " 8" ),
119+ libraryDependencies ++=
120+ List (
121+ " dev.gradleplugins" % " gradle-api" % V .gradle % Provided ,
122+ " dev.gradleplugins" % " gradle-test-kit" % V .gradle % Provided ,
123+ " org.jetbrains.kotlin" % " kotlin-gradle-plugin" % V .kotlinGradlePlugin %
124+ Provided
125+ ),
126+ buildInfoKeys :=
127+ Seq [BuildInfoKey ](
128+ version,
129+ sbtVersion,
130+ scalaVersion,
131+ " javacModuleOptions" -> javacModuleOptions,
132+ " semanticdbScalacVersions" ->
133+ com
134+ .sourcegraph
135+ .sbtsourcegraph
136+ .Versions
137+ .cachedSemanticdbVersionsByScalaVersion,
138+ " sbtSourcegraphVersion" ->
139+ com.sourcegraph.sbtsourcegraph.BuildInfo .version,
140+ " semanticdbVersion" -> V .scalameta,
141+ " semanticdbKotlincVersion" -> V .semanticdbKotlinc,
142+ " mtagsVersion" -> V .metals,
143+ " scala211" -> V .scala211,
144+ " scala212" -> V .scala212,
145+ " scala213" -> V .scala213,
146+ " scala3" -> V .scala3,
147+ " bspVersion" -> V .bsp,
148+ " minimalMillVersion" -> V .minimalMillVersion,
149+ " millScipVersion" -> V .millScipVersion
150+ )
151+ )
152+ .enablePlugins(BuildInfoPlugin )
107153
108- lazy val plugin = project
154+ lazy val javacPlugin = project
109155 .in(file(" semanticdb-javac" ))
110156 .settings(
111157 fatjarPackageSettings,
@@ -204,13 +250,14 @@ lazy val cli = project
204250 }
205251
206252 addJar(
207- (plugin / Compile / Keys .`package`).value,
253+ (javacPlugin / Compile / Keys .`package`).value,
208254 " semanticdb-plugin.jar"
209255 )
210256 addJar(
211257 (agent / Compile / Keys .`package`).value,
212258 " semanticdb-agent.jar"
213259 )
260+ addJar((gradlePlugin / Compile / assembly).value, " gradle-plugin.jar" )
214261
215262 IO .copy(outs)
216263 val props = new Properties ()
@@ -333,13 +380,13 @@ lazy val minimizedSettings = List[Def.Setting[_]](
333380lazy val minimized = project
334381 .in(file(" tests/minimized/.j11" ))
335382 .settings(minimizedSettings, javaOnlySettings)
336- .dependsOn(agent, plugin )
383+ .dependsOn(agent, javacPlugin )
337384 .disablePlugins(JavaFormatterPlugin )
338385
339386lazy val minimized8 = project
340387 .in(file(" tests/minimized/.j8" ))
341388 .settings(minimizedSettings, javaToolchainVersion := " 8" , javaOnlySettings)
342- .dependsOn(agent, plugin )
389+ .dependsOn(agent, javacPlugin )
343390 .disablePlugins(JavaFormatterPlugin )
344391
345392def javacModuleOptions =
@@ -364,7 +411,7 @@ lazy val minimized17 = project
364411 javaToolchainVersion := " 17" ,
365412 javacOptions ++= javacModuleOptions
366413 )
367- .dependsOn(agent, plugin )
414+ .dependsOn(agent, javacPlugin )
368415 .disablePlugins(JavaFormatterPlugin )
369416
370417lazy val minimizedScala = project
@@ -397,7 +444,7 @@ lazy val unit = project
397444 ),
398445 buildInfoPackage := " tests"
399446 )
400- .dependsOn(plugin , cli)
447+ .dependsOn(javacPlugin , cli)
401448 .enablePlugins(BuildInfoPlugin )
402449
403450lazy val buildTools = project
@@ -407,7 +454,7 @@ lazy val buildTools = project
407454 (Test / javaOptions) ++=
408455 List (
409456 s " -javaagent: ${(agent / Compile / Keys .`package`).value}" ,
410- s " -Dsemanticdb.pluginpath= ${(plugin / Compile / Keys .`package`).value}" ,
457+ s " -Dsemanticdb.pluginpath= ${(javacPlugin / Compile / Keys .`package`).value}" ,
411458 s " -Dsemanticdb.sourceroot= ${(ThisBuild / baseDirectory).value}" ,
412459 s " -Dsemanticdb.targetroot= ${(agent / Compile / target).value / " semanticdb-targetroot" }"
413460 )
@@ -541,3 +588,5 @@ dumpScipJavaVersion := {
541588
542589 IO .write((ThisBuild / baseDirectory).value / " VERSION" , versionValue)
543590}
591+
592+ ThisBuild / version := sys.env.get(" CI" ).fold(" dev" )(_ => version.value)
0 commit comments