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