summaryrefslogtreecommitdiff
path: root/main/test/resources/examples/foreign/conflict
diff options
context:
space:
mode:
authorOlivier Mélois <baccata64@gmail.com>2018-04-18 22:36:00 +0100
committerLi Haoyi <haoyi.sg@gmail.com>2018-04-18 14:36:00 -0700
commit7898368fe809779e73ef1cd909f1b2e5de84e6c1 (patch)
tree1ebe94dd2066fdb7db07ea8d3fd486d9775138ec /main/test/resources/examples/foreign/conflict
parent5314da0e2dea8d61400241d6c9899ea9077fff8d (diff)
downloadmill-7898368fe809779e73ef1cd909f1b2e5de84e6c1.tar.gz
mill-7898368fe809779e73ef1cd909f1b2e5de84e6c1.tar.bz2
mill-7898368fe809779e73ef1cd909f1b2e5de84e6c1.zip
Make builds able to depend on external projects (#291)
* Make builds able to depend on external projects Builds are now able to load external projects and depend on them as if they were local submodules. `import $file.external.path.build` * Disambiguate "dest" for foreign modules. * Calling modules loaded from external directories "Foreign" to avoid conflicting with the already existing concept of "ExternalModule". * Amended the way `dest` is computed for foreign modules * Added tests to check that the source paths and dest are as expected * Added a test to show that local modules do not conflict with foreign modules when they are named the same * WIP windows build fail * Added bootstrapping step in CYGWIN CI job * * Revert externalOutPath deletion * Add documentation for foreign-modules * reverting appveyor changes * Disabling Foreign modules tests against Java9 See https://github.com/lihaoyi/mill/issues/302
Diffstat (limited to 'main/test/resources/examples/foreign/conflict')
-rw-r--r--main/test/resources/examples/foreign/conflict/build.sc24
-rw-r--r--main/test/resources/examples/foreign/conflict/inner/build.sc4
2 files changed, 28 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 }