mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
if eclipse compiler is used in the project, require at least java7 for build process running (IDEA-154110)
This commit is contained in:
@@ -17,8 +17,10 @@ package com.intellij.compiler.server;
|
||||
|
||||
import com.intellij.ProjectTopics;
|
||||
import com.intellij.compiler.CompilerConfiguration;
|
||||
import com.intellij.compiler.CompilerConfigurationImpl;
|
||||
import com.intellij.compiler.CompilerWorkspaceConfiguration;
|
||||
import com.intellij.compiler.impl.CompilerUtil;
|
||||
import com.intellij.compiler.impl.javaCompiler.BackendCompiler;
|
||||
import com.intellij.compiler.impl.javaCompiler.javac.JavacConfiguration;
|
||||
import com.intellij.compiler.server.impl.BuildProcessClasspathManager;
|
||||
import com.intellij.concurrency.JobScheduler;
|
||||
@@ -98,6 +100,7 @@ import org.jetbrains.jps.api.*;
|
||||
import org.jetbrains.jps.cmdline.BuildMain;
|
||||
import org.jetbrains.jps.cmdline.ClasspathBootstrap;
|
||||
import org.jetbrains.jps.incremental.Utils;
|
||||
import org.jetbrains.jps.model.java.compiler.JavaCompilers;
|
||||
import org.jetbrains.jps.model.serialization.JpsGlobalLoader;
|
||||
|
||||
import javax.tools.*;
|
||||
@@ -944,14 +947,26 @@ public class BuildManager implements Disposable {
|
||||
}
|
||||
}
|
||||
|
||||
final Sdk internalJdk = JavaAwareProjectJdkTableImpl.getInstanceEx().getInternalJdk();
|
||||
if (projectJdk == null || sdkVersion == null || !sdkVersion.isAtLeast(JavaSdkVersion.JDK_1_6)) {
|
||||
final JavaSdkVersion oldestPossible = getOldestPossiblePlatformForBuildProcess(project);
|
||||
|
||||
if (projectJdk == null || sdkVersion == null || !sdkVersion.isAtLeast(oldestPossible)) {
|
||||
final Sdk internalJdk = JavaAwareProjectJdkTableImpl.getInstanceEx().getInternalJdk();
|
||||
projectJdk = internalJdk;
|
||||
sdkVersion = javaSdkType.getVersion(internalJdk);
|
||||
}
|
||||
return Pair.create(projectJdk, sdkVersion);
|
||||
}
|
||||
|
||||
@NotNull
|
||||
private static JavaSdkVersion getOldestPossiblePlatformForBuildProcess(Project project) {
|
||||
final BackendCompiler javaCompiler = ((CompilerConfigurationImpl)CompilerConfiguration.getInstance(project)).getDefaultCompiler();
|
||||
final String id = javaCompiler != null? javaCompiler.getId() : JavaCompilers.JAVAC_ID;
|
||||
if (id == JavaCompilers.ECLIPSE_ID || id == JavaCompilers.ECLIPSE_EMBEDDED_ID) {
|
||||
return JavaSdkVersion.JDK_1_7; // because bundled ecj is compiled against 1.7
|
||||
}
|
||||
return JavaSdkVersion.JDK_1_6;
|
||||
}
|
||||
|
||||
private Future<Pair<RequestFuture<PreloadedProcessMessageHandler>, OSProcessHandler>> launchPreloadedBuildProcess(final Project project, ExecutorService projectTaskQueue) throws Exception {
|
||||
ensureListening();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user