external build: if build fails because of a circular dependency show names of all targets composing the cycle (ZD-616449)

This commit is contained in:
nik
2016-01-22 22:04:23 +03:00
parent 5505b44e0e
commit ac0bcd2ab3
@@ -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<BuildTarget<?>, 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;
}