@@ -58,159 +58,20 @@ lazy val adapter = (
58
58
dependsOnRemote(zincIf211:_* )
59
59
settings(sourceGenerators in Compile += task {
60
60
val dir = (sourceManaged in Compile ).value
61
- val fileName = " Adapter .scala"
61
+ val fileName = " Default .scala"
62
62
val file = dir / fileName
63
63
val sv = scalaVersion.value
64
64
val v = sbtVersion.value
65
65
if (! dir.isDirectory) dir.mkdirs()
66
66
IO .write(file, (
67
- if (v.startsWith(" 1.0" )) """
68
- package sbt.dbuild.hack {
69
- object DbuildHack {
70
- val Load = sbt.internal.Load
71
- val applyCross: (String, Option[String => String]) => String =
72
- sbt.librarymanagement.CrossVersion.applyCross
73
- val defaultID: (java.io.File,String) => String =
74
- sbt.internal.BuildDef.defaultID
75
- }
76
- }
77
- package com.typesafe.dbuild.adapter {
78
- import java.io.File
79
-
80
- object LoggingInterface {
81
- val Level = sbt.util.Level
82
- type Logger = sbt.util.Logger
83
- type LogEvent = sbt.util.LogEvent
84
- val ControlEvent = sbt.util.ControlEvent
85
- val StackTrace = sbt.internal.util.StackTrace
86
- type BasicLogger = sbt.internal.util.BasicLogger
87
- }
88
-
89
- trait StreamLoggerAdapter
90
-
91
- object Adapter {
92
- val IO = sbt.io.IO
93
- val Path = sbt.io.Path
94
- type RichFile = sbt.io.RichFile
95
- type FileFilter = sbt.io.FileFilter
96
- def toFF = sbt.io.FileFilter.globFilter _
97
- val DirectoryFilter = sbt.io.DirectoryFilter
98
- type ExactFilter = sbt.io.ExactFilter
99
- type NameFilter = sbt.io.NameFilter
100
- type FileRepository = sbt.librarymanagement.FileRepository
101
- type Logger = sbt.util.Logger
102
- def allPaths(f:File) = sbt.io.PathFinder(f).allPaths
103
- val syntaxio = sbt.io.syntax
104
- val syntax = sbt.syntax
105
- type ModuleID = sbt.librarymanagement.ModuleID
106
- type Artifact = sbt.librarymanagement.Artifact
107
- type ProjectResolver = sbt.internal.librarymanagement.ProjectResolver
108
- type ScalaInstance = sbt.internal.inc.ScalaInstance
109
- val ScalaInstance = sbt.internal.inc.ScalaInstance
110
- val Load = sbt.dbuild.hack.DbuildHack.Load
111
- val applyCross = sbt.dbuild.hack.DbuildHack.applyCross
112
- def defaultID(base: File, prefix: String = "default") =
113
- sbt.dbuild.hack.DbuildHack.defaultID(base, prefix)
114
-
115
- // these bits are inappropriately copied from zinc v1.0.0-X1, where they
116
- // are private now, and exactly from:
117
- // internal/zinc-classpath/src/main/scala/sbt/internal/inc/ScalaInstance.scala
118
- private val VersionPrefix = "version "
119
- private def fastActualVersion(scalaLoader: ClassLoader): String =
120
- {
121
- val stream = scalaLoader.getResourceAsStream("compiler.properties")
122
- try {
123
- val props = new java.util.Properties
124
- props.load(stream)
125
- props.getProperty("version.number")
126
- } finally stream.close()
127
- }
128
- import java.net.{ URL, URLClassLoader }
129
- private def scalaLoader(launcher: xsbti.Launcher): Seq[File] => ClassLoader = jars =>
130
- new URLClassLoader(jars.map(_.toURI.toURL).toArray[URL], launcher.topLoader)
131
- private def actualVersion(scalaLoader: ClassLoader)(label: String) =
132
- try fastActualVersion(scalaLoader)
133
- catch { case e: Exception => slowActualVersion(scalaLoader)(label) }
134
- private def slowActualVersion(scalaLoader: ClassLoader)(label: String) =
135
- {
136
- val v = try { Class.forName("scala.tools.nsc.Properties", true, scalaLoader).getMethod("versionString").invoke(null).toString }
137
- catch { case cause: Exception => throw new sbt.internal.inc.InvalidScalaInstance("Scala instance doesn't exist or is invalid: " + label, cause) }
138
- if (v.startsWith(VersionPrefix)) v.substring(VersionPrefix.length) else v
139
- }
140
- //
141
- // The code below was deprecated and has been removed from ScalaInstance in zinc 1.0.x,
142
- // however it may work for us.
143
- //
144
- // TODO: use one of the currently supported variants of ScalaInstance.apply()
145
- //
146
- def scalaInstance(libraryJar: File, compilerJar: File, launcher: xsbti.Launcher, extraJars: File*): ScalaInstance = {
147
- val classLoader = scalaLoader(launcher)
148
- val loader = classLoader(libraryJar :: compilerJar :: extraJars.toList)
149
- val version = actualVersion(loader)(" (library jar " + libraryJar.getAbsolutePath + ")")
150
- new ScalaInstance(VersionPrefix, loader, libraryJar, compilerJar, extraJars.toArray, None)
151
- }
152
- }
153
- """ else """
154
- package sbt.dbuild.hack {
155
- object DbuildHack {
156
- val Load = sbt.Load
157
- }
158
- }
159
- package com.typesafe.dbuild.adapter {
160
- import java.io.File
161
-
162
- object LoggingInterface {
163
- val Level = sbt.Level
164
- type Logger = sbt.Logger
165
- type LogEvent = sbt.LogEvent
166
- val ControlEvent = sbt.ControlEvent
167
- val StackTrace = sbt.StackTrace
168
- type BasicLogger = sbt.BasicLogger
169
- }
170
-
171
- import LoggingInterface.Level._
172
- trait StreamLoggerAdapter {
173
- def log(level: Value, message: => String): Unit
174
- def log(label: String, message: String): Unit
175
- def err(s: => String): Unit = log(Error, s)
176
- def out(s: => String): Unit = log(Info.toString, s)
177
- }
178
-
179
- object Adapter {
180
- val IO = sbt.IO
181
- val Path = sbt.Path
182
- type RichFile = sbt.RichFile
183
- type FileFilter = sbt.FileFilter
184
- def toFF = sbt.FileFilter.globFilter _
185
- val DirectoryFilter = sbt.DirectoryFilter
186
- type ExactFilter = sbt.ExactFilter
187
- type NameFilter = sbt.NameFilter
188
- type FileRepository = sbt.FileRepository
189
- type Logger = sbt.Logger
190
- import Path._
191
- def allPaths(f:File) = sbt.PathFinder(f).***
192
- val syntax = new {}
193
- val syntaxio = syntax
194
- type ModuleID = sbt.ModuleID
195
- type Artifact = sbt.Artifact
196
- type ProjectResolver = sbt.ProjectResolver
197
- type ScalaInstance = sbt.ScalaInstance
198
- val ScalaInstance = sbt.ScalaInstance
199
- val Load = sbt.dbuild.hack.DbuildHack.Load
200
- val applyCross: (String, Option[String => String]) => String =
201
- sbt.CrossVersion.applyCross
202
- def defaultID(base: File, prefix: String = "default") =
203
- sbt.Build.defaultID(base, prefix)
204
- def scalaInstance(libraryJar: File, compilerJar: File, launcher: xsbti.Launcher, extraJars: File*): ScalaInstance =
205
- ScalaInstance(libraryJar, compilerJar, launcher, extraJars:_*)
206
- }
207
- """ )+ ("""
67
+ """
68
+ package com.typesafe.dbuild.adapter
208
69
object Defaults {
209
70
val version = "%s"
210
71
val org = "%s"
211
72
val hash = "%s"
212
73
}
213
- } """ format (version.value, organization.value, scala.sys.process.Process (" git log --pretty=format:%H -n 1" ).lines.head))
74
+ """ format (version.value, organization.value, scala.sys.process.Process (" git log --pretty=format:%H -n 1" ).lines.head))
214
75
215
76
)
216
77
Seq (file)
0 commit comments