aboutsummaryrefslogtreecommitdiff
path: root/stage2
diff options
context:
space:
mode:
Diffstat (limited to 'stage2')
-rw-r--r--stage2/BasicBuild.scala11
-rw-r--r--stage2/BuildBuild.scala5
2 files changed, 15 insertions, 1 deletions
diff --git a/stage2/BasicBuild.scala b/stage2/BasicBuild.scala
index d8d1b8b..3ce9ed1 100644
--- a/stage2/BasicBuild.scala
+++ b/stage2/BasicBuild.scala
@@ -18,8 +18,17 @@ trait BaseBuild extends BuildInterface with DependencyImplementation with Trigge
def enableConcurrency = false
final def projectDirectory: File = lib.realpath(context.projectDirectory)
assert( projectDirectory.exists, "projectDirectory does not exist: " ++ projectDirectory.string )
+ assert(
+ projectDirectory.getName =!= "build" ||
+ {
+ def transitiveInterfaces(cls: Class[_]): Vector[Class[_]] = cls.getInterfaces.toVector.flatMap(i => i +: transitiveInterfaces(i))
+ transitiveInterfaces(this.getClass).contains(classOf[BuildBuildWithoutEssentials])
+ },
+ "You need to extend BuildBuild in: " + projectDirectory + "/build"
+ )
+
final def usage: String = lib.usage(this.getClass, show)
-
+
final def taskNames: String = lib.taskNames(this.getClass).sorted.mkString("\n")
// ========== meta data ==========
diff --git a/stage2/BuildBuild.scala b/stage2/BuildBuild.scala
index 5eb7622..0736e7e 100644
--- a/stage2/BuildBuild.scala
+++ b/stage2/BuildBuild.scala
@@ -6,6 +6,11 @@ trait BuildBuild extends BuildBuildWithoutEssentials{
super.dependencies :+ plugins.essentials
}
trait BuildBuildWithoutEssentials extends BaseBuild{
+ assert(
+ projectDirectory.getName === "build",
+ "You can't extend BuildBuild in: " + projectDirectory + "/build"
+ )
+
protected final val managedContext = context.copy(
projectDirectory = managedBuildDirectory,
parentBuild=Some(this)