mirror of https://github.com/sbt/sbt.git
Fix build
This commit is contained in:
parent
9cadbbb453
commit
339e707300
88
build.sbt
88
build.sbt
|
|
@ -1,5 +1,4 @@
|
||||||
import Dependencies._
|
import Dependencies._
|
||||||
import Util._
|
|
||||||
import com.typesafe.tools.mima.core.ProblemFilters._
|
import com.typesafe.tools.mima.core.ProblemFilters._
|
||||||
import com.typesafe.tools.mima.core._
|
import com.typesafe.tools.mima.core._
|
||||||
import local.Scripted
|
import local.Scripted
|
||||||
|
|
@ -13,7 +12,7 @@ ThisBuild / version := {
|
||||||
val v = "2.0.0-SNAPSHOT"
|
val v = "2.0.0-SNAPSHOT"
|
||||||
nightlyVersion.getOrElse(v)
|
nightlyVersion.getOrElse(v)
|
||||||
}
|
}
|
||||||
ThisBuild / version2_13 := "2.0.0-SNAPSHOT"
|
ThisBuild / Utils.version2_13 := "2.0.0-SNAPSHOT"
|
||||||
ThisBuild / versionScheme := Some("early-semver")
|
ThisBuild / versionScheme := Some("early-semver")
|
||||||
ThisBuild / scalafmtOnCompile := !(Global / insideCI).value
|
ThisBuild / scalafmtOnCompile := !(Global / insideCI).value
|
||||||
ThisBuild / Test / scalafmtOnCompile := !(Global / insideCI).value
|
ThisBuild / Test / scalafmtOnCompile := !(Global / insideCI).value
|
||||||
|
|
@ -48,7 +47,7 @@ ThisBuild / libraryDependencySchemes += "org.scala-lang.modules" %% "scala-xml"
|
||||||
Global / semanticdbEnabled := !(Global / insideCI).value
|
Global / semanticdbEnabled := !(Global / insideCI).value
|
||||||
// Change main/src/main/scala/sbt/plugins/SemanticdbPlugin.scala too, if you change this.
|
// Change main/src/main/scala/sbt/plugins/SemanticdbPlugin.scala too, if you change this.
|
||||||
Global / semanticdbVersion := "4.7.8"
|
Global / semanticdbVersion := "4.7.8"
|
||||||
Global / excludeLintKeys += componentID
|
Global / excludeLintKeys += Utils.componentID
|
||||||
Global / excludeLintKeys += scriptedBufferLog
|
Global / excludeLintKeys += scriptedBufferLog
|
||||||
Global / excludeLintKeys += checkPluginCross
|
Global / excludeLintKeys += checkPluginCross
|
||||||
ThisBuild / evictionErrorLevel := Level.Info
|
ThisBuild / evictionErrorLevel := Level.Info
|
||||||
|
|
@ -65,13 +64,13 @@ def commonSettings: Seq[Setting[_]] = Def.settings(
|
||||||
)
|
)
|
||||||
),
|
),
|
||||||
scalaVersion := baseScalaVersion,
|
scalaVersion := baseScalaVersion,
|
||||||
componentID := None,
|
Utils.componentID := None,
|
||||||
resolvers += Resolver.typesafeIvyRepo("releases").withName("typesafe-sbt-build-ivy-releases"),
|
resolvers += Resolver.typesafeIvyRepo("releases").withName("typesafe-sbt-build-ivy-releases"),
|
||||||
resolvers ++= Resolver.sonatypeOssRepos("snapshots"),
|
resolvers ++= Resolver.sonatypeOssRepos("snapshots"),
|
||||||
resolvers ++= Resolver.sonatypeOssRepos("snapshots"),
|
resolvers ++= Resolver.sonatypeOssRepos("snapshots"),
|
||||||
testFrameworks += TestFramework("hedgehog.sbt.Framework"),
|
testFrameworks += TestFramework("hedgehog.sbt.Framework"),
|
||||||
testFrameworks += TestFramework("verify.runner.Framework"),
|
testFrameworks += TestFramework("verify.runner.Framework"),
|
||||||
Global / concurrentRestrictions += Util.testExclusiveRestriction,
|
Global / concurrentRestrictions += Utils.testExclusiveRestriction,
|
||||||
Test / testOptions += Tests.Argument(TestFrameworks.ScalaCheck, "-w", "1"),
|
Test / testOptions += Tests.Argument(TestFrameworks.ScalaCheck, "-w", "1"),
|
||||||
Test / testOptions += Tests.Argument(TestFrameworks.ScalaCheck, "-verbosity", "2"),
|
Test / testOptions += Tests.Argument(TestFrameworks.ScalaCheck, "-verbosity", "2"),
|
||||||
compile / javacOptions ++= Seq("-Xlint", "-Xlint:-serial"),
|
compile / javacOptions ++= Seq("-Xlint", "-Xlint:-serial"),
|
||||||
|
|
@ -113,11 +112,10 @@ def utilCommonSettings: Seq[Setting[_]] = Def.settings(
|
||||||
)
|
)
|
||||||
|
|
||||||
def minimalSettings: Seq[Setting[_]] =
|
def minimalSettings: Seq[Setting[_]] =
|
||||||
commonSettings ++ customCommands ++
|
commonSettings ++ customCommands ++ Utils.publishPomSettings
|
||||||
publishPomSettings
|
|
||||||
|
|
||||||
def baseSettings: Seq[Setting[_]] =
|
def baseSettings: Seq[Setting[_]] =
|
||||||
minimalSettings ++ Seq(projectComponent) ++ baseScalacOptions ++ Licensed.settings
|
minimalSettings ++ Seq(Utils.projectComponent) ++ Utils.baseScalacOptions ++ Licensed.settings
|
||||||
|
|
||||||
def testedBaseSettings: Seq[Setting[_]] =
|
def testedBaseSettings: Seq[Setting[_]] =
|
||||||
baseSettings ++ testDependencies
|
baseSettings ++ testDependencies
|
||||||
|
|
@ -199,12 +197,12 @@ lazy val sbtRoot: Project = (project in file("."))
|
||||||
|!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!""".stripMargin
|
|!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!""".stripMargin
|
||||||
else "")
|
else "")
|
||||||
},
|
},
|
||||||
Util.baseScalacOptions,
|
Utils.baseScalacOptions,
|
||||||
Docs.settings,
|
Docs.settings,
|
||||||
scalacOptions += "-Ymacro-expand:none", // for both sxr and doc
|
scalacOptions += "-Ymacro-expand:none", // for both sxr and doc
|
||||||
Util.publishPomSettings,
|
Utils.publishPomSettings,
|
||||||
otherRootSettings,
|
otherRootSettings,
|
||||||
dontPublish,
|
Utils.noPublish,
|
||||||
publishLocal := {},
|
publishLocal := {},
|
||||||
Global / commands += Command
|
Global / commands += Command
|
||||||
.single("sbtOn")((state, dir) => s"sbtProj/test:runMain sbt.RunFromSourceMain $dir" :: state),
|
.single("sbtOn")((state, dir) => s"sbtProj/test:runMain sbt.RunFromSourceMain $dir" :: state),
|
||||||
|
|
@ -308,7 +306,7 @@ val logicProj = (project in file("internal") / "util-logic")
|
||||||
// format from which Java sources are generated by the datatype generator Projproject
|
// format from which Java sources are generated by the datatype generator Projproject
|
||||||
lazy val utilInterface = (project in file("internal") / "util-interface").settings(
|
lazy val utilInterface = (project in file("internal") / "util-interface").settings(
|
||||||
baseSettings,
|
baseSettings,
|
||||||
javaOnlySettings,
|
Utils.javaOnlySettings,
|
||||||
crossPaths := false,
|
crossPaths := false,
|
||||||
autoScalaLibrary := false,
|
autoScalaLibrary := false,
|
||||||
Compile / doc / javacOptions := Nil,
|
Compile / doc / javacOptions := Nil,
|
||||||
|
|
@ -342,7 +340,7 @@ lazy val utilCore = project
|
||||||
Seq("org.scala-lang" % "scala-reflect" % scalaVersion.value)
|
Seq("org.scala-lang" % "scala-reflect" % scalaVersion.value)
|
||||||
} else Seq.empty
|
} else Seq.empty
|
||||||
},
|
},
|
||||||
Util.keywordsSettings,
|
Utils.keywordsSettings,
|
||||||
utilMimaSettings
|
utilMimaSettings
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
@ -570,7 +568,7 @@ lazy val stdTaskProj = (project in file("tasks-standard"))
|
||||||
.settings(
|
.settings(
|
||||||
testedBaseSettings,
|
testedBaseSettings,
|
||||||
name := "Task System",
|
name := "Task System",
|
||||||
testExclusive,
|
Utils.testExclusive,
|
||||||
mimaSettings,
|
mimaSettings,
|
||||||
mimaBinaryIssueFilters ++= Seq(
|
mimaBinaryIssueFilters ++= Seq(
|
||||||
// unused private[sbt]
|
// unused private[sbt]
|
||||||
|
|
@ -960,7 +958,7 @@ lazy val sbtProj = (project in file("sbt-app"))
|
||||||
normalizedName := "sbt",
|
normalizedName := "sbt",
|
||||||
version := {
|
version := {
|
||||||
if (scalaVersion.value == baseScalaVersion) version.value
|
if (scalaVersion.value == baseScalaVersion) version.value
|
||||||
else version2_13.value
|
else Utils.version2_13.value
|
||||||
},
|
},
|
||||||
crossPaths := false,
|
crossPaths := false,
|
||||||
crossTarget := { target.value / scalaVersion.value },
|
crossTarget := { target.value / scalaVersion.value },
|
||||||
|
|
@ -987,7 +985,7 @@ lazy val serverTestProj = (project in file("server-test"))
|
||||||
.dependsOn(sbtProj % "compile->test", scriptedSbtProj % "compile->test")
|
.dependsOn(sbtProj % "compile->test", scriptedSbtProj % "compile->test")
|
||||||
.settings(
|
.settings(
|
||||||
testedBaseSettings,
|
testedBaseSettings,
|
||||||
dontPublish,
|
Utils.noPublish,
|
||||||
// make server tests serial
|
// make server tests serial
|
||||||
Test / watchTriggers += baseDirectory.value.toGlob / "src" / "server-test" / **,
|
Test / watchTriggers += baseDirectory.value.toGlob / "src" / "server-test" / **,
|
||||||
Test / parallelExecution := false,
|
Test / parallelExecution := false,
|
||||||
|
|
@ -1033,7 +1031,7 @@ lazy val sbtClientProj = (project in file("client"))
|
||||||
.dependsOn(commandProj)
|
.dependsOn(commandProj)
|
||||||
.settings(
|
.settings(
|
||||||
commonSettings,
|
commonSettings,
|
||||||
dontPublish,
|
Utils.noPublish,
|
||||||
name := "sbt-client",
|
name := "sbt-client",
|
||||||
mimaPreviousArtifacts := Set.empty,
|
mimaPreviousArtifacts := Set.empty,
|
||||||
crossPaths := false,
|
crossPaths := false,
|
||||||
|
|
@ -1118,7 +1116,7 @@ lazy val sbtBig = (project in file(".big"))
|
||||||
lazy val lowerUtils = (project in (file("internal") / "lower"))
|
lazy val lowerUtils = (project in (file("internal") / "lower"))
|
||||||
.aggregate(lowerUtilProjects.map(p => LocalProject(p.id)): _*)
|
.aggregate(lowerUtilProjects.map(p => LocalProject(p.id)): _*)
|
||||||
.settings(
|
.settings(
|
||||||
dontPublish
|
Utils.noPublish
|
||||||
)
|
)
|
||||||
|
|
||||||
lazy val upperModules = (project in (file("internal") / "upper"))
|
lazy val upperModules = (project in (file("internal") / "upper"))
|
||||||
|
|
@ -1127,7 +1125,7 @@ lazy val upperModules = (project in (file("internal") / "upper"))
|
||||||
diff Seq(bundledLauncherProj)).map(p => LocalProject(p.id)): _*
|
diff Seq(bundledLauncherProj)).map(p => LocalProject(p.id)): _*
|
||||||
)
|
)
|
||||||
.settings(
|
.settings(
|
||||||
dontPublish
|
Utils.noPublish
|
||||||
)
|
)
|
||||||
|
|
||||||
lazy val sbtIgnoredProblems = {
|
lazy val sbtIgnoredProblems = {
|
||||||
|
|
@ -1377,7 +1375,7 @@ lazy val lmCore = (project in file("lm-core"))
|
||||||
),
|
),
|
||||||
Compile / resourceGenerators += Def
|
Compile / resourceGenerators += Def
|
||||||
.task(
|
.task(
|
||||||
Util.generateVersionFile(
|
Utils.generateVersionFile(
|
||||||
version.value,
|
version.value,
|
||||||
resourceManaged.value,
|
resourceManaged.value,
|
||||||
streams.value,
|
streams.value,
|
||||||
|
|
@ -1439,7 +1437,7 @@ def sbtCoursierSettings: Seq[Setting[_]] = Def.settings(
|
||||||
),
|
),
|
||||||
scalafixDependencies += "net.hamnaberg" %% "dataclass-scalafix" % dataclassScalafixVersion,
|
scalafixDependencies += "net.hamnaberg" %% "dataclass-scalafix" % dataclassScalafixVersion,
|
||||||
assemblyMergeStrategy := {
|
assemblyMergeStrategy := {
|
||||||
case PathList("lmcoursier", "internal", "shaded", "org", "fusesource", xs @ _*) => MergeStrategy.first
|
case PathList("lmcoursier", "internal", "shaded", "org", "fusesource", _*) => MergeStrategy.first
|
||||||
// case PathList("lmcoursier", "internal", "shaded", "package.class") => MergeStrategy.first
|
// case PathList("lmcoursier", "internal", "shaded", "package.class") => MergeStrategy.first
|
||||||
// case PathList("lmcoursier", "internal", "shaded", "package$.class") => MergeStrategy.first
|
// case PathList("lmcoursier", "internal", "shaded", "package$.class") => MergeStrategy.first
|
||||||
case PathList("com", "github") => MergeStrategy.discard
|
case PathList("com", "github") => MergeStrategy.discard
|
||||||
|
|
@ -1453,7 +1451,7 @@ def sbtCoursierSettings: Seq[Setting[_]] = Def.settings(
|
||||||
case PathList("scala") => MergeStrategy.discard
|
case PathList("scala") => MergeStrategy.discard
|
||||||
case PathList("sjsonnew") => MergeStrategy.discard
|
case PathList("sjsonnew") => MergeStrategy.discard
|
||||||
case PathList("xsbti") => MergeStrategy.discard
|
case PathList("xsbti") => MergeStrategy.discard
|
||||||
case PathList("META-INF", "native", xs @ _*) => MergeStrategy.first
|
case PathList("META-INF", "native", _*) => MergeStrategy.first
|
||||||
case x =>
|
case x =>
|
||||||
val oldStrategy = (ThisBuild / assemblyMergeStrategy).value
|
val oldStrategy = (ThisBuild / assemblyMergeStrategy).value
|
||||||
oldStrategy(x)
|
oldStrategy(x)
|
||||||
|
|
@ -1483,32 +1481,25 @@ lazy val definitions = project
|
||||||
scalaVersion := scala3,
|
scalaVersion := scala3,
|
||||||
crossScalaVersions := Seq(scala212, scala213, scala3),
|
crossScalaVersions := Seq(scala212, scala213, scala3),
|
||||||
libraryDependencies ++= Seq(
|
libraryDependencies ++= Seq(
|
||||||
coursierDep,
|
coursier,
|
||||||
"net.hamnaberg" %% "dataclass-annotation" % dataclassScalafixVersion % Provided,
|
"net.hamnaberg" %% "dataclass-annotation" % dataclassScalafixVersion % Provided,
|
||||||
lmIvy.value % Provided,
|
|
||||||
),
|
),
|
||||||
conflictWarning := ConflictWarning.disable,
|
conflictWarning := ConflictWarning.disable,
|
||||||
dontPublish,
|
Utils.noPublish,
|
||||||
)
|
)
|
||||||
|
.dependsOn(lmIvy % "provided")
|
||||||
|
|
||||||
lazy val lmCoursier = project
|
lazy val lmCoursier = project
|
||||||
.in(file("lm-coursier"))
|
.in(file("lm-coursier"))
|
||||||
.settings(
|
.settings(
|
||||||
shared,
|
|
||||||
crossScalaVersions := Seq(scala212, scala213, scala3),
|
crossScalaVersions := Seq(scala212, scala213, scala3),
|
||||||
Mima.settings,
|
Mima.settings,
|
||||||
Mima.lmCoursierFilters,
|
Mima.lmCoursierFilters,
|
||||||
libraryDependencies ++= Seq(
|
libraryDependencies ++= Seq(
|
||||||
coursierDep,
|
coursier,
|
||||||
coursierSbtMavenRepoDep,
|
coursierSbtMavenRepo,
|
||||||
"io.get-coursier.jniutils" % "windows-jni-utils-lmcoursier" % jniUtilsVersion,
|
"io.get-coursier.jniutils" % "windows-jni-utils-lmcoursier" % jniUtilsVersion,
|
||||||
"net.hamnaberg" %% "dataclass-annotation" % dataclassScalafixVersion % Provided,
|
"net.hamnaberg" %% "dataclass-annotation" % dataclassScalafixVersion % Provided,
|
||||||
|
|
||||||
// We depend on librarymanagement-ivy rather than just
|
|
||||||
// librarymanagement-core to handle the ModuleDescriptor passed
|
|
||||||
// to DependencyResolutionInterface.update, which is an
|
|
||||||
// IvySbt#Module (seems DependencyResolutionInterface.moduleDescriptor is ignored).
|
|
||||||
lmIvy.value,
|
|
||||||
"org.scalatest" %% "scalatest" % "3.2.19" % Test
|
"org.scalatest" %% "scalatest" % "3.2.19" % Test
|
||||||
),
|
),
|
||||||
excludeDependencies ++= coursierExcludedDependencies,
|
excludeDependencies ++= coursierExcludedDependencies,
|
||||||
|
|
@ -1523,6 +1514,13 @@ lazy val lmCoursier = project
|
||||||
},
|
},
|
||||||
Compile / sourceGenerators += dataclassGen(definitions).taskValue,
|
Compile / sourceGenerators += dataclassGen(definitions).taskValue,
|
||||||
)
|
)
|
||||||
|
.dependsOn(
|
||||||
|
// We depend on librarymanagement-ivy rather than just
|
||||||
|
// librarymanagement-core to handle the ModuleDescriptor passed
|
||||||
|
// to DependencyResolutionInterface.update, which is an
|
||||||
|
// IvySbt#Module (seems DependencyResolutionInterface.moduleDescriptor is ignored).
|
||||||
|
lmIvy
|
||||||
|
)
|
||||||
|
|
||||||
lazy val lmCoursierShadedPublishing = project
|
lazy val lmCoursierShadedPublishing = project
|
||||||
.in(file("lm-coursier/target/shaded-publishing-module"))
|
.in(file("lm-coursier/target/shaded-publishing-module"))
|
||||||
|
|
@ -1535,7 +1533,6 @@ lazy val lmCoursierShadedPublishing = project
|
||||||
lazy val lmCoursierShaded = project
|
lazy val lmCoursierShaded = project
|
||||||
.in(file("lm-coursier/target/shaded-module"))
|
.in(file("lm-coursier/target/shaded-module"))
|
||||||
.settings(
|
.settings(
|
||||||
shared,
|
|
||||||
crossScalaVersions := Seq(scala212, scala213, scala3),
|
crossScalaVersions := Seq(scala212, scala213, scala3),
|
||||||
Mima.settings,
|
Mima.settings,
|
||||||
Mima.lmCoursierFilters,
|
Mima.lmCoursierFilters,
|
||||||
|
|
@ -1583,17 +1580,17 @@ lazy val lmCoursierShaded = project
|
||||||
yield ShadeRule.rename(ns + ".**" -> s"lmcoursier.internal.shaded.$ns.@1").inAll
|
yield ShadeRule.rename(ns + ".**" -> s"lmcoursier.internal.shaded.$ns.@1").inAll
|
||||||
},
|
},
|
||||||
libraryDependencies ++= Seq(
|
libraryDependencies ++= Seq(
|
||||||
coursierDep,
|
coursier,
|
||||||
coursierSbtMavenRepoDep,
|
coursierSbtMavenRepo,
|
||||||
"io.get-coursier.jniutils" % "windows-jni-utils-lmcoursier" % jniUtilsVersion,
|
"io.get-coursier.jniutils" % "windows-jni-utils-lmcoursier" % jniUtilsVersion,
|
||||||
"net.hamnaberg" %% "dataclass-annotation" % dataclassScalafixVersion % Provided,
|
"net.hamnaberg" %% "dataclass-annotation" % dataclassScalafixVersion % Provided,
|
||||||
lmIvy.value % Provided,
|
|
||||||
"org.scalatest" %% "scalatest" % "3.2.19" % Test,
|
"org.scalatest" %% "scalatest" % "3.2.19" % Test,
|
||||||
),
|
),
|
||||||
excludeDependencies ++= excludedDependencies,
|
excludeDependencies ++= coursierExcludedDependencies,
|
||||||
conflictWarning := ConflictWarning.disable,
|
conflictWarning := ConflictWarning.disable,
|
||||||
dontPublish,
|
Utils.noPublish,
|
||||||
)
|
)
|
||||||
|
.dependsOn(lmIvy % "provided")
|
||||||
|
|
||||||
lazy val customProtocolForTest212 = project
|
lazy val customProtocolForTest212 = project
|
||||||
.in(file("lm-coursier/custom-protocol-for-test-2-12"))
|
.in(file("lm-coursier/custom-protocol-for-test-2-12"))
|
||||||
|
|
@ -1603,7 +1600,7 @@ lazy val customProtocolForTest212 = project
|
||||||
organization := "org.example",
|
organization := "org.example",
|
||||||
moduleName := "customprotocol-handler",
|
moduleName := "customprotocol-handler",
|
||||||
version := "0.1.0",
|
version := "0.1.0",
|
||||||
dontPublish
|
Utils.noPublish
|
||||||
)
|
)
|
||||||
|
|
||||||
lazy val customProtocolForTest213 = project
|
lazy val customProtocolForTest213 = project
|
||||||
|
|
@ -1614,7 +1611,7 @@ lazy val customProtocolForTest213 = project
|
||||||
organization := "org.example",
|
organization := "org.example",
|
||||||
moduleName := "customprotocol-handler",
|
moduleName := "customprotocol-handler",
|
||||||
version := "0.1.0",
|
version := "0.1.0",
|
||||||
dontPublish
|
Utils.noPublish
|
||||||
)
|
)
|
||||||
|
|
||||||
lazy val customProtocolJavaForTest = project
|
lazy val customProtocolJavaForTest = project
|
||||||
|
|
@ -1624,10 +1621,5 @@ lazy val customProtocolJavaForTest = project
|
||||||
organization := "org.example",
|
organization := "org.example",
|
||||||
moduleName := "customprotocoljava-handler",
|
moduleName := "customprotocoljava-handler",
|
||||||
version := "0.1.0",
|
version := "0.1.0",
|
||||||
dontPublish
|
Utils.noPublish
|
||||||
)
|
)
|
||||||
|
|
||||||
lazy val dontPublish = Seq(
|
|
||||||
publish := {},
|
|
||||||
publish / skip := true,
|
|
||||||
)
|
|
||||||
|
|
|
||||||
|
|
@ -68,9 +68,6 @@ object Dependencies {
|
||||||
def addSbtZinc = addSbtModule(sbtZincPath, "zinc", zinc)
|
def addSbtZinc = addSbtModule(sbtZincPath, "zinc", zinc)
|
||||||
def addSbtZincCompileCore = addSbtModule(sbtZincPath, "zincCompileCore", zincCompileCore)
|
def addSbtZincCompileCore = addSbtModule(sbtZincPath, "zincCompileCore", zincCompileCore)
|
||||||
|
|
||||||
// val lmCoursierShaded = "io.get-coursier" %% "lm-coursier-shaded" % "2.0.10"
|
|
||||||
val lmCoursierShaded = "org.scala-sbt" %% "librarymanagement-coursier" % "2.0.0-alpha8"
|
|
||||||
|
|
||||||
lazy val sjsonNewVersion = "0.14.0-M1"
|
lazy val sjsonNewVersion = "0.14.0-M1"
|
||||||
def sjsonNew(n: String) = Def.setting(
|
def sjsonNew(n: String) = Def.setting(
|
||||||
"com.eed3si9n" %% n % sjsonNewVersion
|
"com.eed3si9n" %% n % sjsonNewVersion
|
||||||
|
|
@ -141,8 +138,30 @@ object Dependencies {
|
||||||
val zeroAllocationHashing = "net.openhft" % "zero-allocation-hashing" % "0.10.1"
|
val zeroAllocationHashing = "net.openhft" % "zero-allocation-hashing" % "0.10.1"
|
||||||
val ivy = "org.scala-sbt.ivy" % "ivy" % "2.3.0-sbt-396a783bba347016e7fe30dacc60d355be607fe2"
|
val ivy = "org.scala-sbt.ivy" % "ivy" % "2.3.0-sbt-396a783bba347016e7fe30dacc60d355be607fe2"
|
||||||
|
|
||||||
|
// lm dependencies
|
||||||
val jsch = "com.github.mwiede" % "jsch" % "0.2.17" intransitive ()
|
val jsch = "com.github.mwiede" % "jsch" % "0.2.17" intransitive ()
|
||||||
val scalaTest = "org.scalatest" %% "scalatest" % "3.2.18"
|
val scalaTest = "org.scalatest" %% "scalatest" % "3.2.18"
|
||||||
val scalaCheck = "org.scalacheck" %% "scalacheck" % "1.15.3"
|
val scalaCheck = "org.scalacheck" %% "scalacheck" % "1.15.3"
|
||||||
val gigahorseApacheHttp = "com.eed3si9n" %% "gigahorse-apache-http" % "0.7.0"
|
val gigahorseApacheHttp = "com.eed3si9n" %% "gigahorse-apache-http" % "0.7.0"
|
||||||
|
|
||||||
|
// lm-coursier dependencies
|
||||||
|
val dataclassScalafixVersion = "0.1.0"
|
||||||
|
val coursierVersion = "2.1.13"
|
||||||
|
|
||||||
|
val coursier = ("io.get-coursier" %% "coursier" % coursierVersion)
|
||||||
|
.cross(CrossVersion.for3Use2_13)
|
||||||
|
.exclude("org.codehaus.plexus", "plexus-archiver")
|
||||||
|
.exclude("org.codehaus.plexus", "plexus-container-default")
|
||||||
|
|
||||||
|
val coursierSbtMavenRepo = ("io.get-coursier" %% "coursier-sbt-maven-repository" % coursierVersion)
|
||||||
|
.cross(CrossVersion.for3Use2_13)
|
||||||
|
|
||||||
|
val coursierExcludedDependencies = Seq(
|
||||||
|
ExclusionRule("org.scala-lang.modules", "scala-xml_2.13"),
|
||||||
|
ExclusionRule("org.scala-lang.modules", "scala-collection-compat_2.13"),
|
||||||
|
)
|
||||||
|
|
||||||
|
// FIXME Ideally, we should depend on the same version of io.get-coursier.jniutils:windows-jni-utils that
|
||||||
|
// io.get-coursier::coursier depends on.
|
||||||
|
val jniUtilsVersion = "0.3.3"
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,105 +0,0 @@
|
||||||
|
|
||||||
import java.util.Locale
|
|
||||||
|
|
||||||
import sbt._
|
|
||||||
import sbt.Keys._
|
|
||||||
import sbt.ScriptedPlugin.autoImport.{scriptedBufferLog, scriptedLaunchOpts}
|
|
||||||
|
|
||||||
import com.jsuereth.sbtpgp._
|
|
||||||
|
|
||||||
object Settings {
|
|
||||||
|
|
||||||
def scala212 = "2.12.20"
|
|
||||||
def scala213 = "2.13.15"
|
|
||||||
def scala3 = "3.3.4"
|
|
||||||
|
|
||||||
def targetSbtVersion = "1.2.8"
|
|
||||||
|
|
||||||
private lazy val isAtLeastScala213 = Def.setting {
|
|
||||||
import Ordering.Implicits._
|
|
||||||
CrossVersion.partialVersion(scalaVersion.value).exists(_ >= (2, 13))
|
|
||||||
}
|
|
||||||
|
|
||||||
lazy val shared = Seq(
|
|
||||||
resolvers ++= Resolver.sonatypeOssRepos("releases"),
|
|
||||||
crossScalaVersions := Seq(scala212),
|
|
||||||
scalaVersion := scala3,
|
|
||||||
scalacOptions ++= Seq(
|
|
||||||
"-feature",
|
|
||||||
"-deprecation",
|
|
||||||
"-language:higherKinds",
|
|
||||||
"-language:implicitConversions"
|
|
||||||
),
|
|
||||||
libraryDependencies ++= {
|
|
||||||
if (isAtLeastScala213.value) Nil
|
|
||||||
else Seq(compilerPlugin("org.scalamacros" % s"paradise" % "2.1.1" cross CrossVersion.full))
|
|
||||||
},
|
|
||||||
scalacOptions ++= {
|
|
||||||
if (isAtLeastScala213.value) Seq("-Ymacro-annotations")
|
|
||||||
else Nil
|
|
||||||
},
|
|
||||||
libraryDependencySchemes ++= {
|
|
||||||
val sv = scalaVersion.value
|
|
||||||
if (sv.startsWith("2.13."))
|
|
||||||
Seq("org.scala-lang.modules" %% "scala-xml" % "always")
|
|
||||||
else
|
|
||||||
Nil
|
|
||||||
}
|
|
||||||
) ++ {
|
|
||||||
val prop = sys.props.getOrElse("publish.javadoc", "").toLowerCase(Locale.ROOT)
|
|
||||||
if (prop == "0" || prop == "false")
|
|
||||||
Seq(
|
|
||||||
Compile / doc / sources := Seq.empty,
|
|
||||||
Compile / packageDoc / publishArtifact := false
|
|
||||||
)
|
|
||||||
else
|
|
||||||
Nil
|
|
||||||
}
|
|
||||||
|
|
||||||
lazy val plugin =
|
|
||||||
shared ++
|
|
||||||
Seq(
|
|
||||||
// https://github.com/sbt/sbt/issues/5049#issuecomment-528960415
|
|
||||||
dependencyOverrides := "org.scala-sbt" % "sbt" % targetSbtVersion :: Nil,
|
|
||||||
scriptedLaunchOpts ++= Seq(
|
|
||||||
"-Xmx1024M",
|
|
||||||
"-Dplugin.name=" + name.value,
|
|
||||||
"-Dplugin.version=" + version.value,
|
|
||||||
"-Dsbttest.base=" + (sourceDirectory.value / "sbt-test").getAbsolutePath,
|
|
||||||
"-Dcoursier.sbt-launcher.add-plugin=false"
|
|
||||||
),
|
|
||||||
scriptedBufferLog := false,
|
|
||||||
sbtPlugin := true,
|
|
||||||
pluginCrossBuild / sbtVersion := targetSbtVersion
|
|
||||||
)
|
|
||||||
|
|
||||||
lazy val generatePropertyFile =
|
|
||||||
Compile / resourceGenerators += Def.task {
|
|
||||||
import sys.process._
|
|
||||||
|
|
||||||
val dir = (Compile / classDirectory).value / "coursier"
|
|
||||||
val ver = version.value
|
|
||||||
|
|
||||||
val f = dir / "sbtcoursier.properties"
|
|
||||||
dir.mkdirs()
|
|
||||||
|
|
||||||
val p = new java.util.Properties
|
|
||||||
|
|
||||||
p.setProperty("version", ver)
|
|
||||||
p.setProperty("commit-hash", Seq("git", "rev-parse", "HEAD").!!.trim)
|
|
||||||
|
|
||||||
val w = new java.io.FileOutputStream(f)
|
|
||||||
p.store(w, "sbt-coursier properties")
|
|
||||||
w.close()
|
|
||||||
|
|
||||||
state.value.log.info(s"Wrote $f")
|
|
||||||
|
|
||||||
Seq(f)
|
|
||||||
}
|
|
||||||
|
|
||||||
lazy val dontPublish = Seq(
|
|
||||||
publish := {},
|
|
||||||
publish / skip := true,
|
|
||||||
)
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
@ -4,7 +4,7 @@ import Keys._
|
||||||
|
|
||||||
import sbt.internal.inc.Analysis
|
import sbt.internal.inc.Analysis
|
||||||
|
|
||||||
object Util {
|
object Utils {
|
||||||
val version2_13 = settingKey[String]("version number")
|
val version2_13 = settingKey[String]("version number")
|
||||||
val ExclusiveTest: Tags.Tag = Tags.Tag("exclusive-test")
|
val ExclusiveTest: Tags.Tag = Tags.Tag("exclusive-test")
|
||||||
|
|
||||||
|
|
@ -12,7 +12,10 @@ object Util {
|
||||||
val scalaKeywords: TaskKey[Set[String]] = taskKey[Set[String]]("")
|
val scalaKeywords: TaskKey[Set[String]] = taskKey[Set[String]]("")
|
||||||
val generateKeywords: TaskKey[File] = taskKey[File]("")
|
val generateKeywords: TaskKey[File] = taskKey[File]("")
|
||||||
|
|
||||||
def noPublishSettings: Seq[Setting[_]] = Seq(publish := {})
|
lazy val noPublish = Seq(
|
||||||
|
publish := {},
|
||||||
|
publish / skip := true,
|
||||||
|
)
|
||||||
|
|
||||||
def crossBuild: Seq[Setting[_]] =
|
def crossBuild: Seq[Setting[_]] =
|
||||||
Seq(
|
Seq(
|
||||||
Loading…
Reference in New Issue