From ac0bcd2ab3f08dfc37ee360537e241cf8606669b Mon Sep 17 00:00:00 2001 From: nik Date: Fri, 22 Jan 2016 22:04:01 +0300 Subject: [PATCH] external build: if build fails because of a circular dependency show names of all targets composing the cycle (ZD-616449) --- .../jetbrains/jps/incremental/IncProjectBuilder.java | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/jps/jps-builders/src/org/jetbrains/jps/incremental/IncProjectBuilder.java b/jps/jps-builders/src/org/jetbrains/jps/incremental/IncProjectBuilder.java index a7377d628118..2221ead0efd9 100644 --- a/jps/jps-builders/src/org/jetbrains/jps/incremental/IncProjectBuilder.java +++ b/jps/jps-builders/src/org/jetbrains/jps/incremental/IncProjectBuilder.java @@ -19,6 +19,7 @@ import com.intellij.openapi.diagnostic.Logger; import com.intellij.openapi.util.*; import com.intellij.openapi.util.io.FileUtil; import com.intellij.openapi.util.text.StringUtil; +import com.intellij.util.Function; import com.intellij.util.SmartList; import com.intellij.util.concurrency.BoundedTaskExecutor; import com.intellij.util.containers.ContainerUtil; @@ -889,8 +890,15 @@ public class IncProjectBuilder { moduleTargets.add((ModuleBuildTarget)target); } else { + String targetsString = StringUtil.join(targets, new Function, String>() { + @Override + public String fun(BuildTarget target) { + return StringUtil.decapitalize(target.getPresentableName()); + } + }, ", "); context.processMessage(new CompilerMessage( - "", BuildMessage.Kind.ERROR, "Cannot build " + target.getPresentableName() + " because it is included into a circular dependency") + "", BuildMessage.Kind.ERROR, "Cannot build " + StringUtil.decapitalize(target.getPresentableName()) + " because it is included into a circular dependency (" + + targetsString + ")") ); return false; }