@@ -19,60 +19,31 @@ lazy val core = (project in file("./core"))
19
19
libraryDependencies ++= Dependencies .core.value
20
20
)
21
21
22
- lazy val nodejs_v14 = (project in file(" ./app/nodejs-v14" ))
23
- .enablePlugins(ScalaJSPlugin )
24
- .settings(MySettings .commonSettings)
25
- .settings(MySettings .commonScalaJsSettings)
26
- .settings(MySettings .commonMacroParadiseSetting)
27
- .settings(MySettings .publishingSettings)
28
- .settings(
29
- scalacOptions ++= Seq (
30
- " -Xmacro-settings:nodeJs14.3.0"
31
- ),
32
- name := " scala-js-nodejs-v14" ,
33
- description := " NodeJS v14 API for Scala.js" ,
34
- libraryDependencies ++= Dependencies .app.value
35
- )
36
- .dependsOn(core)
22
+ lazy val nodejs_v14 = createNodeVersionSpecificProject(" 14.3.0" )
23
+ lazy val nodejs_v12 = createNodeVersionSpecificProject(" 12.16.3" )
24
+ lazy val nodejs_v10 = createNodeVersionSpecificProject(" 10.20.1" )
37
25
38
- lazy val nodejs_v12 = (project in file(" ./app/nodejs-v12" ))
39
- .enablePlugins(ScalaJSPlugin )
40
- .settings(MySettings .commonSettings)
41
- .settings(MySettings .commonScalaJsSettings)
42
- .settings(MySettings .commonMacroParadiseSetting)
43
- .settings(MySettings .publishingSettings)
44
- .settings(
45
- unmanagedSourceDirectories in Compile ++= {
46
- val symlinkDir = baseDirectory.value / " src" / " main"
47
- val hasSymlink = symlinkDir.exists && symlinkDir.isDirectory
48
- Seq ((baseDirectory in nodejs_v14).value / " src" / " main" / " scala" ).filter(_ => ! hasSymlink)
49
- },
50
- scalacOptions ++= Seq (
51
- " -Xmacro-settings:nodeJs12.16.3"
52
- ),
53
- name := " scala-js-nodejs-v12" ,
54
- description := " NodeJS v12 API for Scala.js" ,
55
- libraryDependencies ++= Dependencies .app.value
56
- )
57
- .dependsOn(core)
58
-
59
- lazy val nodejs_v10 = (project in file(" ./app/nodejs-v10" ))
60
- .enablePlugins(ScalaJSPlugin )
61
- .settings(MySettings .commonSettings)
62
- .settings(MySettings .commonScalaJsSettings)
63
- .settings(MySettings .commonMacroParadiseSetting)
64
- .settings(MySettings .publishingSettings)
65
- .settings(
66
- unmanagedSourceDirectories in Compile ++= {
67
- val symlinkDir = baseDirectory.value / " src" / " main"
68
- val hasSymlink = symlinkDir.exists && symlinkDir.isDirectory
69
- Seq ((baseDirectory in nodejs_v14).value / " src" / " main" / " scala" ).filter(_ => ! hasSymlink)
70
- },
71
- scalacOptions ++= Seq (
72
- " -Xmacro-settings:nodeJs10.20.1"
73
- ),
74
- name := " scala-js-nodejs-v10" ,
75
- description := " NodeJS v10 API for Scala.js" ,
76
- libraryDependencies ++= Dependencies .app.value
77
- )
78
- .dependsOn(core)
26
+ def createNodeVersionSpecificProject (nodeFullVersion : String ) = {
27
+ val majorVersion = nodeFullVersion.split(" \\ ." )(0 )
28
+ sbt
29
+ .Project (id = s " nodejs_v ${majorVersion}" , base = file(s " ./app/nodejs-v ${majorVersion}" ))
30
+ .enablePlugins(ScalaJSPlugin )
31
+ .settings(MySettings .commonSettings)
32
+ .settings(MySettings .commonScalaJsSettings)
33
+ .settings(MySettings .commonMacroParadiseSetting)
34
+ .settings(MySettings .publishingSettings)
35
+ .settings(
36
+ unmanagedSourceDirectories in Compile ++= {
37
+ val symlinkDir = baseDirectory.value / " src" / " main"
38
+ val hasSymlink = symlinkDir.exists && symlinkDir.isDirectory
39
+ Seq (file(" app" ) / " nodejs-v14" / " src" / " main" / " scala" ).filter(_ => majorVersion != " 14" && ! hasSymlink)
40
+ },
41
+ scalacOptions ++= Seq (
42
+ s " -Xmacro-settings:nodeJs ${nodeFullVersion}"
43
+ ),
44
+ name := s " scala-js-nodejs-v ${majorVersion}" ,
45
+ description := s " NodeJS v ${majorVersion} API for Scala.js " ,
46
+ libraryDependencies ++= Dependencies .app.value
47
+ )
48
+ .dependsOn(core)
49
+ }
0 commit comments