@@ -5,9 +5,15 @@ import Process._
5
5
import Modes ._
6
6
import ScaladocGeneration ._
7
7
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 .*
11
17
import pl .project13 .scala .sbt .JmhPlugin
12
18
import pl .project13 .scala .sbt .JmhPlugin .JmhKeys .Jmh
13
19
import sbt .Package .ManifestAttributes
@@ -16,8 +22,6 @@ import dotty.tools.sbtplugin.RepublishPlugin
16
22
import dotty .tools .sbtplugin .RepublishPlugin .autoImport ._
17
23
import sbt .plugins .SbtPlugin
18
24
import sbt .ScriptedPlugin .autoImport ._
19
- import xerial .sbt .pack .PackPlugin
20
- import xerial .sbt .pack .PackPlugin .autoImport ._
21
25
import xerial .sbt .Sonatype .autoImport ._
22
26
import com .typesafe .tools .mima .plugin .MimaPlugin .autoImport ._
23
27
import org .scalajs .sbtplugin .ScalaJSPlugin
@@ -2121,18 +2125,20 @@ object Build {
2121
2125
)
2122
2126
2123
2127
lazy val commonDistSettings = Seq (
2124
- packMain := Map (),
2125
2128
publishArtifact := false ,
2126
- packGenerateMakefile := false ,
2127
2129
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" ),
2131
2137
)
2132
2138
2133
2139
lazy val dist = project.asDist(Bootstrapped )
2140
+ .settings(packageName := " scala3-" + dottyVersion)
2134
2141
.settings(
2135
- packArchiveName := " scala3-" + dottyVersion,
2136
2142
republishBinDir := baseDirectory.value / " bin" ,
2137
2143
republishCoursier +=
2138
2144
(" coursier.jar" -> s " https://github.com/coursier/coursier/releases/download/v $coursierJarVersion/coursier.jar " ),
@@ -2141,51 +2147,62 @@ object Build {
2141
2147
)
2142
2148
2143
2149
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" )
2144
2151
.settings(
2145
2152
republishBinDir := (dist / republishBinDir).value,
2146
- packArchiveName := (dist / packArchiveName).value + " -x86_64-apple-darwin" ,
2147
2153
republishBinOverrides += (dist / baseDirectory).value / " bin-native-overrides" ,
2148
2154
republishFetchCoursier := (dist / republishFetchCoursier).value,
2149
2155
republishLaunchers +=
2150
2156
(" scala-cli" -> s " gz+https://github.com/VirtusLab/scala-cli/releases/download/v $scalaCliLauncherVersion/scala-cli-x86_64-apple-darwin.gz " )
2151
2157
)
2152
2158
2153
2159
lazy val `dist-mac-aarch64` = project.in(file(" dist/mac-aarch64" )).asDist(Bootstrapped )
2160
+ .settings(packageName := (dist / packageName).value + " -aarch64-apple-darwin" )
2154
2161
.settings(
2155
2162
republishBinDir := (dist / republishBinDir).value,
2156
- packArchiveName := (dist / packArchiveName).value + " -aarch64-apple-darwin" ,
2157
2163
republishBinOverrides += (dist / baseDirectory).value / " bin-native-overrides" ,
2158
2164
republishFetchCoursier := (dist / republishFetchCoursier).value,
2159
2165
republishLaunchers +=
2160
2166
(" scala-cli" -> s " gz+https://github.com/VirtusLab/scala-cli/releases/download/v $scalaCliLauncherVersion/scala-cli-aarch64-apple-darwin.gz " )
2161
2167
)
2162
2168
2163
2169
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" )
2164
2172
.settings(
2165
2173
republishBinDir := (dist / republishBinDir).value,
2166
- packArchiveName := (dist / packArchiveName).value + " -x86_64-pc-win32" ,
2167
2174
republishBinOverrides += (dist / baseDirectory).value / " bin-native-overrides" ,
2168
2175
republishFetchCoursier := (dist / republishFetchCoursier).value,
2169
2176
republishExtraProps += (" cli_version" -> scalaCliLauncherVersion),
2170
- mappings += (republishRepo.value / " etc" / " EXTRA_PROPERTIES" -> " EXTRA_PROPERTIES" ),
2171
2177
republishLaunchers +=
2172
2178
(" 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 " )
2173
2179
)
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
+ )
2174
2191
2175
2192
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" )
2176
2194
.settings(
2177
2195
republishBinDir := (dist / republishBinDir).value,
2178
- packArchiveName := (dist / packArchiveName).value + " -x86_64-pc-linux" ,
2179
2196
republishBinOverrides += (dist / baseDirectory).value / " bin-native-overrides" ,
2180
2197
republishFetchCoursier := (dist / republishFetchCoursier).value,
2181
2198
republishLaunchers +=
2182
2199
(" scala-cli" -> s " gz+https://github.com/VirtusLab/scala-cli/releases/download/v $scalaCliLauncherVersion/scala-cli-x86_64-pc-linux.gz " )
2183
2200
)
2184
2201
2185
2202
lazy val `dist-linux-aarch64` = project.in(file(" dist/linux-aarch64" )).asDist(Bootstrapped )
2203
+ .settings(packageName := (dist / packageName).value + " -aarch64-pc-linux" )
2186
2204
.settings(
2187
2205
republishBinDir := (dist / republishBinDir).value,
2188
- packArchiveName := (dist / packArchiveName).value + " -aarch64-pc-linux" ,
2189
2206
republishBinOverrides += (dist / baseDirectory).value / " bin-native-overrides" ,
2190
2207
republishFetchCoursier := (dist / republishFetchCoursier).value,
2191
2208
republishLaunchers +=
@@ -2323,7 +2340,7 @@ object Build {
2323
2340
settings(scala3PresentationCompilerBuildInfo)
2324
2341
2325
2342
def asDist (implicit mode : Mode ): Project = project.
2326
- enablePlugins(PackPlugin , RepublishPlugin ).
2343
+ enablePlugins(UniversalPlugin , RepublishPlugin ).
2327
2344
withCommonSettings.
2328
2345
settings(commonDistSettings).
2329
2346
dependsOn(
@@ -2419,7 +2436,6 @@ object ScaladocConfigs {
2419
2436
}
2420
2437
2421
2438
lazy val DefaultGenerationConfig = Def .task {
2422
- def distLocation = (dist / Compile / pack).value
2423
2439
DefaultGenerationSettings .value
2424
2440
}
2425
2441
0 commit comments