diff options
Diffstat (limited to 'main/test/resources/examples/foreign/project')
-rw-r--r-- | main/test/resources/examples/foreign/project/build.sc | 82 | ||||
-rw-r--r-- | main/test/resources/examples/foreign/project/inner/build.sc | 15 |
2 files changed, 97 insertions, 0 deletions
diff --git a/main/test/resources/examples/foreign/project/build.sc b/main/test/resources/examples/foreign/project/build.sc new file mode 100644 index 00000000..80c2af9b --- /dev/null +++ b/main/test/resources/examples/foreign/project/build.sc @@ -0,0 +1,82 @@ +import $file.^.outer.build +import $file.inner.build + +import ammonite.ops._ +import mill._ + +def assertPaths(p1 : Path, p2 : Path) : Unit = if (p1 != p2) throw new Exception( + s"Paths were not equal : \n- $p1 \n- $p2" +) + +object sub extends PathAware with DestAware { + + object sub extends PathAware with DestAware + + object sub2 extends ^.outer.build.PathAware with ^.outer.build.DestAware + +} + +def checkProjectPaths = T { + val thisPath : Path = millSourcePath + assert(thisPath.last == "project") + assertPaths(sub.selfPath(), thisPath / 'sub) + assertPaths(sub.sub.selfPath(), thisPath / 'sub / 'sub) + assertPaths(sub.sub2.selfPath(), thisPath / 'sub / 'sub2) +} + +def checkInnerPaths = T { + val thisPath : Path = millSourcePath + assertPaths(inner.build.millSourcePath, thisPath / 'inner ) + assertPaths(inner.build.sub.selfPath(), thisPath / 'inner / 'sub) + assertPaths(inner.build.sub.sub.selfPath(), thisPath / 'inner / 'sub / 'sub) +} + +def checkOuterPaths = T { + val thisPath : Path = millSourcePath + assertPaths(^.outer.build.millSourcePath, thisPath / up / 'outer ) + assertPaths(^.outer.build.sub.selfPath(), thisPath / up / 'outer / 'sub) + assertPaths(^.outer.build.sub.sub.selfPath(), thisPath / up / 'outer / 'sub / 'sub) +} + +def checkOuterInnerPaths = T { + val thisPath : Path = millSourcePath + assertPaths(^.outer.inner.build.millSourcePath, thisPath / up / 'outer / 'inner ) + assertPaths(^.outer.inner.build.sub.selfPath(), thisPath / up / 'outer / 'inner /'sub) + assertPaths(^.outer.inner.build.sub.sub.selfPath(), thisPath / up / 'outer / 'inner / 'sub / 'sub) +} + +def checkProjectDests = T { + val outPath : Path = millSourcePath / 'out + assertPaths(sub.selfDest(), outPath / 'sub) + assertPaths(sub.sub.selfDest(), outPath / 'sub / 'sub) + assertPaths(sub.sub2.selfDest(), outPath / 'sub / 'sub2) +} + +def checkInnerDests = T { + val foreignOut : Path = millSourcePath / 'out / "foreign-modules" + assertPaths(inner.build.sub.selfDest(), foreignOut / 'inner / 'sub) + assertPaths(inner.build.sub.sub.selfDest(), foreignOut / 'inner / 'sub / 'sub) +} + +def checkOuterDests = T { + val foreignOut : Path = millSourcePath / 'out / "foreign-modules" + assertPaths(^.outer.build.sub.selfDest(), foreignOut / "up-1" / 'outer/ 'sub ) + assertPaths(^.outer.build.sub.sub.selfDest(), foreignOut / "up-1" / 'outer/ 'sub / 'sub) +} + +def checkOuterInnerDests = T { + val foreignOut : Path = millSourcePath / 'out / "foreign-modules" + assertPaths(^.outer.inner.build.sub.selfDest(), foreignOut / "up-1" / 'outer/ 'inner / 'sub) + assertPaths(^.outer.inner.build.sub.sub.selfDest(), foreignOut / "up-1" / 'outer/ 'inner / 'sub / 'sub) +} + + +trait PathAware extends mill.Module { + + def selfPath = T { millSourcePath } +} + +trait DestAware extends mill.Module { + def selfDest = T { T.ctx().dest / up / up } +} + diff --git a/main/test/resources/examples/foreign/project/inner/build.sc b/main/test/resources/examples/foreign/project/inner/build.sc new file mode 100644 index 00000000..2d978292 --- /dev/null +++ b/main/test/resources/examples/foreign/project/inner/build.sc @@ -0,0 +1,15 @@ +import mill._ +import ammonite.ops._ + +trait PathAware extends mill.Module { + def selfPath = T { millSourcePath } +} + +trait DestAware extends mill.Module { + def selfDest = T { T.ctx().dest / up / up } +} + +object sub extends PathAware with DestAware { + object sub extends PathAware with DestAware +} + |