Skip to content

Commit ae7a49c

Browse files
committed
Use sbt-native-packager instead of sbt-pack
1 parent e2dfea3 commit ae7a49c

File tree

3 files changed

+45
-32
lines changed

3 files changed

+45
-32
lines changed

Diff for: project/Build.scala

+35-19
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,15 @@ import Process._
55
import Modes._
66
import ScaladocGeneration._
77
import com.jsuereth.sbtpgp.PgpKeys
8-
import sbt.Keys._
9-
import sbt._
10-
import complete.DefaultParsers._
8+
import com.typesafe.sbt.packager.Keys._
9+
import com.typesafe.sbt.packager.MappingsHelper.directory
10+
import com.typesafe.sbt.packager.universal.UniversalPlugin
11+
import com.typesafe.sbt.packager.universal.UniversalPlugin.autoImport.Universal
12+
import com.typesafe.sbt.packager.windows.WindowsPlugin
13+
import com.typesafe.sbt.packager.windows.WindowsPlugin.autoImport.Windows
14+
import sbt.Keys.*
15+
import sbt.*
16+
import complete.DefaultParsers.*
1117
import pl.project13.scala.sbt.JmhPlugin
1218
import pl.project13.scala.sbt.JmhPlugin.JmhKeys.Jmh
1319
import sbt.Package.ManifestAttributes
@@ -16,8 +22,6 @@ import dotty.tools.sbtplugin.RepublishPlugin
1622
import dotty.tools.sbtplugin.RepublishPlugin.autoImport._
1723
import sbt.plugins.SbtPlugin
1824
import sbt.ScriptedPlugin.autoImport._
19-
import xerial.sbt.pack.PackPlugin
20-
import xerial.sbt.pack.PackPlugin.autoImport._
2125
import xerial.sbt.Sonatype.autoImport._
2226
import com.typesafe.tools.mima.plugin.MimaPlugin.autoImport._
2327
import org.scalajs.sbtplugin.ScalaJSPlugin
@@ -2121,18 +2125,20 @@ object Build {
21212125
)
21222126

21232127
lazy val commonDistSettings = Seq(
2124-
packMain := Map(),
21252128
publishArtifact := false,
2126-
packGenerateMakefile := false,
21272129
republishRepo := target.value / "republish",
2128-
packResourceDir += (republishRepo.value / "bin" -> "bin"),
2129-
packResourceDir += (republishRepo.value / "maven2" -> "maven2"),
2130-
Compile / pack := (Compile / pack).dependsOn(republish).value,
2130+
Universal / packageName := packageName.value,
2131+
Universal / stage := (Universal / stage).dependsOn(republish).value,
2132+
Universal / packageBin := (Universal / packageBin).dependsOn(republish).value,
2133+
// ========
2134+
Universal / mappings ++= directory(republishRepo.value / "bin"),
2135+
Universal / mappings ++= (Compile / dependencyClasspathAsJars).value.map(jar => jar.data -> s"lib/${jar.data.getName}"),
2136+
Universal / mappings ++= directory(republishRepo.value / "maven2"),
21312137
)
21322138

21332139
lazy val dist = project.asDist(Bootstrapped)
2140+
.settings(packageName := "scala3-" + dottyVersion)
21342141
.settings(
2135-
packArchiveName := "scala3-" + dottyVersion,
21362142
republishBinDir := baseDirectory.value / "bin",
21372143
republishCoursier +=
21382144
("coursier.jar" -> s"https://github.com/coursier/coursier/releases/download/v$coursierJarVersion/coursier.jar"),
@@ -2141,51 +2147,62 @@ object Build {
21412147
)
21422148

21432149
lazy val `dist-mac-x86_64` = project.in(file("dist/mac-x86_64")).asDist(Bootstrapped)
2150+
.settings(packageName := (dist / packageName).value + "-x86_64-apple-darwin")
21442151
.settings(
21452152
republishBinDir := (dist / republishBinDir).value,
2146-
packArchiveName := (dist / packArchiveName).value + "-x86_64-apple-darwin",
21472153
republishBinOverrides += (dist / baseDirectory).value / "bin-native-overrides",
21482154
republishFetchCoursier := (dist / republishFetchCoursier).value,
21492155
republishLaunchers +=
21502156
("scala-cli" -> s"gz+https://github.com/VirtusLab/scala-cli/releases/download/v$scalaCliLauncherVersion/scala-cli-x86_64-apple-darwin.gz")
21512157
)
21522158

21532159
lazy val `dist-mac-aarch64` = project.in(file("dist/mac-aarch64")).asDist(Bootstrapped)
2160+
.settings(packageName := (dist / packageName).value + "-aarch64-apple-darwin")
21542161
.settings(
21552162
republishBinDir := (dist / republishBinDir).value,
2156-
packArchiveName := (dist / packArchiveName).value + "-aarch64-apple-darwin",
21572163
republishBinOverrides += (dist / baseDirectory).value / "bin-native-overrides",
21582164
republishFetchCoursier := (dist / republishFetchCoursier).value,
21592165
republishLaunchers +=
21602166
("scala-cli" -> s"gz+https://github.com/VirtusLab/scala-cli/releases/download/v$scalaCliLauncherVersion/scala-cli-aarch64-apple-darwin.gz")
21612167
)
21622168

21632169
lazy val `dist-win-x86_64` = project.in(file("dist/win-x86_64")).asDist(Bootstrapped)
2170+
.enablePlugins(WindowsPlugin) // TO GENERATE THE `.msi` installer
2171+
.settings(packageName := (dist / packageName).value + "-x86_64-pc-win32")
21642172
.settings(
21652173
republishBinDir := (dist / republishBinDir).value,
2166-
packArchiveName := (dist / packArchiveName).value + "-x86_64-pc-win32",
21672174
republishBinOverrides += (dist / baseDirectory).value / "bin-native-overrides",
21682175
republishFetchCoursier := (dist / republishFetchCoursier).value,
21692176
republishExtraProps += ("cli_version" -> scalaCliLauncherVersion),
2170-
mappings += (republishRepo.value / "etc" / "EXTRA_PROPERTIES" -> "EXTRA_PROPERTIES"),
21712177
republishLaunchers +=
21722178
("scala-cli.exe" -> s"zip+https://github.com/VirtusLab/scala-cli/releases/download/v$scalaCliLauncherVersionWindows/scala-cli-x86_64-pc-win32.zip!/scala-cli.exe")
21732179
)
2180+
.settings(
2181+
Universal / mappings += (republishRepo.value / "etc" / "EXTRA_PROPERTIES" -> "EXTRA_PROPERTIES"),
2182+
)
2183+
.settings(
2184+
Windows / mappings := (Universal / mappings).value,
2185+
maintainer := "Josh Suereth <[email protected]>",
2186+
packageSummary := "test-windows",
2187+
packageDescription := """Test Windows MSI.""",
2188+
wixProductId := "ce07be71-510d-414a-92d4-dff47631848a",
2189+
wixProductUpgradeId := "4552fb0e-e257-4dbd-9ecb-dba9dbacf424"
2190+
)
21742191

21752192
lazy val `dist-linux-x86_64` = project.in(file("dist/linux-x86_64")).asDist(Bootstrapped)
2193+
.settings(packageName := (dist / packageName).value + "-x86_64-pc-linux")
21762194
.settings(
21772195
republishBinDir := (dist / republishBinDir).value,
2178-
packArchiveName := (dist / packArchiveName).value + "-x86_64-pc-linux",
21792196
republishBinOverrides += (dist / baseDirectory).value / "bin-native-overrides",
21802197
republishFetchCoursier := (dist / republishFetchCoursier).value,
21812198
republishLaunchers +=
21822199
("scala-cli" -> s"gz+https://github.com/VirtusLab/scala-cli/releases/download/v$scalaCliLauncherVersion/scala-cli-x86_64-pc-linux.gz")
21832200
)
21842201

21852202
lazy val `dist-linux-aarch64` = project.in(file("dist/linux-aarch64")).asDist(Bootstrapped)
2203+
.settings(packageName := (dist / packageName).value + "-aarch64-pc-linux")
21862204
.settings(
21872205
republishBinDir := (dist / republishBinDir).value,
2188-
packArchiveName := (dist / packArchiveName).value + "-aarch64-pc-linux",
21892206
republishBinOverrides += (dist / baseDirectory).value / "bin-native-overrides",
21902207
republishFetchCoursier := (dist / republishFetchCoursier).value,
21912208
republishLaunchers +=
@@ -2323,7 +2340,7 @@ object Build {
23232340
settings(scala3PresentationCompilerBuildInfo)
23242341

23252342
def asDist(implicit mode: Mode): Project = project.
2326-
enablePlugins(PackPlugin, RepublishPlugin).
2343+
enablePlugins(UniversalPlugin, RepublishPlugin).
23272344
withCommonSettings.
23282345
settings(commonDistSettings).
23292346
dependsOn(
@@ -2419,7 +2436,6 @@ object ScaladocConfigs {
24192436
}
24202437

24212438
lazy val DefaultGenerationConfig = Def.task {
2422-
def distLocation = (dist / Compile / pack).value
24232439
DefaultGenerationSettings.value
24242440
}
24252441

Diff for: project/RepublishPlugin.scala

+8-11
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,18 @@
11
package dotty.tools.sbtplugin
22

3-
import sbt._
4-
import xerial.sbt.pack.PackPlugin
5-
import sbt.Keys._
3+
import com.typesafe.sbt.packager.universal.UniversalPlugin
4+
import sbt.*
5+
import sbt.Keys.*
66
import sbt.AutoPlugin
77
import sbt.PublishBinPlugin
8-
import sbt.PublishBinPlugin.autoImport._
8+
import sbt.PublishBinPlugin.autoImport.*
99
import sbt.io.Using
10-
import sbt.util.CacheImplicits._
10+
import sbt.util.CacheImplicits.*
1111

12-
import scala.collection.mutable
1312
import java.nio.file.Files
14-
1513
import java.nio.file.attribute.PosixFilePermission
16-
import java.nio.file.{Files, Path}
17-
18-
import scala.jdk.CollectionConverters._
14+
import java.nio.file.Path
15+
import scala.jdk.CollectionConverters.*
1916

2017
/** This local plugin provides ways of publishing a project classpath and library dependencies to
2118
* .a local repository */
@@ -52,7 +49,7 @@ object RepublishPlugin extends AutoPlugin {
5249
}
5350

5451
override def trigger = allRequirements
55-
override def requires = super.requires && PublishBinPlugin && PackPlugin
52+
override def requires = super.requires && PublishBinPlugin && UniversalPlugin
5653

5754
object autoImport {
5855
val republishProjectRefs = taskKey[Seq[ProjectRef]]("fetch the classpath deps from the project.")

Diff for: project/plugins.sbt

+2-2
Original file line numberDiff line numberDiff line change
@@ -12,12 +12,12 @@ addSbtPlugin("org.xerial.sbt" % "sbt-sonatype" % "3.9.21")
1212

1313
addSbtPlugin("com.github.sbt" % "sbt-pgp" % "2.2.1")
1414

15-
addSbtPlugin("org.xerial.sbt" % "sbt-pack" % "0.17")
16-
1715
addSbtPlugin("pl.project13.scala" % "sbt-jmh" % "0.4.5")
1816

1917
addSbtPlugin("com.eed3si9n" % "sbt-buildinfo" % "0.11.0")
2018

2119
addSbtPlugin("com.typesafe" % "sbt-mima-plugin" % "1.1.2")
2220

2321
addSbtPlugin("ch.epfl.scala" % "sbt-tasty-mima" % "1.0.0")
22+
23+
addSbtPlugin("com.typesafe.sbt" % "sbt-native-packager" % "1.7.6")

0 commit comments

Comments
 (0)