Skip to content
Snippets Groups Projects
Commit efbca75c authored by Philippe Suter's avatar Philippe Suter
Browse files

now creates the script properly.

parent 9bd0b744
No related branches found
No related tags found
No related merge requests found
import sbt._
class FunCheckProject(info: ProjectInfo) extends ParentProject(info) {
class FunCheckProject(info: ProjectInfo) extends ParentProject(info) with FileTasks {
override def outputDirectoryName = "bin"
override def dependencyPath = "lib"
override def shouldCheckOutputDirectories = false
lazy val purescala = project(".", "PureScala Definitions", new PureScalaProject(_))
lazy val plugin = project(".", "FunCheck Plugin", new PluginProject(_), purescala)
lazy val multisets = project(".", "Multiset Solver", new MultisetsProject(_), plugin, purescala)
val scriptPath: Path = "." / "scalac-funcheck"
lazy val all = fileTask(scriptPath :: Nil)(allActions) dependsOn(plugin.`package`) describedAs("Compile everything and produce a script file.")
def allActions: Option[String] = {
val nl = System.getProperty("line.separator")
val f = scriptPath.asFile
val fw = new java.io.FileWriter(f)
fw.write("#!/bin/sh" + nl)
fw.write("LD_LIBRARY_PATH=" + ("." / "lib-bin").absolutePath + " \\" + nl)
fw.write("java \\" + nl)
val libStr = (buildLibraryJar.absolutePath).toString
fw.write(" -Dscala.home=" + libStr.substring(0, libStr.length-21) + " \\" + nl)
fw.write(" -classpath \\" + nl)
fw.write(" " + buildLibraryJar.absolutePath + ":")
fw.write(buildCompilerJar.absolutePath + ":")
fw.write(purescala.jarPath.absolutePath + ":")
fw.write(plugin.jarPath.absolutePath + ":")
fw.write(("lib" / "z3.jar").absolutePath + " \\" + nl)
fw.write(" scala.tools.nsc.Main -Xplugin:" + plugin.jarPath.absolutePath + " $@" + nl)
fw.close
f.setExecutable(true)
None
}
sealed abstract class PersonalizedProject(info: ProjectInfo) extends DefaultProject(info) {
override def dependencyPath = "lib"
override def outputDirectoryName = "bin"
......@@ -24,6 +50,8 @@ class FunCheckProject(info: ProjectInfo) extends ParentProject(info) {
override def mainScalaSourcePath = "src" / "funcheck"
override def unmanagedClasspath = super.unmanagedClasspath +++ purescala.jarPath
override def mainResourcesPath = "resources" / "funcheck"
}
class MultisetsProject(info: ProjectInfo) extends PersonalizedProject(info) {
override def outputPath = "bin" / "multisets"
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment