Refactoring: extract jar names in PathUtil and use them in artifacts
This commit is contained in:
@@ -24,36 +24,50 @@ import java.io.File
|
||||
import java.util.regex.Pattern
|
||||
|
||||
object PathUtil {
|
||||
const val JS_LIB_JAR_NAME = "kotlin-stdlib-js.jar"
|
||||
const val JS_LIB_NAME = "kotlin-stdlib-js"
|
||||
const val JS_LIB_JAR_NAME = "$JS_LIB_NAME.jar"
|
||||
|
||||
const val JS_LIB_10_JAR_NAME = "kotlin-jslib.jar"
|
||||
const val ALLOPEN_PLUGIN_JAR_NAME = "allopen-compiler-plugin.jar"
|
||||
const val NOARG_PLUGIN_JAR_NAME = "noarg-compiler-plugin.jar"
|
||||
const val SAM_WITH_RECEIVER_PLUGIN_JAR_NAME = "sam-with-receiver-compiler-plugin.jar"
|
||||
const val JS_LIB_SRC_JAR_NAME = "kotlin-stdlib-js-sources.jar"
|
||||
|
||||
const val KOTLIN_JAVA_RUNTIME_JRE7_JAR = "kotlin-stdlib-jre7.jar"
|
||||
const val KOTLIN_JAVA_RUNTIME_JDK7_JAR = "kotlin-stdlib-jdk7.jar"
|
||||
const val KOTLIN_JAVA_RUNTIME_JRE7_NAME = "kotlin-stdlib-jre7"
|
||||
const val KOTLIN_JAVA_RUNTIME_JRE7_JAR = "$KOTLIN_JAVA_RUNTIME_JRE7_NAME.jar"
|
||||
const val KOTLIN_JAVA_RUNTIME_JRE7_SRC_JAR = "$KOTLIN_JAVA_RUNTIME_JRE7_NAME-sources.jar"
|
||||
|
||||
const val KOTLIN_JAVA_RUNTIME_JRE8_JAR = "kotlin-stdlib-jre8.jar"
|
||||
const val KOTLIN_JAVA_RUNTIME_JDK8_JAR = "kotlin-stdlib-jdk8.jar"
|
||||
const val KOTLIN_JAVA_RUNTIME_JDK7_NAME = "kotlin-stdlib-jdk7"
|
||||
const val KOTLIN_JAVA_RUNTIME_JDK7_JAR = "$KOTLIN_JAVA_RUNTIME_JDK7_NAME.jar"
|
||||
const val KOTLIN_JAVA_RUNTIME_JDK7_SRC_JAR = "$KOTLIN_JAVA_RUNTIME_JDK7_NAME-sources.jar"
|
||||
|
||||
const val KOTLIN_JAVA_RUNTIME_JRE7_SRC_JAR = "kotlin-stdlib-jre7-sources.jar"
|
||||
const val KOTLIN_JAVA_RUNTIME_JDK7_SRC_JAR = "kotlin-stdlib-jdk7-sources.jar"
|
||||
const val KOTLIN_JAVA_RUNTIME_JRE8_NAME = "kotlin-stdlib-jre8"
|
||||
const val KOTLIN_JAVA_RUNTIME_JRE8_JAR = "$KOTLIN_JAVA_RUNTIME_JRE8_NAME.jar"
|
||||
const val KOTLIN_JAVA_RUNTIME_JRE8_SRC_JAR = "$KOTLIN_JAVA_RUNTIME_JRE8_NAME-sources.jar"
|
||||
|
||||
const val KOTLIN_JAVA_RUNTIME_JRE8_SRC_JAR = "kotlin-stdlib-jre8-sources.jar"
|
||||
const val KOTLIN_JAVA_RUNTIME_JDK8_SRC_JAR = "kotlin-stdlib-jdk8-sources.jar"
|
||||
const val KOTLIN_JAVA_RUNTIME_JDK8_NAME = "kotlin-stdlib-jdk8"
|
||||
const val KOTLIN_JAVA_RUNTIME_JDK8_JAR = "$KOTLIN_JAVA_RUNTIME_JDK8_NAME.jar"
|
||||
const val KOTLIN_JAVA_RUNTIME_JDK8_SRC_JAR = "$KOTLIN_JAVA_RUNTIME_JDK8_NAME-sources.jar"
|
||||
|
||||
const val KOTLIN_JAVA_STDLIB_NAME = "kotlin-stdlib"
|
||||
const val KOTLIN_JAVA_STDLIB_JAR = "$KOTLIN_JAVA_STDLIB_NAME.jar"
|
||||
const val KOTLIN_JAVA_STDLIB_SRC_JAR = "$KOTLIN_JAVA_STDLIB_NAME-sources.jar"
|
||||
|
||||
const val KOTLIN_JAVA_STDLIB_JAR = "kotlin-stdlib.jar"
|
||||
const val KOTLIN_JAVA_REFLECT_JAR = "kotlin-reflect.jar"
|
||||
const val KOTLIN_JAVA_SCRIPT_RUNTIME_JAR = "kotlin-script-runtime.jar"
|
||||
const val KOTLIN_TEST_JAR = "kotlin-test.jar"
|
||||
const val KOTLIN_TEST_JS_JAR = "kotlin-test-js.jar"
|
||||
const val KOTLIN_JAVA_STDLIB_SRC_JAR = "kotlin-stdlib-sources.jar"
|
||||
|
||||
const val KOTLIN_TEST_NAME = "kotlin-test"
|
||||
const val KOTLIN_TEST_JAR = "$KOTLIN_TEST_NAME.jar"
|
||||
const val KOTLIN_TEST_SRC_JAR = "$KOTLIN_TEST_NAME-sources.jar"
|
||||
|
||||
const val KOTLIN_TEST_JS_NAME = "kotlin-test-js"
|
||||
const val KOTLIN_TEST_JS_JAR = "$KOTLIN_TEST_JS_NAME.jar"
|
||||
|
||||
const val KOTLIN_JAVA_STDLIB_SRC_JAR_OLD = "kotlin-runtime-sources.jar"
|
||||
const val KOTLIN_REFLECT_SRC_JAR = "kotlin-reflect-sources.jar"
|
||||
const val KOTLIN_TEST_SRC_JAR = "kotlin-test-sources.jar"
|
||||
const val KOTLIN_COMPILER = "kotlin-compiler"
|
||||
const val KOTLIN_COMPILER_JAR = "$KOTLIN_COMPILER.jar"
|
||||
|
||||
const val KOTLIN_COMPILER_NAME = "kotlin-compiler"
|
||||
const val KOTLIN_COMPILER_JAR = "$KOTLIN_COMPILER_NAME.jar"
|
||||
|
||||
@JvmField
|
||||
val KOTLIN_RUNTIME_JAR_PATTERN: Pattern = Pattern.compile("kotlin-(stdlib|runtime)(-\\d[\\d.]+(-.+)?)?\\.jar")
|
||||
@@ -73,7 +87,7 @@ object PathUtil {
|
||||
|
||||
@JvmStatic
|
||||
val kotlinPathsForCompiler: KotlinPaths
|
||||
get() = if (!pathUtilJar.isFile || !pathUtilJar.name.startsWith(KOTLIN_COMPILER)) {
|
||||
get() = if (!pathUtilJar.isFile || !pathUtilJar.name.startsWith(KOTLIN_COMPILER_NAME)) {
|
||||
// PathUtil.class is located not in the kotlin-compiler*.jar, so it must be a test and we'll take KotlinPaths from "dist/"
|
||||
// (when running tests, PathUtil.class is in its containing module's artifact, i.e. util-{version}.jar)
|
||||
kotlinPathsForDistDirectory
|
||||
|
||||
+2
-2
@@ -54,8 +54,8 @@ object JsLibraryStdDetectionUtil {
|
||||
|
||||
val name = root.url.substringBefore("!/").substringAfterLast('/')
|
||||
if (name == PathUtil.JS_LIB_JAR_NAME || name == PathUtil.JS_LIB_10_JAR_NAME ||
|
||||
PathUtil.KOTLIN_STDLIB_JS_JAR_PATTERN.matcher(name).matches() ||
|
||||
PathUtil.KOTLIN_JS_LIBRARY_JAR_PATTERN.matcher(name).matches()) {
|
||||
PathUtil.KOTLIN_STDLIB_JS_JAR_PATTERN.matcher(name).matches() ||
|
||||
PathUtil.KOTLIN_JS_LIBRARY_JAR_PATTERN.matcher(name).matches()) {
|
||||
|
||||
val jar = VfsUtilCore.getVirtualFileForJar(root) ?: continue
|
||||
var isJSStdLib = jar.getUserData(IS_JS_LIBRARY_STD_LIB)
|
||||
|
||||
@@ -315,13 +315,18 @@ fun getStdlibArtifactId(sdk: Sdk?, version: String): String {
|
||||
return MAVEN_STDLIB_ID
|
||||
}
|
||||
|
||||
val areSDKArtifactsAvailable = VersionComparatorUtil.COMPARATOR.compare("1.2.0-rc-39", version) >= 0
|
||||
val sdkVersion = sdk?.version
|
||||
if (hasJdkLikeUpdatedRuntime(version)) {
|
||||
return when {
|
||||
sdkVersion != null && sdkVersion.isAtLeast(JavaSdkVersion.JDK_1_8) -> MAVEN_STDLIB_ID_JDK8
|
||||
sdkVersion == JavaSdkVersion.JDK_1_7 -> MAVEN_STDLIB_ID_JDK7
|
||||
else -> MAVEN_STDLIB_ID
|
||||
}
|
||||
}
|
||||
|
||||
return when {
|
||||
sdkVersion != null && sdkVersion.isAtLeast(JavaSdkVersion.JDK_1_8) ->
|
||||
if (areSDKArtifactsAvailable) MAVEN_STDLIB_ID_JDK8 else MAVEN_STDLIB_ID_JDK7
|
||||
sdkVersion == JavaSdkVersion.JDK_1_7 ->
|
||||
if (areSDKArtifactsAvailable) MAVEN_STDLIB_ID_JDK7 else MAVEN_STDLIB_ID_JRE7
|
||||
sdkVersion != null && sdkVersion.isAtLeast(JavaSdkVersion.JDK_1_8) -> MAVEN_STDLIB_ID_JRE8
|
||||
sdkVersion == JavaSdkVersion.JDK_1_7 -> MAVEN_STDLIB_ID_JRE7
|
||||
else -> MAVEN_STDLIB_ID
|
||||
}
|
||||
}
|
||||
@@ -337,24 +342,30 @@ fun getDefaultJvmTarget(sdk: Sdk?, version: String): JvmTarget? {
|
||||
return null
|
||||
}
|
||||
|
||||
fun hasJdkLikeUpdatedRuntime(version: String): Boolean =
|
||||
VersionComparatorUtil.compare(version, "1.2.0-rc-39") >= 0 ||
|
||||
isSnapshot(version) ||
|
||||
version == "default_version" /* for tests */
|
||||
|
||||
fun hasJreSpecificRuntime(version: String): Boolean =
|
||||
VersionComparatorUtil.compare(version, "1.1.0") >= 0 ||
|
||||
isSnapshot(version) ||
|
||||
version == "default_version" /* for tests */
|
||||
|
||||
val MAVEN_STDLIB_ID = "kotlin-stdlib"
|
||||
val MAVEN_STDLIB_ID = PathUtil.KOTLIN_JAVA_STDLIB_NAME
|
||||
|
||||
val MAVEN_STDLIB_ID_JRE7 = "kotlin-stdlib-jre7"
|
||||
val MAVEN_STDLIB_ID_JDK7 = "kotlin-stdlib-jdk7"
|
||||
val MAVEN_STDLIB_ID_JRE7 = PathUtil.KOTLIN_JAVA_RUNTIME_JRE7_NAME
|
||||
val MAVEN_STDLIB_ID_JDK7 = PathUtil.KOTLIN_JAVA_RUNTIME_JDK7_NAME
|
||||
|
||||
val MAVEN_STDLIB_ID_JRE8 = "kotlin-stdlib-jre8"
|
||||
val MAVEN_STDLIB_ID_JDK8 = "kotlin-stdlib-jdk8"
|
||||
val MAVEN_STDLIB_ID_JRE8 = PathUtil.KOTLIN_JAVA_RUNTIME_JRE8_NAME
|
||||
val MAVEN_STDLIB_ID_JDK8 = PathUtil.KOTLIN_JAVA_RUNTIME_JDK8_NAME
|
||||
|
||||
val MAVEN_JS_STDLIB_ID = PathUtil.JS_LIB_NAME
|
||||
val MAVEN_JS_TEST_ID = PathUtil.KOTLIN_TEST_JS_NAME
|
||||
|
||||
val MAVEN_JS_STDLIB_ID = "kotlin-stdlib-js"
|
||||
val MAVEN_JS_TEST_ID = "kotlin-test-js"
|
||||
val MAVEN_OLD_JS_STDLIB_ID = "kotlin-js-library"
|
||||
val MAVEN_COMMON_STDLIB_ID = "kotlin-stdlib-common" // TODO: KotlinCommonMavenConfigurator
|
||||
val MAVEN_TEST_ID = "kotlin-test"
|
||||
val MAVEN_TEST_ID = PathUtil.KOTLIN_TEST_NAME
|
||||
val MAVEN_TEST_JUNIT_ID = "kotlin-test-junit"
|
||||
val MAVEN_COMMON_TEST_ID = "kotlin-test-common"
|
||||
val MAVEN_COMMON_TEST_ANNOTATIONS_ID = "kotlin-test-annotations-common"
|
||||
|
||||
+1
-1
@@ -51,7 +51,7 @@ fun File.matchMaybeVersionedFile(baseName: String) =
|
||||
name == baseName.removeSuffix(".jar") || // for classes dirs
|
||||
Regex(Regex.escape(baseName.removeSuffix(".jar")) + "(-\\d.*)?\\.jar").matches(name)
|
||||
|
||||
private const val KOTLIN_COMPILER_EMBEDDABLE_JAR = "${PathUtil.KOTLIN_COMPILER}-embeddable.jar"
|
||||
private const val KOTLIN_COMPILER_EMBEDDABLE_JAR = "${PathUtil.KOTLIN_COMPILER_NAME}-embeddable.jar"
|
||||
|
||||
internal fun List<File>.takeIfContainsAll(vararg keyNames: String): List<File>? =
|
||||
takeIf { classpath ->
|
||||
|
||||
Reference in New Issue
Block a user