diff options
author | moix <moix@epfl.ch> | 2010-07-29 09:52:28 +0000 |
---|---|---|
committer | moix <moix@epfl.ch> | 2010-07-29 09:52:28 +0000 |
commit | e3ca222e48fa917d631c1ee6ecbc8a594ae76d10 (patch) | |
tree | c5c719ee1b38d5f238ee513279fda4f8cb263283 /project/build/PathConfig.scala | |
parent | 26bbdbe3a21d17f5b2a94ea528eb4508d2b3b13e (diff) | |
download | scala-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.scala | 38 |
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 +} |