|
1 | 1 | import sbt._ |
2 | 2 | import Keys._ |
3 | | -import xsbti.compile.CompileAnalysis |
4 | 3 |
|
5 | 4 | object ZincBuildUtil { |
6 | 5 | lazy val apiDefinitions = TaskKey[Seq[File]]("api-definitions") |
7 | 6 | lazy val genTestResTask = TaskKey[Seq[File]]("gen-test-resources") |
8 | 7 |
|
9 | | - def lastCompilationTime(analysis0: CompileAnalysis): Long = { |
10 | | - val analysis = analysis0 match { case a: sbt.internal.inc.Analysis => a } |
11 | | - val lastCompilation = analysis.compilations.allCompilations.lastOption |
12 | | - lastCompilation.map(_.getStartTime) getOrElse 0L |
13 | | - } |
14 | | - def generateVersionFile( |
15 | | - version: String, |
16 | | - dir: File, |
17 | | - s: TaskStreams, |
18 | | - analysis0: CompileAnalysis |
19 | | - ): Seq[File] = { |
20 | | - import java.util.{ Date, TimeZone } |
21 | | - val analysis = analysis0 match { case a: sbt.internal.inc.Analysis => a } |
22 | | - val formatter = new java.text.SimpleDateFormat("yyyyMMdd'T'HHmmss") |
23 | | - formatter.setTimeZone(TimeZone.getTimeZone("GMT")) |
24 | | - val timestamp = formatter.format(new Date) |
25 | | - val content = versionLine(version) + "\ntimestamp=" + timestamp |
26 | | - val f = dir / "incrementalcompiler.version.properties" |
27 | | - // TODO: replace lastModified() with sbt.io.IO.getModifiedTimeOrZero(), once the build |
28 | | - // has been upgraded to a version of sbt that includes that call. |
29 | | - if ( |
30 | | - !f.exists || f.lastModified < lastCompilationTime(analysis) || !containsVersion(f, version) |
31 | | - ) { |
32 | | - s.log.info("Writing version information to " + f + " :\n" + content) |
33 | | - IO.write(f, content) |
34 | | - } |
35 | | - f :: Nil |
36 | | - } |
37 | | - def versionLine(version: String): String = "version=" + version |
38 | | - def containsVersion(propFile: File, version: String): Boolean = |
39 | | - IO.read(propFile).contains(versionLine(version)) |
40 | | - |
41 | 8 | def sampleProjectSettings(ext: String) = |
42 | 9 | Seq( |
43 | 10 | (Compile / scalaSource) := baseDirectory.value / "src", |
|
0 commit comments