1
1
import java .io .File
2
2
import java .nio .file ._
3
-
4
3
import Process ._
5
4
import Modes ._
6
5
import ScaladocGeneration ._
7
6
import com .jsuereth .sbtpgp .PgpKeys
8
- import sbt .Keys ._
9
- import sbt ._
7
+ import sbt .Keys .*
8
+ import sbt .*
10
9
import complete .DefaultParsers ._
11
10
import pl .project13 .scala .sbt .JmhPlugin
12
11
import pl .project13 .scala .sbt .JmhPlugin .JmhKeys .Jmh
12
+ import com .typesafe .sbt .packager .Keys ._
13
+ import com .typesafe .sbt .packager .MappingsHelper .directory
14
+ import com .typesafe .sbt .packager .universal .UniversalPlugin
15
+ import com .typesafe .sbt .packager .universal .UniversalPlugin .autoImport .Universal
16
+ import com .typesafe .sbt .packager .windows .WindowsPlugin
17
+ import com .typesafe .sbt .packager .windows .WindowsPlugin .autoImport .Windows
13
18
import sbt .Package .ManifestAttributes
14
19
import sbt .PublishBinPlugin .autoImport ._
15
20
import dotty .tools .sbtplugin .RepublishPlugin
16
21
import dotty .tools .sbtplugin .RepublishPlugin .autoImport ._
17
22
import sbt .plugins .SbtPlugin
18
23
import sbt .ScriptedPlugin .autoImport ._
19
- import xerial .sbt .pack .PackPlugin
20
- import xerial .sbt .pack .PackPlugin .autoImport ._
21
24
import xerial .sbt .Sonatype .autoImport ._
22
25
import com .typesafe .tools .mima .plugin .MimaPlugin .autoImport ._
23
26
import org .scalajs .sbtplugin .ScalaJSPlugin
24
27
import org .scalajs .sbtplugin .ScalaJSPlugin .autoImport ._
28
+
25
29
import sbtbuildinfo .BuildInfoPlugin
26
30
import sbtbuildinfo .BuildInfoPlugin .autoImport ._
27
31
import sbttastymima .TastyMiMaPlugin
@@ -88,7 +92,7 @@ object Build {
88
92
89
93
val referenceVersion = " 3.4.2-RC1"
90
94
91
- val baseVersion = " 3.5.1-RC1 "
95
+ val baseVersion = " 3.5.1"
92
96
93
97
// LTS or Next
94
98
val versionLine = " Next"
@@ -2124,25 +2128,27 @@ object Build {
2124
2128
)
2125
2129
2126
2130
lazy val commonDistSettings = Seq (
2127
- packMain := Map (),
2128
2131
publishArtifact := false ,
2129
- packGenerateMakefile := false ,
2130
2132
republishRepo := target.value / " republish" ,
2131
- packResourceDir += (republishRepo.value / " bin" -> " bin" ),
2132
- packResourceDir += (republishRepo.value / " maven2" -> " maven2" ),
2133
- packResourceDir += (republishRepo.value / " etc" -> " etc" ),
2134
- republishCommandLibs +=
2135
- (" scala" -> List (" scala3-interfaces" , " scala3-compiler" , " scala3-library" , " tasty-core" )),
2136
- republishCommandLibs +=
2137
- (" with_compiler" -> List (" scala3-staging" , " scala3-tasty-inspector" , " ^!scala3-interfaces" , " ^!scala3-compiler" , " ^!scala3-library" , " ^!tasty-core" )),
2138
- republishCommandLibs +=
2139
- (" scaladoc" -> List (" scala3-interfaces" , " scala3-compiler" , " scala3-library" , " tasty-core" , " scala3-tasty-inspector" , " scaladoc" )),
2140
- Compile / pack := republishPack.value,
2133
+ Universal / packageName := packageName.value,
2134
+ // ========
2135
+ Universal / stage := (Universal / stage).dependsOn(republish).value,
2136
+ Universal / packageBin := (Universal / packageBin).dependsOn(republish).value,
2137
+ Universal / packageZipTarball := (Universal / packageZipTarball).dependsOn(republish).value,
2138
+ // ========
2139
+ Universal / mappings ++= directory(republishRepo.value / " bin" ),
2140
+ Universal / mappings ++= directory(republishRepo.value / " maven2" ),
2141
+ Universal / mappings ++= directory(republishRepo.value / " etc" ),
2142
+ Universal / mappings += (republishRepo.value / " VERSION" ) -> " VERSION" ,
2143
+ // ========
2144
+ republishCommandLibs += (" scala" -> List (" scala3-interfaces" , " scala3-compiler" , " scala3-library" , " tasty-core" )),
2145
+ republishCommandLibs += (" with_compiler" -> List (" scala3-staging" , " scala3-tasty-inspector" , " ^!scala3-interfaces" , " ^!scala3-compiler" , " ^!scala3-library" , " ^!tasty-core" )),
2146
+ republishCommandLibs += (" scaladoc" -> List (" scala3-interfaces" , " scala3-compiler" , " scala3-library" , " tasty-core" , " scala3-tasty-inspector" , " scaladoc" )),
2141
2147
)
2142
2148
2143
2149
lazy val dist = project.asDist(Bootstrapped )
2150
+ .settings(packageName := " scala3-" + dottyVersion)
2144
2151
.settings(
2145
- packArchiveName := " scala3-" + dottyVersion,
2146
2152
republishBinDir := baseDirectory.value / " bin" ,
2147
2153
republishCoursier +=
2148
2154
(" coursier.jar" -> s " https://github.com/coursier/coursier/releases/download/v $coursierJarVersion/coursier.jar " ),
@@ -2151,51 +2157,63 @@ object Build {
2151
2157
)
2152
2158
2153
2159
lazy val `dist-mac-x86_64` = project.in(file(" dist/mac-x86_64" )).asDist(Bootstrapped )
2160
+ .settings(packageName := (dist / packageName).value + " -x86_64-apple-darwin" )
2154
2161
.settings(
2155
2162
republishBinDir := (dist / republishBinDir).value,
2156
- packArchiveName := (dist / packArchiveName).value + " -x86_64-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-x86_64-apple-darwin.gz " )
2161
2167
)
2162
2168
2163
2169
lazy val `dist-mac-aarch64` = project.in(file(" dist/mac-aarch64" )).asDist(Bootstrapped )
2170
+ .settings(packageName := (dist / packageName).value + " -aarch64-apple-darwin" )
2164
2171
.settings(
2165
2172
republishBinDir := (dist / republishBinDir).value,
2166
- packArchiveName := (dist / packArchiveName).value + " -aarch64-apple-darwin" ,
2167
2173
republishBinOverrides += (dist / baseDirectory).value / " bin-native-overrides" ,
2168
2174
republishFetchCoursier := (dist / republishFetchCoursier).value,
2169
2175
republishLaunchers +=
2170
2176
(" scala-cli" -> s " gz+https://github.com/VirtusLab/scala-cli/releases/download/v $scalaCliLauncherVersion/scala-cli-aarch64-apple-darwin.gz " )
2171
2177
)
2172
2178
2173
2179
lazy val `dist-win-x86_64` = project.in(file(" dist/win-x86_64" )).asDist(Bootstrapped )
2180
+ .enablePlugins(WindowsPlugin ) // TO GENERATE THE `.msi` installer
2181
+ .settings(packageName := (dist / packageName).value + " -x86_64-pc-win32" )
2174
2182
.settings(
2175
2183
republishBinDir := (dist / republishBinDir).value,
2176
- packArchiveName := (dist / packArchiveName).value + " -x86_64-pc-win32" ,
2177
2184
republishBinOverrides += (dist / baseDirectory).value / " bin-native-overrides" ,
2178
2185
republishFetchCoursier := (dist / republishFetchCoursier).value,
2179
2186
republishExtraProps += (" cli_version" -> scalaCliLauncherVersion),
2180
- mappings += (republishRepo.value / " EXTRA_PROPERTIES" -> " EXTRA_PROPERTIES" ),
2181
2187
republishLaunchers +=
2182
2188
(" 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 " )
2183
2189
)
2190
+ .settings(
2191
+ Universal / mappings += (republishRepo.value / " EXTRA_PROPERTIES" -> " EXTRA_PROPERTIES" ),
2192
+ )
2193
+ .settings(
2194
+ Windows / name := " scala" ,
2195
+ Windows / mappings := (Universal / mappings).value,
2196
+ Windows / packageBin := (Windows / packageBin).dependsOn(republish).value,
2197
+ Windows / wixFiles := (Windows / wixFiles).dependsOn(republish).value,
2198
+ maintainer
:= " Hamza Remmal <[email protected] >" ,
2199
+ wixProductId := " 74ED19C3-74FE-4ABA-AF30-55A06B6322A9" ,
2200
+ wixProductUpgradeId := " 3E5A1A82-CA67-4353-94FE-5BDD400AF66B"
2201
+ )
2184
2202
2185
2203
lazy val `dist-linux-x86_64` = project.in(file(" dist/linux-x86_64" )).asDist(Bootstrapped )
2204
+ .settings(packageName := (dist / packageName).value + " -x86_64-pc-linux" )
2186
2205
.settings(
2187
2206
republishBinDir := (dist / republishBinDir).value,
2188
- packArchiveName := (dist / packArchiveName).value + " -x86_64-pc-linux" ,
2189
2207
republishBinOverrides += (dist / baseDirectory).value / " bin-native-overrides" ,
2190
2208
republishFetchCoursier := (dist / republishFetchCoursier).value,
2191
2209
republishLaunchers +=
2192
2210
(" scala-cli" -> s " gz+https://github.com/VirtusLab/scala-cli/releases/download/v $scalaCliLauncherVersion/scala-cli-x86_64-pc-linux.gz " )
2193
2211
)
2194
2212
2195
2213
lazy val `dist-linux-aarch64` = project.in(file(" dist/linux-aarch64" )).asDist(Bootstrapped )
2214
+ .settings(packageName := (dist / packageName).value + " -aarch64-pc-linux" )
2196
2215
.settings(
2197
2216
republishBinDir := (dist / republishBinDir).value,
2198
- packArchiveName := (dist / packArchiveName).value + " -aarch64-pc-linux" ,
2199
2217
republishBinOverrides += (dist / baseDirectory).value / " bin-native-overrides" ,
2200
2218
republishFetchCoursier := (dist / republishFetchCoursier).value,
2201
2219
republishLaunchers +=
@@ -2333,7 +2351,7 @@ object Build {
2333
2351
settings(scala3PresentationCompilerBuildInfo)
2334
2352
2335
2353
def asDist (implicit mode : Mode ): Project = project.
2336
- enablePlugins(PackPlugin , RepublishPlugin ).
2354
+ enablePlugins(UniversalPlugin , RepublishPlugin ).
2337
2355
withCommonSettings.
2338
2356
settings(commonDistSettings).
2339
2357
dependsOn(
@@ -2429,7 +2447,6 @@ object ScaladocConfigs {
2429
2447
}
2430
2448
2431
2449
lazy val DefaultGenerationConfig = Def .task {
2432
- def distLocation = (dist / Compile / pack).value
2433
2450
DefaultGenerationSettings .value
2434
2451
}
2435
2452
0 commit comments