@@ -6,26 +6,40 @@ lazy val root = project
6
6
.in(file(" ." ))
7
7
.settings(dontPublish)
8
8
.aggregate(
9
- compatJVM, compatJS,
10
- scalafixRules, scalafixInput, scalafixTests,
11
- scalafixOutput212, scalafixOutput213
9
+ compat211JVM,
10
+ compat211JS,
11
+ compat212JVM,
12
+ compat212JS,
13
+ compat213JVM,
14
+ compat213JS,
15
+ `scalafix-data211`,
16
+ `scalafix-data212`,
17
+ `scalafix-data213`,
18
+ `scalafix-input`,
19
+ `scalafix-output211`,
20
+ `scalafix-output212`,
21
+ `scalafix-output213`,
22
+ // `scalafix-output213-failure`,
23
+ `scalafix-rules`,
24
+ `scalafix-tests`
12
25
)
13
26
.disablePlugins(ScalafixPlugin )
14
27
15
28
// == Core Libraries ==
16
29
17
- lazy val compat = crossProject(JSPlatform , JVMPlatform )
18
- .withoutSuffixFor(JVMPlatform )
19
- .crossType(CrossType .Pure )
20
- .in(file(" compat" ))
21
- .settings(scalaModuleSettings)
30
+ lazy val scala211 = " 2.11.12"
31
+ lazy val scala212 = " 2.12.6"
32
+ lazy val scala213 = " 2.13.0-M4"
33
+
34
+ lazy val compat = MultiScalaCrossProject (JSPlatform , JVMPlatform )(" compat" ,
35
+ _.settings(scalaModuleSettings)
22
36
.jvmSettings(scalaModuleSettingsJVM)
23
37
.settings(
24
38
name := " scala-collection-compat" ,
25
39
version := " 0.2.0-SNAPSHOT" ,
26
40
scalacOptions ++= Seq (" -feature" , " -language:higherKinds" , " -language:implicitConversions" ),
27
41
unmanagedSourceDirectories in Compile += {
28
- val sharedSourceDir = baseDirectory.value.getParentFile / " src/main"
42
+ val sharedSourceDir = ( baseDirectory in ThisBuild ) .value / " compat/ src/main"
29
43
if (scalaVersion.value.startsWith(" 2.13." )) sharedSourceDir / " scala-2.13"
30
44
else sharedSourceDir / " scala-2.11_2.12"
31
45
}
@@ -61,15 +75,24 @@ lazy val compat = crossProject(JSPlatform, JVMPlatform)
61
75
)
62
76
.jsConfigure(_.enablePlugins(ScalaJSJUnitPlugin ))
63
77
.disablePlugins(ScalafixPlugin )
78
+ )
79
+
80
+ val compat211 = compat(scala211)
81
+ val compat212 = compat(scala212)
82
+ val compat213 = compat(scala213)
64
83
65
- lazy val compatJVM = compat.jvm
66
- lazy val compatJS = compat.js
84
+ lazy val compat211JVM = compat211.jvm
85
+ lazy val compat211JS = compat211.js
86
+ lazy val compat212JVM = compat212.jvm
87
+ lazy val compat212JS = compat212.js
88
+ lazy val compat213JVM = compat213.jvm
89
+ lazy val compat213JS = compat213.js
67
90
68
- lazy val scalafixRules = project
91
+ lazy val `scalafix-rules` = project
69
92
.in(file(" scalafix/rules" ))
70
93
.settings(
71
- organization := (organization in compatJVM ).value,
72
- version := (version in compatJVM ).value,
94
+ organization := (organization in compat212JVM ).value,
95
+ version := (version in compat212JVM ).value,
73
96
name := " scala-collection-migrations" ,
74
97
scalaVersion := scalafixScala212,
75
98
libraryDependencies += " ch.epfl.scala" %% " scalafix-core" % scalafixVersion
@@ -88,43 +111,49 @@ lazy val sharedScalafixSettings = Seq(
88
111
)
89
112
90
113
// common part between input/output
91
- lazy val scalafixData = project
92
- .in(file(" scalafix/data" ))
93
- .settings(sharedScalafixSettings)
94
- .settings(dontPublish)
95
- .settings(scalaVersion := scalafixScala212)
96
- .dependsOn(compatJVM)
114
+ lazy val `scalafix-data` = MultiScalaProject (" scalafix-data" , " scalafix/data" ,
115
+ _.settings(sharedScalafixSettings)
116
+ .settings(dontPublish)
117
+ )
118
+
119
+ val `scalafix-data211` = `scalafix-data`(scala211, _.dependsOn(compat211JVM))
120
+ val `scalafix-data212` = `scalafix-data`(scalafixScala212, _.dependsOn(compat212JVM))
121
+ val `scalafix-data213` = `scalafix-data`(scala213, _.dependsOn(compat213JVM))
97
122
98
- lazy val scalafixInput = project
123
+ lazy val `scalafix-input` = project
99
124
.in(file(" scalafix/input" ))
100
125
.settings(sharedScalafixSettings)
101
126
.settings(dontPublish)
102
127
.settings(
103
128
scalaVersion := scalafixScala212,
104
129
scalafixSourceroot := sourceDirectory.in(Compile ).value
105
130
)
106
- .dependsOn(compatJVM, scalafixData )
131
+ .dependsOn(`scalafix-data212` )
107
132
108
- lazy val scalafixOutput212 = project
109
- .in(file(" scalafix/output212" ))
110
- .settings(sharedScalafixSettings)
111
- .settings(scalaVersion := scalafixScala212)
112
- .settings(dontPublish)
113
- .dependsOn(compatJVM, scalafixData)
114
133
115
- lazy val scalafixOutput213 = project
116
- .in(file(" scalafix/output213" ))
117
- .settings(sharedScalafixSettings)
118
- .settings(scala213Settings)
119
- .settings(dontPublish)
134
+ val `scalafix-output` = MultiScalaProject (" scalafix-output" , " scalafix/output" ,
135
+ _.settings(sharedScalafixSettings)
136
+ .settings(dontPublish)
137
+ .disablePlugins(ScalafixPlugin )
138
+ )
139
+
140
+ lazy val output212 = Def .setting((baseDirectory in ThisBuild ).value / " scalafix/output212/src/main" )
141
+ lazy val addOutput212 = unmanagedSourceDirectories in Compile += output212.value / " scala"
120
142
121
- lazy val scalafixOutput213Failure = project
143
+ lazy val output213 = Def .setting((baseDirectory in ThisBuild ).value / " scalafix/output213/src/main" )
144
+ lazy val addOutput213 = unmanagedSourceDirectories in Compile += output213.value / " scala"
145
+
146
+ lazy val `scalafix-output211` = `scalafix-output`(scala211, _.dependsOn(`scalafix-data211`))
147
+ lazy val `scalafix-output212` = `scalafix-output`(scala212, _.settings(addOutput212).dependsOn(`scalafix-data212`))
148
+ lazy val `scalafix-output213` = `scalafix-output`(scala213, _.settings(addOutput213).dependsOn(`scalafix-data213`))
149
+
150
+ lazy val `scalafix-output213-failure` = project
122
151
.in(file(" scalafix/output213-failure" ))
123
152
.settings(sharedScalafixSettings)
124
153
.settings(scala213Settings)
125
154
.settings(dontPublish)
126
155
127
- lazy val scalafixTests = project
156
+ lazy val `scalafix-tests` = project
128
157
.in(file(" scalafix/tests" ))
129
158
.settings(sharedScalafixSettings)
130
159
.settings(dontPublish)
@@ -134,22 +163,23 @@ lazy val scalafixTests = project
134
163
buildInfoPackage := " fix" ,
135
164
buildInfoKeys := Seq [BuildInfoKey ](
136
165
" inputSourceroot" ->
137
- sourceDirectory.in(scalafixInput , Compile ).value,
138
- " output212Sourceroot " ->
139
- sourceDirectory.in(scalafixOutput212, Compile ).value,
140
- " output213Sourceroot " ->
141
- sourceDirectory.in(scalafixOutput213, Compile ) .value,
166
+ sourceDirectory.in(`scalafix-input` , Compile ).value,
167
+ " outputSourceroot " ->
168
+ (baseDirectory in ThisBuild ).value / " scalafix/output/src/main " ,
169
+ " output212Sourceroot " -> output212.value,
170
+ " output213Sourceroot " -> output213 .value,
142
171
" output213FailureSourceroot" ->
143
- sourceDirectory.in(scalafixOutput213Failure , Compile ).value,
172
+ sourceDirectory.in(`scalafix-output213-failure` , Compile ).value,
144
173
" inputClassdirectory" ->
145
- classDirectory.in(scalafixInput , Compile ).value
174
+ classDirectory.in(`scalafix-input` , Compile ).value
146
175
),
147
176
test in Test := (test in Test ).dependsOn(
148
- compile in (scalafixOutput212, Compile ),
149
- compile in (scalafixOutput213, Compile )
177
+ compile in (`scalafix-output211`, Compile ),
178
+ compile in (`scalafix-output212`, Compile ),
179
+ compile in (`scalafix-output213`, Compile )
150
180
).value
151
181
)
152
- .dependsOn(scalafixInput, scalafixRules )
182
+ .dependsOn(`scalafix-input`, `scalafix-rules` )
153
183
.enablePlugins(BuildInfoPlugin )
154
184
155
185
lazy val dontPublish = Seq (
@@ -159,17 +189,14 @@ lazy val dontPublish = Seq(
159
189
publishLocal := {}
160
190
)
161
191
162
- lazy val scala212 = " 2.12.6"
163
- lazy val scala213 = " 2.13.0-M4"
164
-
165
192
lazy val scala213Settings = Seq (
166
193
resolvers += " scala-pr" at " https://scala-ci.typesafe.com/artifactory/scala-integration/" ,
167
194
scalaVersion := scala213
168
195
)
169
196
170
197
// required by sbt-scala-module
171
198
inThisBuild(Seq (
172
- crossScalaVersions := Seq (scala212, scala213, " 2.11.12 " ),
199
+ crossScalaVersions := Seq (scala211, scala212, scala213 ),
173
200
commands += Command .command(" noop" ) { state =>
174
201
println(" noop" )
175
202
state
0 commit comments