Setup JDK roots and initialize JDK_HOME in common core environment
#KT-20167 Fixed
This commit is contained in:
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright 2010-2015 JetBrains s.r.o.
|
* Copyright 2010-2017 JetBrains s.r.o.
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
@@ -19,8 +19,8 @@ package org.jetbrains.kotlin.cli.js;
|
|||||||
import com.intellij.openapi.Disposable;
|
import com.intellij.openapi.Disposable;
|
||||||
import com.intellij.openapi.project.Project;
|
import com.intellij.openapi.project.Project;
|
||||||
import com.intellij.openapi.util.io.FileUtil;
|
import com.intellij.openapi.util.io.FileUtil;
|
||||||
import com.intellij.openapi.vfs.VfsUtilCore;
|
|
||||||
import com.intellij.openapi.util.text.StringUtil;
|
import com.intellij.openapi.util.text.StringUtil;
|
||||||
|
import com.intellij.openapi.vfs.VfsUtilCore;
|
||||||
import com.intellij.openapi.vfs.VirtualFile;
|
import com.intellij.openapi.vfs.VirtualFile;
|
||||||
import com.intellij.util.ExceptionUtil;
|
import com.intellij.util.ExceptionUtil;
|
||||||
import com.intellij.util.SmartList;
|
import com.intellij.util.SmartList;
|
||||||
@@ -46,6 +46,8 @@ import org.jetbrains.kotlin.cli.jvm.compiler.KotlinCoreEnvironment;
|
|||||||
import org.jetbrains.kotlin.cli.jvm.plugins.PluginCliParser;
|
import org.jetbrains.kotlin.cli.jvm.plugins.PluginCliParser;
|
||||||
import org.jetbrains.kotlin.config.*;
|
import org.jetbrains.kotlin.config.*;
|
||||||
import org.jetbrains.kotlin.incremental.components.LookupTracker;
|
import org.jetbrains.kotlin.incremental.components.LookupTracker;
|
||||||
|
import org.jetbrains.kotlin.incremental.js.IncrementalDataProvider;
|
||||||
|
import org.jetbrains.kotlin.incremental.js.IncrementalResultsConsumer;
|
||||||
import org.jetbrains.kotlin.incremental.js.TranslationResultValue;
|
import org.jetbrains.kotlin.incremental.js.TranslationResultValue;
|
||||||
import org.jetbrains.kotlin.js.analyze.TopDownAnalyzerFacadeForJS;
|
import org.jetbrains.kotlin.js.analyze.TopDownAnalyzerFacadeForJS;
|
||||||
import org.jetbrains.kotlin.js.analyzer.JsAnalysisResult;
|
import org.jetbrains.kotlin.js.analyzer.JsAnalysisResult;
|
||||||
@@ -56,11 +58,9 @@ import org.jetbrains.kotlin.js.config.SourceMapSourceEmbedding;
|
|||||||
import org.jetbrains.kotlin.js.facade.K2JSTranslator;
|
import org.jetbrains.kotlin.js.facade.K2JSTranslator;
|
||||||
import org.jetbrains.kotlin.js.facade.MainCallParameters;
|
import org.jetbrains.kotlin.js.facade.MainCallParameters;
|
||||||
import org.jetbrains.kotlin.js.facade.TranslationResult;
|
import org.jetbrains.kotlin.js.facade.TranslationResult;
|
||||||
import org.jetbrains.kotlin.js.sourceMap.SourceFilePathResolver;
|
|
||||||
import org.jetbrains.kotlin.js.facade.TranslationUnit;
|
import org.jetbrains.kotlin.js.facade.TranslationUnit;
|
||||||
import org.jetbrains.kotlin.js.facade.exceptions.TranslationException;
|
import org.jetbrains.kotlin.js.facade.exceptions.TranslationException;
|
||||||
import org.jetbrains.kotlin.incremental.js.IncrementalDataProvider;
|
import org.jetbrains.kotlin.js.sourceMap.SourceFilePathResolver;
|
||||||
import org.jetbrains.kotlin.incremental.js.IncrementalResultsConsumer;
|
|
||||||
import org.jetbrains.kotlin.progress.ProgressIndicatorAndCompilationCanceledStatus;
|
import org.jetbrains.kotlin.progress.ProgressIndicatorAndCompilationCanceledStatus;
|
||||||
import org.jetbrains.kotlin.psi.KtFile;
|
import org.jetbrains.kotlin.psi.KtFile;
|
||||||
import org.jetbrains.kotlin.serialization.js.ModuleKind;
|
import org.jetbrains.kotlin.serialization.js.ModuleKind;
|
||||||
@@ -71,7 +71,6 @@ import org.jetbrains.kotlin.utils.StringsKt;
|
|||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.util.Arrays;
|
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright 2010-2016 JetBrains s.r.o.
|
* Copyright 2010-2017 JetBrains s.r.o.
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
@@ -24,20 +24,23 @@ import org.jetbrains.kotlin.cli.common.CLITool
|
|||||||
import org.jetbrains.kotlin.cli.common.ExitCode
|
import org.jetbrains.kotlin.cli.common.ExitCode
|
||||||
import org.jetbrains.kotlin.cli.common.ExitCode.*
|
import org.jetbrains.kotlin.cli.common.ExitCode.*
|
||||||
import org.jetbrains.kotlin.cli.common.arguments.K2JVMCompilerArguments
|
import org.jetbrains.kotlin.cli.common.arguments.K2JVMCompilerArguments
|
||||||
import org.jetbrains.kotlin.cli.common.messages.*
|
|
||||||
import org.jetbrains.kotlin.cli.common.messages.CompilerMessageSeverity.*
|
import org.jetbrains.kotlin.cli.common.messages.CompilerMessageSeverity.*
|
||||||
|
import org.jetbrains.kotlin.cli.common.messages.FilteringMessageCollector
|
||||||
|
import org.jetbrains.kotlin.cli.common.messages.MessageCollector
|
||||||
|
import org.jetbrains.kotlin.cli.common.messages.MessageUtil
|
||||||
|
import org.jetbrains.kotlin.cli.common.messages.OutputMessageUtil
|
||||||
import org.jetbrains.kotlin.cli.jvm.compiler.CompileEnvironmentUtil
|
import org.jetbrains.kotlin.cli.jvm.compiler.CompileEnvironmentUtil
|
||||||
import org.jetbrains.kotlin.cli.jvm.compiler.EnvironmentConfigFiles
|
import org.jetbrains.kotlin.cli.jvm.compiler.EnvironmentConfigFiles
|
||||||
import org.jetbrains.kotlin.cli.jvm.compiler.KotlinCoreEnvironment
|
import org.jetbrains.kotlin.cli.jvm.compiler.KotlinCoreEnvironment
|
||||||
import org.jetbrains.kotlin.cli.jvm.compiler.KotlinToJVMBytecodeCompiler
|
import org.jetbrains.kotlin.cli.jvm.compiler.KotlinToJVMBytecodeCompiler
|
||||||
import org.jetbrains.kotlin.cli.jvm.config.*
|
import org.jetbrains.kotlin.cli.jvm.config.JvmClasspathRoot
|
||||||
|
import org.jetbrains.kotlin.cli.jvm.config.JvmModulePathRoot
|
||||||
|
import org.jetbrains.kotlin.cli.jvm.config.addJavaSourceRoot
|
||||||
|
import org.jetbrains.kotlin.cli.jvm.config.jvmClasspathRoots
|
||||||
import org.jetbrains.kotlin.cli.jvm.modules.CoreJrtFileSystem
|
import org.jetbrains.kotlin.cli.jvm.modules.CoreJrtFileSystem
|
||||||
import org.jetbrains.kotlin.cli.jvm.plugins.PluginCliParser
|
import org.jetbrains.kotlin.cli.jvm.plugins.PluginCliParser
|
||||||
import org.jetbrains.kotlin.cli.jvm.repl.ReplFromTerminal
|
import org.jetbrains.kotlin.cli.jvm.repl.ReplFromTerminal
|
||||||
import org.jetbrains.kotlin.codegen.CompilationException
|
import org.jetbrains.kotlin.codegen.CompilationException
|
||||||
import org.jetbrains.kotlin.compiler.plugin.CliOptionProcessingException
|
|
||||||
import org.jetbrains.kotlin.compiler.plugin.PluginCliOptionProcessingException
|
|
||||||
import org.jetbrains.kotlin.compiler.plugin.cliPluginUsageString
|
|
||||||
import org.jetbrains.kotlin.config.*
|
import org.jetbrains.kotlin.config.*
|
||||||
import org.jetbrains.kotlin.incremental.components.LookupTracker
|
import org.jetbrains.kotlin.incremental.components.LookupTracker
|
||||||
import org.jetbrains.kotlin.javac.JavacWrapper
|
import org.jetbrains.kotlin.javac.JavacWrapper
|
||||||
@@ -65,7 +68,8 @@ class K2JVMCompiler : CLICompiler<K2JVMCompilerArguments>() {
|
|||||||
PerformanceCounter.setTimeCounterEnabled(arguments.reportPerf)
|
PerformanceCounter.setTimeCounterEnabled(arguments.reportPerf)
|
||||||
|
|
||||||
val messageCollector = configuration.getNotNull(CLIConfigurationKeys.MESSAGE_COLLECTOR_KEY)
|
val messageCollector = configuration.getNotNull(CLIConfigurationKeys.MESSAGE_COLLECTOR_KEY)
|
||||||
setupJdkClasspathRoots(arguments, configuration, messageCollector).let {
|
|
||||||
|
configureJdkHome(arguments, configuration, messageCollector).let {
|
||||||
if (it != OK) return it
|
if (it != OK) return it
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -398,42 +402,28 @@ class K2JVMCompiler : CLICompiler<K2JVMCompilerArguments>() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun setupJdkClasspathRoots(arguments: K2JVMCompilerArguments, configuration: CompilerConfiguration, messageCollector: MessageCollector): ExitCode {
|
private fun configureJdkHome(arguments: K2JVMCompilerArguments, configuration: CompilerConfiguration, messageCollector: MessageCollector): ExitCode {
|
||||||
try {
|
if (arguments.noJdk) {
|
||||||
if (arguments.noJdk) {
|
configuration.put(JVMConfigurationKeys.NO_JDK, true)
|
||||||
if (arguments.jdkHome != null) {
|
|
||||||
messageCollector.report(STRONG_WARNING, "The '-jdk-home' option is ignored because '-no-jdk' is specified")
|
if (arguments.jdkHome != null) {
|
||||||
}
|
messageCollector.report(STRONG_WARNING, "The '-jdk-home' option is ignored because '-no-jdk' is specified")
|
||||||
return OK
|
}
|
||||||
|
return OK
|
||||||
|
}
|
||||||
|
|
||||||
|
if (arguments.jdkHome != null) {
|
||||||
|
val jdkHome = File(arguments.jdkHome)
|
||||||
|
if (!jdkHome.exists()) {
|
||||||
|
messageCollector.report(ERROR, "JDK home directory does not exist: $jdkHome")
|
||||||
|
return COMPILATION_ERROR
|
||||||
}
|
}
|
||||||
|
|
||||||
val (jdkHome, classesRoots) = if (arguments.jdkHome != null) {
|
messageCollector.report(LOGGING, "Using JDK home directory $jdkHome")
|
||||||
val jdkHome = File(arguments.jdkHome)
|
|
||||||
if (!jdkHome.exists()) {
|
|
||||||
messageCollector.report(ERROR, "JDK home directory does not exist: $jdkHome")
|
|
||||||
return COMPILATION_ERROR
|
|
||||||
}
|
|
||||||
messageCollector.report(LOGGING, "Using JDK home directory $jdkHome")
|
|
||||||
jdkHome to PathUtil.getJdkClassesRoots(jdkHome)
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
File(System.getProperty("java.home")) to PathUtil.getJdkClassesRootsFromCurrentJre()
|
|
||||||
}
|
|
||||||
|
|
||||||
configuration.put(JVMConfigurationKeys.JDK_HOME, jdkHome)
|
configuration.put(JVMConfigurationKeys.JDK_HOME, jdkHome)
|
||||||
|
}
|
||||||
|
|
||||||
if (!CoreJrtFileSystem.isModularJdk(jdkHome)) {
|
|
||||||
configuration.addJvmClasspathRoots(classesRoots)
|
|
||||||
if (classesRoots.isEmpty()) {
|
|
||||||
messageCollector.report(ERROR, "No class roots are found in the JDK path: $jdkHome")
|
|
||||||
return COMPILATION_ERROR
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
catch (t: Throwable) {
|
|
||||||
MessageCollectorUtil.reportException(messageCollector, t)
|
|
||||||
return INTERNAL_ERROR
|
|
||||||
}
|
|
||||||
return OK
|
return OK
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright 2010-2015 JetBrains s.r.o.
|
* Copyright 2010-2017 JetBrains s.r.o.
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
@@ -23,6 +23,7 @@ public enum EnvironmentConfigFiles {
|
|||||||
JVM_CONFIG_FILES("extensions/common.xml", "extensions/kotlin2jvm.xml"),
|
JVM_CONFIG_FILES("extensions/common.xml", "extensions/kotlin2jvm.xml"),
|
||||||
JS_CONFIG_FILES("extensions/common.xml", "extensions/kotlin2js.xml"),
|
JS_CONFIG_FILES("extensions/common.xml", "extensions/kotlin2js.xml"),
|
||||||
NATIVE_CONFIG_FILES("extensions/common.xml"),
|
NATIVE_CONFIG_FILES("extensions/common.xml"),
|
||||||
|
METADATA_CONFIG_FILES("extensions/common.xml"),
|
||||||
EMPTY();
|
EMPTY();
|
||||||
|
|
||||||
private final List<String> files;
|
private final List<String> files;
|
||||||
|
|||||||
@@ -113,7 +113,7 @@ import java.io.File
|
|||||||
class KotlinCoreEnvironment private constructor(
|
class KotlinCoreEnvironment private constructor(
|
||||||
parentDisposable: Disposable,
|
parentDisposable: Disposable,
|
||||||
applicationEnvironment: JavaCoreApplicationEnvironment,
|
applicationEnvironment: JavaCoreApplicationEnvironment,
|
||||||
configuration: CompilerConfiguration,
|
initialConfiguration: CompilerConfiguration,
|
||||||
configFiles: EnvironmentConfigFiles
|
configFiles: EnvironmentConfigFiles
|
||||||
) {
|
) {
|
||||||
private val projectEnvironment: JavaCoreProjectEnvironment = object : KotlinCoreProjectEnvironment(parentDisposable, applicationEnvironment) {
|
private val projectEnvironment: JavaCoreProjectEnvironment = object : KotlinCoreProjectEnvironment(parentDisposable, applicationEnvironment) {
|
||||||
@@ -151,7 +151,7 @@ class KotlinCoreEnvironment private constructor(
|
|||||||
private val classpathRootsResolver: ClasspathRootsResolver
|
private val classpathRootsResolver: ClasspathRootsResolver
|
||||||
private val initialRoots: List<JavaRoot>
|
private val initialRoots: List<JavaRoot>
|
||||||
|
|
||||||
val configuration: CompilerConfiguration = configuration.copy()
|
val configuration: CompilerConfiguration = initialConfiguration.apply { setupJdkClasspathRoots(configFiles) }.copy()
|
||||||
|
|
||||||
init {
|
init {
|
||||||
PersistentFSConstants.setMaxIntellisenseFileSize(FileUtilRt.LARGE_FOR_CONTENT_LOADING)
|
PersistentFSConstants.setMaxIntellisenseFileSize(FileUtilRt.LARGE_FOR_CONTENT_LOADING)
|
||||||
@@ -176,6 +176,7 @@ class KotlinCoreEnvironment private constructor(
|
|||||||
project.registerService(ModuleVisibilityManager::class.java, CliModuleVisibilityManagerImpl(configFiles == EnvironmentConfigFiles.JVM_CONFIG_FILES))
|
project.registerService(ModuleVisibilityManager::class.java, CliModuleVisibilityManagerImpl(configFiles == EnvironmentConfigFiles.JVM_CONFIG_FILES))
|
||||||
|
|
||||||
registerProjectServicesForCLI(projectEnvironment)
|
registerProjectServicesForCLI(projectEnvironment)
|
||||||
|
|
||||||
val messageCollector = configuration.get(CLIConfigurationKeys.MESSAGE_COLLECTOR_KEY)
|
val messageCollector = configuration.get(CLIConfigurationKeys.MESSAGE_COLLECTOR_KEY)
|
||||||
registerProjectServices(projectEnvironment, messageCollector)
|
registerProjectServices(projectEnvironment, messageCollector)
|
||||||
|
|
||||||
@@ -546,5 +547,32 @@ class KotlinCoreEnvironment private constructor(
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private fun CompilerConfiguration.setupJdkClasspathRoots(configFiles: EnvironmentConfigFiles) {
|
||||||
|
if (getBoolean(JVMConfigurationKeys.NO_JDK)) return
|
||||||
|
|
||||||
|
val jvmTarget = configFiles == EnvironmentConfigFiles.JVM_CONFIG_FILES
|
||||||
|
if (!jvmTarget) return
|
||||||
|
|
||||||
|
val jdkHome = get(JVMConfigurationKeys.JDK_HOME)
|
||||||
|
val (javaRoot, classesRoots) = if (jdkHome == null) {
|
||||||
|
val javaHome = File(System.getProperty("java.home"))
|
||||||
|
put(JVMConfigurationKeys.JDK_HOME, javaHome)
|
||||||
|
|
||||||
|
javaHome to PathUtil.getJdkClassesRootsFromCurrentJre()
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
jdkHome to PathUtil.getJdkClassesRoots(jdkHome)
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!CoreJrtFileSystem.isModularJdk(javaRoot)) {
|
||||||
|
addJvmClasspathRoots(classesRoots)
|
||||||
|
if (classesRoots.isEmpty()) {
|
||||||
|
val messageCollector = get(CLIConfigurationKeys.MESSAGE_COLLECTOR_KEY)
|
||||||
|
messageCollector?.report(ERROR, "No class roots are found in the JDK path: $javaRoot")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright 2010-2016 JetBrains s.r.o.
|
* Copyright 2010-2017 JetBrains s.r.o.
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
@@ -71,7 +71,7 @@ class K2MetadataCompiler : CLICompiler<K2MetadataCompilerArguments>() {
|
|||||||
configuration.put(CLIConfigurationKeys.METADATA_DESTINATION_DIRECTORY, File(destination))
|
configuration.put(CLIConfigurationKeys.METADATA_DESTINATION_DIRECTORY, File(destination))
|
||||||
}
|
}
|
||||||
|
|
||||||
val environment = KotlinCoreEnvironment.createForProduction(rootDisposable, configuration, EnvironmentConfigFiles.JVM_CONFIG_FILES)
|
val environment = KotlinCoreEnvironment.createForProduction(rootDisposable, configuration, EnvironmentConfigFiles.METADATA_CONFIG_FILES)
|
||||||
|
|
||||||
if (environment.getSourceFiles().isEmpty()) {
|
if (environment.getSourceFiles().isEmpty()) {
|
||||||
if (arguments.version) {
|
if (arguments.version) {
|
||||||
|
|||||||
@@ -50,7 +50,6 @@ open class KotlinJvmReplService(
|
|||||||
) : ReplCompileAction, ReplCheckAction, CreateReplStageStateAction {
|
) : ReplCompileAction, ReplCheckAction, CreateReplStageStateAction {
|
||||||
|
|
||||||
protected val configuration = CompilerConfiguration().apply {
|
protected val configuration = CompilerConfiguration().apply {
|
||||||
addJvmClasspathRoots(PathUtil.getJdkClassesRootsFromCurrentJre())
|
|
||||||
addJvmClasspathRoots(PathUtil.kotlinPathsForCompiler.let { listOf(it.stdlibPath, it.reflectPath, it.scriptRuntimePath) })
|
addJvmClasspathRoots(PathUtil.kotlinPathsForCompiler.let { listOf(it.stdlibPath, it.reflectPath, it.scriptRuntimePath) })
|
||||||
addJvmClasspathRoots(templateClasspath)
|
addJvmClasspathRoots(templateClasspath)
|
||||||
put(CommonConfigurationKeys.MODULE_NAME, "kotlin-script")
|
put(CommonConfigurationKeys.MODULE_NAME, "kotlin-script")
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright 2010-2016 JetBrains s.r.o.
|
* Copyright 2010-2017 JetBrains s.r.o.
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
@@ -42,6 +42,9 @@ public class JVMConfigurationKeys {
|
|||||||
public static final CompilerConfigurationKey<File> JDK_HOME =
|
public static final CompilerConfigurationKey<File> JDK_HOME =
|
||||||
CompilerConfigurationKey.create("jdk home");
|
CompilerConfigurationKey.create("jdk home");
|
||||||
|
|
||||||
|
public static final CompilerConfigurationKey<Boolean> NO_JDK =
|
||||||
|
CompilerConfigurationKey.create("no jdk");
|
||||||
|
|
||||||
public static final CompilerConfigurationKey<List<KotlinScriptDefinition>> SCRIPT_DEFINITIONS =
|
public static final CompilerConfigurationKey<List<KotlinScriptDefinition>> SCRIPT_DEFINITIONS =
|
||||||
CompilerConfigurationKey.create("script definitions");
|
CompilerConfigurationKey.create("script definitions");
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright 2010-2015 JetBrains s.r.o.
|
* Copyright 2010-2017 JetBrains s.r.o.
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
@@ -488,17 +488,20 @@ public class KotlinTestUtils {
|
|||||||
JvmContentRootsKt.addJavaSourceRoots(configuration, javaSource);
|
JvmContentRootsKt.addJavaSourceRoots(configuration, javaSource);
|
||||||
if (jdkKind == TestJdkKind.MOCK_JDK) {
|
if (jdkKind == TestJdkKind.MOCK_JDK) {
|
||||||
JvmContentRootsKt.addJvmClasspathRoot(configuration, findMockJdkRtJar());
|
JvmContentRootsKt.addJvmClasspathRoot(configuration, findMockJdkRtJar());
|
||||||
|
configuration.put(JVMConfigurationKeys.NO_JDK, true);
|
||||||
}
|
}
|
||||||
else if (jdkKind == TestJdkKind.MODIFIED_MOCK_JDK) {
|
else if (jdkKind == TestJdkKind.MODIFIED_MOCK_JDK) {
|
||||||
JvmContentRootsKt.addJvmClasspathRoot(configuration, findMockJdkRtModified());
|
JvmContentRootsKt.addJvmClasspathRoot(configuration, findMockJdkRtModified());
|
||||||
|
configuration.put(JVMConfigurationKeys.NO_JDK, true);
|
||||||
}
|
}
|
||||||
else if (jdkKind == TestJdkKind.ANDROID_API) {
|
else if (jdkKind == TestJdkKind.ANDROID_API) {
|
||||||
JvmContentRootsKt.addJvmClasspathRoot(configuration, findAndroidApiJar());
|
JvmContentRootsKt.addJvmClasspathRoot(configuration, findAndroidApiJar());
|
||||||
|
configuration.put(JVMConfigurationKeys.NO_JDK, true);
|
||||||
}
|
}
|
||||||
else if (jdkKind == TestJdkKind.FULL_JDK_6) {
|
else if (jdkKind == TestJdkKind.FULL_JDK_6) {
|
||||||
String jdk6 = System.getenv("JDK_16");
|
String jdk6 = System.getenv("JDK_16");
|
||||||
assert jdk6 != null : "Environment variable JDK_16 is not set";
|
assert jdk6 != null : "Environment variable JDK_16 is not set";
|
||||||
JvmContentRootsKt.addJvmClasspathRoots(configuration, PathUtil.getJdkClassesRootsFromJre(getJreHome(jdk6)));
|
configuration.put(JVMConfigurationKeys.JDK_HOME, new File(jdk6));
|
||||||
}
|
}
|
||||||
else if (jdkKind == TestJdkKind.FULL_JDK_9) {
|
else if (jdkKind == TestJdkKind.FULL_JDK_9) {
|
||||||
File home = getJdk9HomeIfPossible();
|
File home = getJdk9HomeIfPossible();
|
||||||
@@ -509,9 +512,6 @@ public class KotlinTestUtils {
|
|||||||
else if (SystemInfo.IS_AT_LEAST_JAVA9) {
|
else if (SystemInfo.IS_AT_LEAST_JAVA9) {
|
||||||
configuration.put(JVMConfigurationKeys.JDK_HOME, new File(System.getProperty("java.home")));
|
configuration.put(JVMConfigurationKeys.JDK_HOME, new File(System.getProperty("java.home")));
|
||||||
}
|
}
|
||||||
else {
|
|
||||||
JvmContentRootsKt.addJvmClasspathRoots(configuration, PathUtil.getJdkClassesRootsFromCurrentJre());
|
|
||||||
}
|
|
||||||
|
|
||||||
if (configurationKind.getWithRuntime()) {
|
if (configurationKind.getWithRuntime()) {
|
||||||
JvmContentRootsKt.addJvmClasspathRoot(configuration, ForTestCompileRuntime.runtimeJarForTests());
|
JvmContentRootsKt.addJvmClasspathRoot(configuration, ForTestCompileRuntime.runtimeJarForTests());
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright 2010-2016 JetBrains s.r.o.
|
* Copyright 2010-2017 JetBrains s.r.o.
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
|
|||||||
-1
@@ -169,7 +169,6 @@ public class ExecuteKotlinScriptMojo extends AbstractMojo {
|
|||||||
|
|
||||||
List<File> deps = new ArrayList<>();
|
List<File> deps = new ArrayList<>();
|
||||||
|
|
||||||
deps.addAll(PathUtil.getJdkClassesRootsFromCurrentJre());
|
|
||||||
deps.addAll(getDependenciesForScript());
|
deps.addAll(getDependenciesForScript());
|
||||||
|
|
||||||
for (File item: deps) {
|
for (File item: deps) {
|
||||||
|
|||||||
-1
@@ -132,7 +132,6 @@ done
|
|||||||
val rootDisposable = Disposer.newDisposable()
|
val rootDisposable = Disposer.newDisposable()
|
||||||
try {
|
try {
|
||||||
val configuration = CompilerConfiguration().apply {
|
val configuration = CompilerConfiguration().apply {
|
||||||
addJvmClasspathRoots(PathUtil.getJdkClassesRootsFromCurrentJre())
|
|
||||||
contextClasspath(KOTLIN_JAVA_RUNTIME_JAR, Thread.currentThread().contextClassLoader)?.let {
|
contextClasspath(KOTLIN_JAVA_RUNTIME_JAR, Thread.currentThread().contextClassLoader)?.let {
|
||||||
addJvmClasspathRoots(it)
|
addJvmClasspathRoots(it)
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user