mirror of https://github.com/sbt/sbt.git
Merge pull request #24 from Duhemm/fport/inter-project-dependency-tracking
FPORT: Inter-project dependency tracking
This commit is contained in:
commit
62c12f16cd
|
|
@ -0,0 +1,33 @@
|
|||
package sbt.librarymanagement
|
||||
|
||||
/**
|
||||
* An enumeration defining the tracking of dependencies. A level includes all of the levels
|
||||
* with id larger than its own id. For example, Warn (id=3) includes Error (id=4).
|
||||
*/
|
||||
object TrackLevel {
|
||||
case object NoTracking extends TrackLevel {
|
||||
override def id: Int = 0
|
||||
}
|
||||
case object TrackIfMissing extends TrackLevel {
|
||||
override def id: Int = 1
|
||||
}
|
||||
case object TrackAlways extends TrackLevel {
|
||||
override def id: Int = 10
|
||||
}
|
||||
|
||||
private[sbt] def apply(x: Int): TrackLevel =
|
||||
x match {
|
||||
case 0 => NoTracking
|
||||
case 1 => TrackIfMissing
|
||||
case 10 => TrackAlways
|
||||
}
|
||||
|
||||
def intersection(a: TrackLevel, b: TrackLevel): TrackLevel =
|
||||
if (a.id < b.id) a
|
||||
else b
|
||||
def intersectionAll(vs: List[TrackLevel]): TrackLevel = vs reduceLeft intersection
|
||||
}
|
||||
|
||||
sealed trait TrackLevel {
|
||||
def id: Int
|
||||
}
|
||||
Loading…
Reference in New Issue