summaryrefslogtreecommitdiff
path: root/main/test/resources/examples
diff options
context:
space:
mode:
Diffstat (limited to 'main/test/resources/examples')
-rw-r--r--main/test/resources/examples/foreign/conflict/build.sc24
-rw-r--r--main/test/resources/examples/foreign/conflict/inner/build.sc4
-rw-r--r--main/test/resources/examples/foreign/outer/build.sc16
-rw-r--r--main/test/resources/examples/foreign/outer/inner/build.sc15
-rw-r--r--main/test/resources/examples/foreign/project/build.sc82
-rw-r--r--main/test/resources/examples/foreign/project/inner/build.sc15
6 files changed, 156 insertions, 0 deletions
diff --git a/main/test/resources/examples/foreign/conflict/build.sc b/main/test/resources/examples/foreign/conflict/build.sc
new file mode 100644
index 00000000..d6c08b81
--- /dev/null
+++ b/main/test/resources/examples/foreign/conflict/build.sc
@@ -0,0 +1,24 @@
+import $file.inner.{build => innerBuild}
+import mill._
+import ammonite.ops._
+
+// In this build, we have a local module targeting
+// the 'inner sub-directory, and an imported foreign
+// module in that same directory. Their sourcePaths
+// should be the same, but their dest paths should
+// be different to avoid both modules over-writing
+// each other's caches .
+
+def checkPaths : T[Unit] = T {
+ if (innerBuild.millSourcePath != inner.millSourcePath)
+ throw new Exception("Source paths should be the same")
+}
+
+def checkDests : T[Unit] = T {
+ if (innerBuild.selfDest == inner.selfDest)
+ throw new Exception("Dest paths should be different")
+}
+
+object inner extends mill.Module {
+ def selfDest = T { T.ctx().dest / up / up }
+}
diff --git a/main/test/resources/examples/foreign/conflict/inner/build.sc b/main/test/resources/examples/foreign/conflict/inner/build.sc
new file mode 100644
index 00000000..729f4f3d
--- /dev/null
+++ b/main/test/resources/examples/foreign/conflict/inner/build.sc
@@ -0,0 +1,4 @@
+import mill._
+import ammonite.ops._
+
+def selfDest = T { T.ctx().dest / up / up }
diff --git a/main/test/resources/examples/foreign/outer/build.sc b/main/test/resources/examples/foreign/outer/build.sc
new file mode 100644
index 00000000..b53cca70
--- /dev/null
+++ b/main/test/resources/examples/foreign/outer/build.sc
@@ -0,0 +1,16 @@
+import $file.inner.build
+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
+}
+
diff --git a/main/test/resources/examples/foreign/outer/inner/build.sc b/main/test/resources/examples/foreign/outer/inner/build.sc
new file mode 100644
index 00000000..2d978292
--- /dev/null
+++ b/main/test/resources/examples/foreign/outer/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
+}
+
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
+}
+