From 9bd0b744effbc7e34b5ae4eb864c6c6c934c14c8 Mon Sep 17 00:00:00 2001 From: Philippe Suter <philippe.suter@gmail.com> Date: Mon, 21 Jun 2010 14:03:30 +0000 Subject: [PATCH] improved SBT script --- project/build/funcheck.scala | 34 +++++++++++++++++----- resources/{ => funcheck}/scalac-plugin.xml | 0 2 files changed, 26 insertions(+), 8 deletions(-) rename resources/{ => funcheck}/scalac-plugin.xml (100%) diff --git a/project/build/funcheck.scala b/project/build/funcheck.scala index b2de809e1..ea79831c4 100644 --- a/project/build/funcheck.scala +++ b/project/build/funcheck.scala @@ -1,15 +1,33 @@ import sbt._ -class FunCheckProject(info: ProjectInfo) extends DefaultProject(info) { +class FunCheckProject(info: ProjectInfo) extends ParentProject(info) { override def outputDirectoryName = "bin" - override def mainScalaSourcePath = "src" - override def mainResourcesPath = "resources" 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) - override def compileOptions = super.compileOptions ++ Seq(Unchecked) + sealed abstract class PersonalizedProject(info: ProjectInfo) extends DefaultProject(info) { + override def dependencyPath = "lib" + override def outputDirectoryName = "bin" + override def compileOptions = super.compileOptions ++ Seq(Unchecked) + } - lazy val scalac = task { - println("Running scalac...") - None - } dependsOn(`package`) describedAs("Runs scalac with the FunCheck plugin.") + class PureScalaProject(info: ProjectInfo) extends PersonalizedProject(info) { + override def outputPath = "bin" / "purescala" + override def mainScalaSourcePath = "src" / "purescala" + + } + class PluginProject(info: ProjectInfo) extends PersonalizedProject(info) { + override def outputPath = "bin" / "funcheck" + 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" + override def mainScalaSourcePath = "src" / "multisets" + override def unmanagedClasspath = super.unmanagedClasspath +++ purescala.jarPath + } } diff --git a/resources/scalac-plugin.xml b/resources/funcheck/scalac-plugin.xml similarity index 100% rename from resources/scalac-plugin.xml rename to resources/funcheck/scalac-plugin.xml -- GitLab