summaryrefslogtreecommitdiff
path: root/project/build/PathConfig.scala
diff options
context:
space:
mode:
authormoix <moix@epfl.ch>2010-07-29 09:52:28 +0000
committermoix <moix@epfl.ch>2010-07-29 09:52:28 +0000
commite3ca222e48fa917d631c1ee6ecbc8a594ae76d10 (patch)
treec5c719ee1b38d5f238ee513279fda4f8cb263283 /project/build/PathConfig.scala
parent26bbdbe3a21d17f5b2a94ea528eb4508d2b3b13e (diff)
downloadscala-e3ca222e48fa917d631c1ee6ecbc8a594ae76d10.tar.gz
scala-e3ca222e48fa917d631c1ee6ecbc8a594ae76d10.tar.bz2
scala-e3ca222e48fa917d631c1ee6ecbc8a594ae76d10.zip
First version of SBT build for Scala compiler/l...
First version of SBT build for Scala compiler/library (see README)
Diffstat (limited to 'project/build/PathConfig.scala')
-rw-r--r--project/build/PathConfig.scala38
1 files changed, 38 insertions, 0 deletions
diff --git a/project/build/PathConfig.scala b/project/build/PathConfig.scala
new file mode 100644
index 0000000000..3410f7c8e5
--- /dev/null
+++ b/project/build/PathConfig.scala
@@ -0,0 +1,38 @@
+import sbt._
+
+/**
+ * An abstract class for grouping all different paths that are needed to
+ * compile the a CompilationStep
+ * @author Grégory Moix
+ */
+abstract class PathConfig {
+ def projectRoot:Path
+ def sources:Path
+ def analysis:Path
+ def output:Path
+}
+
+/**
+ *
+ */
+
+class PathLayout(val projectRoot:Path, val outputDir:Path) {
+ lazy val srcDir = projectRoot / "src"
+ lazy val classesOutput = outputDir / " classes"
+ lazy val analysisOutput = outputDir / "analysis"
+
+ /**
+ * An utility method to easily create StandardPathConfig from a given path layout
+ */
+ def /(name:String)= new StandardPathConfig(this, name)
+}
+
+/**
+ *
+ */
+class StandardPathConfig(layout: PathLayout, name:String) extends PathConfig{
+ lazy val projectRoot = layout.projectRoot
+ lazy val sources = layout.srcDir / name
+ lazy val analysis = layout.analysisOutput / name
+ lazy val output = layout.classesOutput / name
+}