diff --git a/build-common/src/org/jetbrains/kotlin/build/report/ICReporterBase.kt b/build-common/src/org/jetbrains/kotlin/build/report/ICReporterBase.kt index 8e31210e23d..cad90715b16 100644 --- a/build-common/src/org/jetbrains/kotlin/build/report/ICReporterBase.kt +++ b/build-common/src/org/jetbrains/kotlin/build/report/ICReporterBase.kt @@ -23,7 +23,7 @@ abstract class ICReporterBase(private val pathsBase: File? = null) : ICReporter } protected fun relativizeIfPossible(files: Iterable): List = - files.map { it.relativeOrCanonical() } + files.map { it.relativeOrAbsolute() } protected fun pathsAsString(files: Iterable): String = relativizeIfPossible(files).map { it.path }.sorted().joinToString() @@ -31,6 +31,6 @@ abstract class ICReporterBase(private val pathsBase: File? = null) : ICReporter protected fun pathsAsString(vararg files: File): String = pathsAsString(files.toList()) - protected fun File.relativeOrCanonical(): File = - pathsBase?.let { relativeToOrNull(it) } ?: canonicalFile + protected fun File.relativeOrAbsolute(): File = + pathsBase?.let { relativeToOrNull(it) } ?: normalize().absoluteFile } \ No newline at end of file diff --git a/build-common/src/org/jetbrains/kotlin/incremental/IncrementalJvmCache.kt b/build-common/src/org/jetbrains/kotlin/incremental/IncrementalJvmCache.kt index 7341a97bc60..13af63396b1 100644 --- a/build-common/src/org/jetbrains/kotlin/incremental/IncrementalJvmCache.kt +++ b/build-common/src/org/jetbrains/kotlin/incremental/IncrementalJvmCache.kt @@ -104,7 +104,7 @@ open class IncrementalJvmCache( className in multifileFacadeToParts override fun getClassFilePath(internalClassName: String): String { - return toSystemIndependentName(File(outputDir, "$internalClassName.class").canonicalPath) + return toSystemIndependentName(File(outputDir, "$internalClassName.class").normalize().absolutePath) } fun saveModuleMappingToCache(sourceFiles: Collection, file: File) { diff --git a/compiler/daemon/daemon-common/src/org/jetbrains/kotlin/daemon/common/ClientUtils.kt b/compiler/daemon/daemon-common/src/org/jetbrains/kotlin/daemon/common/ClientUtils.kt index 49fcb4e13a0..cd924ebfe36 100644 --- a/compiler/daemon/daemon-common/src/org/jetbrains/kotlin/daemon/common/ClientUtils.kt +++ b/compiler/daemon/daemon-common/src/org/jetbrains/kotlin/daemon/common/ClientUtils.kt @@ -126,7 +126,7 @@ class FileAgeComparator : Comparator { leftTS == 0L || rightTS == 0L -> 0 // cannot read any file timestamp, => undecidable leftTS > rightTS -> -1 leftTS < rightTS -> 1 - else -> compareValues(left.canonicalPath, right.canonicalPath) + else -> compareValues(left.normalize().absolutePath, right.normalize().absolutePath) } } } diff --git a/compiler/daemon/src/org/jetbrains/kotlin/daemon/CompileServiceImpl.kt b/compiler/daemon/src/org/jetbrains/kotlin/daemon/CompileServiceImpl.kt index 6041e2aa6a4..5211327d9cf 100644 --- a/compiler/daemon/src/org/jetbrains/kotlin/daemon/CompileServiceImpl.kt +++ b/compiler/daemon/src/org/jetbrains/kotlin/daemon/CompileServiceImpl.kt @@ -1063,7 +1063,7 @@ class CompileServiceImpl( } daemon.scheduleShutdown(true) } catch (e: Throwable) { - log.info("Cannot connect to a daemon, assuming dying ('${runFile.canonicalPath}'): ${e.message}") + log.info("Cannot connect to a daemon, assuming dying ('${runFile.normalize().absolutePath}'): ${e.message}") } } } diff --git a/compiler/daemon/src/org/jetbrains/kotlin/daemon/experimental/CompileServiceServerSideImpl.kt b/compiler/daemon/src/org/jetbrains/kotlin/daemon/experimental/CompileServiceServerSideImpl.kt index fbf4cd077dc..80d396d3dd2 100644 --- a/compiler/daemon/src/org/jetbrains/kotlin/daemon/experimental/CompileServiceServerSideImpl.kt +++ b/compiler/daemon/src/org/jetbrains/kotlin/daemon/experimental/CompileServiceServerSideImpl.kt @@ -527,7 +527,7 @@ class CompileServiceServerSideImpl( daemon.scheduleShutdown(true) log.fine("other : SHUTDOWN_OK") } catch (e: Throwable) { - log.info("Cannot connect to a daemon, assuming dying ('${runFile.canonicalPath}'): ${e.message}") + log.info("Cannot connect to a daemon, assuming dying ('${runFile.normalize().absolutePath}'): ${e.message}") } } } diff --git a/compiler/daemon/src/org/jetbrains/kotlin/daemon/report/BuildReportICReporter.kt b/compiler/daemon/src/org/jetbrains/kotlin/daemon/report/BuildReportICReporter.kt index c6e3e78efb6..6eae91313ca 100644 --- a/compiler/daemon/src/org/jetbrains/kotlin/daemon/report/BuildReportICReporter.kt +++ b/compiler/daemon/src/org/jetbrains/kotlin/daemon/report/BuildReportICReporter.kt @@ -37,7 +37,7 @@ class BuildReportICReporter( icLogLines.add("Compile iteration:") for (file in sourceFiles) { val reason = recompilationReason[file]?.let { " <- $it" } ?: "" - icLogLines.add(" ${file.relativeOrCanonical()}$reason") + icLogLines.add(" ${file.relativeOrAbsolute()}$reason") } recompilationReason.clear() } diff --git a/compiler/daemon/src/org/jetbrains/kotlin/daemon/report/experimental/RemoteICReporter.kt b/compiler/daemon/src/org/jetbrains/kotlin/daemon/report/experimental/RemoteICReporter.kt index b950e84ca09..6c0cdf15f35 100644 --- a/compiler/daemon/src/org/jetbrains/kotlin/daemon/report/experimental/RemoteICReporter.kt +++ b/compiler/daemon/src/org/jetbrains/kotlin/daemon/report/experimental/RemoteICReporter.kt @@ -80,7 +80,7 @@ internal class BuildReportICReporterAsync( icLogLines.add("Compile iteration:") for (file in sourceFiles) { val reason = recompilationReason[file]?.let { " <- $it" } ?: "" - icLogLines.add(" ${file.relativeOrCanonical()}$reason") + icLogLines.add(" ${file.relativeOrAbsolute()}$reason") } recompilationReason.clear() } diff --git a/compiler/incremental-compilation-impl/src/org/jetbrains/kotlin/incremental/IncrementalCompilerRunner.kt b/compiler/incremental-compilation-impl/src/org/jetbrains/kotlin/incremental/IncrementalCompilerRunner.kt index b9cc910bee0..ad888f78763 100644 --- a/compiler/incremental-compilation-impl/src/org/jetbrains/kotlin/incremental/IncrementalCompilerRunner.kt +++ b/compiler/incremental-compilation-impl/src/org/jetbrains/kotlin/incremental/IncrementalCompilerRunner.kt @@ -435,7 +435,7 @@ abstract class IncrementalCompilerRunner< dirtySources.addAll(compiledSources) allDirtySources.addAll(dirtySources) - val text = allDirtySources.joinToString(separator = System.getProperty("line.separator")) { it.canonicalPath } + val text = allDirtySources.joinToString(separator = System.getProperty("line.separator")) { it.normalize().absolutePath } dirtySourcesSinceLastTimeFile.writeText(text) diff --git a/compiler/incremental-compilation-impl/src/org/jetbrains/kotlin/incremental/snapshots/FileSnapshotExternalizer.kt b/compiler/incremental-compilation-impl/src/org/jetbrains/kotlin/incremental/snapshots/FileSnapshotExternalizer.kt index 61c398e6f08..33a6d268496 100644 --- a/compiler/incremental-compilation-impl/src/org/jetbrains/kotlin/incremental/snapshots/FileSnapshotExternalizer.kt +++ b/compiler/incremental-compilation-impl/src/org/jetbrains/kotlin/incremental/snapshots/FileSnapshotExternalizer.kt @@ -23,7 +23,7 @@ import java.io.File object FileSnapshotExternalizer : DataExternalizer { override fun save(out: DataOutput, value: FileSnapshot) { - out.writeUTF(value.file.canonicalPath) + out.writeUTF(value.file.normalize().absolutePath) out.writeLong(value.length) out.writeInt(value.hash.size) out.write(value.hash) diff --git a/jps/jps-plugin/src/org/jetbrains/kotlin/jps/build/KotlinDirtySourceFilesHolder.kt b/jps/jps-plugin/src/org/jetbrains/kotlin/jps/build/KotlinDirtySourceFilesHolder.kt index 32aca9b2949..5addd0f4f7a 100644 --- a/jps/jps-plugin/src/org/jetbrains/kotlin/jps/build/KotlinDirtySourceFilesHolder.kt +++ b/jps/jps-plugin/src/org/jetbrains/kotlin/jps/build/KotlinDirtySourceFilesHolder.kt @@ -50,10 +50,10 @@ class KotlinDirtySourceFilesHolder( */ internal fun _markDirty(file: File, root: JavaSourceRootDescriptor) { val isCrossCompiled = root is KotlinIncludedModuleSourceRoot - val old = _dirty.put(file.canonicalFile, KotlinModuleBuildTarget.Source(file, isCrossCompiled)) + val old = _dirty.put(file.normalize().absoluteFile, KotlinModuleBuildTarget.Source(file, isCrossCompiled)) check(old == null || old.isCrossCompiled == isCrossCompiled) { - "`${file.canonicalFile}` already marked as dirty: " + + "`${file.normalize().absoluteFile}` already marked as dirty: " + "old is cross compiled: ${old!!.isCrossCompiled}, " + "new is cross compiled: $isCrossCompiled" } diff --git a/jps/jps-plugin/src/org/jetbrains/kotlin/jps/targets/KotlinJvmModuleBuildTarget.kt b/jps/jps-plugin/src/org/jetbrains/kotlin/jps/targets/KotlinJvmModuleBuildTarget.kt index 841ad6ff5a1..c35433dce92 100644 --- a/jps/jps-plugin/src/org/jetbrains/kotlin/jps/targets/KotlinJvmModuleBuildTarget.kt +++ b/jps/jps-plugin/src/org/jetbrains/kotlin/jps/targets/KotlinJvmModuleBuildTarget.kt @@ -400,8 +400,8 @@ class KotlinJvmModuleBuildTarget(kotlinContext: KotlinCompileContext, jpsModuleB } callback.associate( - FileUtil.toSystemIndependentName(output.outputFile.canonicalPath), - sourceFiles.map { FileUtil.toSystemIndependentName(it.canonicalPath) }, + FileUtil.toSystemIndependentName(output.outputFile.normalize().absolutePath), + sourceFiles.map { FileUtil.toSystemIndependentName(it.normalize().absolutePath) }, ClassReader(output.outputClass.fileContents) ) } diff --git a/libraries/tools/kotlin-gradle-plugin-api/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/KotlinGradleSubplugin.kt b/libraries/tools/kotlin-gradle-plugin-api/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/KotlinGradleSubplugin.kt index 62c00588d17..0268b755d38 100644 --- a/libraries/tools/kotlin-gradle-plugin-api/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/KotlinGradleSubplugin.kt +++ b/libraries/tools/kotlin-gradle-plugin-api/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/KotlinGradleSubplugin.kt @@ -33,7 +33,7 @@ class FilesSubpluginOption( key: String, val files: Iterable, val kind: FilesOptionKind = FilesOptionKind.INTERNAL, - lazyValue: Lazy = lazy { files.joinToString(File.pathSeparator) { it.canonicalPath } } + lazyValue: Lazy = lazy { files.joinToString(File.pathSeparator) { it.normalize().absolutePath } } ) : SubpluginOption(key, lazyValue) { constructor( @@ -41,7 +41,7 @@ class FilesSubpluginOption( files: List, kind: FilesOptionKind = FilesOptionKind.INTERNAL, value: String? = null - ) : this(key, files, kind, lazy { value ?: files.joinToString(File.pathSeparator) { it.canonicalPath } }) + ) : this(key, files, kind, lazy { value ?: files.joinToString(File.pathSeparator) { it.normalize().absolutePath } }) } class CompositeSubpluginOption( diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/compilerRunner/GradleKotlinCompilerRunner.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/compilerRunner/GradleKotlinCompilerRunner.kt index 645f814290a..f3977a854cd 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/compilerRunner/GradleKotlinCompilerRunner.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/compilerRunner/GradleKotlinCompilerRunner.kt @@ -347,12 +347,13 @@ internal open class GradleCompilerRunner( kotlinTask.abiSnapshotFile.get().asFile ) val jarTask = project.tasks.findByName(target.artifactsTaskName) as? AbstractArchiveTask ?: continue - jarToModule[jarTask.archivePathCompatible.canonicalFile] = module + jarToModule[jarTask.archivePathCompatible.normalize().absoluteFile] = module if (target is KotlinWithJavaTarget<*, *>) { val jar = project.tasks.getByName(target.artifactsTaskName) as Jar - jarToClassListFile[jar.archivePathCompatible.canonicalFile] = target.defaultArtifactClassesListFile.get() + jarToClassListFile[jar.archivePathCompatible.normalize().absoluteFile] = + target.defaultArtifactClassesListFile.get() //configure abiSnapshot mapping for jars - jarToAbiSnapshot[jar.archivePathCompatible.canonicalFile] = + jarToAbiSnapshot[jar.archivePathCompatible.normalize().absoluteFile] = target.buildDir.get().file(kotlinTask.abiSnapshotRelativePath).get().asFile } @@ -414,9 +415,9 @@ internal open class GradleCompilerRunner( internal fun getOrCreateClientFlagFile(log: Logger, projectName: String): File { if (clientIsAliveFlagFile == null || !clientIsAliveFlagFile!!.exists()) { clientIsAliveFlagFile = newTmpFile(prefix = "kotlin-compiler-in-${projectName}-", suffix = ".alive") - log.kotlinDebug { CREATED_CLIENT_FILE_PREFIX + clientIsAliveFlagFile!!.canonicalPath } + log.kotlinDebug { CREATED_CLIENT_FILE_PREFIX + clientIsAliveFlagFile!!.normalize().absoluteFile } } else { - log.kotlinDebug { EXISTING_CLIENT_FILE_PREFIX + clientIsAliveFlagFile!!.canonicalPath } + log.kotlinDebug { EXISTING_CLIENT_FILE_PREFIX + clientIsAliveFlagFile!!.normalize().absoluteFile } } return clientIsAliveFlagFile!! @@ -437,9 +438,9 @@ internal open class GradleCompilerRunner( if (sessionFlagFile == null || !sessionFlagFile!!.exists()) { val sessionFilesDir = sessionsDir.apply { mkdirs() } sessionFlagFile = newTmpFile(prefix = "kotlin-compiler-", suffix = ".salive", directory = sessionFilesDir) - log.kotlinDebug { CREATED_SESSION_FILE_PREFIX + sessionFlagFile!!.relativeOrCanonical(projectCacheDirProvider) } + log.kotlinDebug { CREATED_SESSION_FILE_PREFIX + sessionFlagFile!!.relativeOrAbsolute(projectCacheDirProvider) } } else { - log.kotlinDebug { EXISTING_SESSION_FILE_PREFIX + sessionFlagFile!!.relativeOrCanonical(projectCacheDirProvider) } + log.kotlinDebug { EXISTING_SESSION_FILE_PREFIX + sessionFlagFile!!.relativeOrAbsolute(projectCacheDirProvider) } } return sessionFlagFile!! diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/compilerRunner/GradleKotlinCompilerWork.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/compilerRunner/GradleKotlinCompilerWork.kt index d78d70269f4..4e18ecd8d31 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/compilerRunner/GradleKotlinCompilerWork.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/compilerRunner/GradleKotlinCompilerWork.kt @@ -149,7 +149,7 @@ internal class GradleKotlinCompilerWork @Inject constructor( private fun compileWithDaemonOrFallbackImpl(messageCollector: MessageCollector): Pair { with(log) { kotlinDebug { "Kotlin compiler class: ${compilerClassName}" } - kotlinDebug { "Kotlin compiler classpath: ${compilerFullClasspath.joinToString { it.canonicalPath }}" } + kotlinDebug { "Kotlin compiler classpath: ${compilerFullClasspath.joinToString { it.normalize().absolutePath }}" } kotlinDebug { "$taskPath Kotlin compiler args: ${compilerArgs.joinToString(" ")}" } } diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/internal/ProcessedFilesCache.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/internal/ProcessedFilesCache.kt index 94b4b02a20a..1caa8110fd4 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/internal/ProcessedFilesCache.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/internal/ProcessedFilesCache.kt @@ -198,7 +198,7 @@ internal open class ProcessedFilesCache( state.remove(existedTarget) } } - state[hash] = Element(file.canonicalPath, key) + state[hash] = Element(file.normalize().absolutePath, key) return key } diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/internal/subpluginUtils.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/internal/subpluginUtils.kt index 60bb6379f7f..b0ed9a53d4a 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/internal/subpluginUtils.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/internal/subpluginUtils.kt @@ -57,7 +57,7 @@ internal fun CompilerPluginOptions.withWrappedKaptOptions( subpluginOptionsByPluginId.toMutableMap() resultOptionsByPluginId.compute(Kapt3GradleSubplugin.KAPT_SUBPLUGIN_ID) { _, kaptOptions -> - val changedFilesOption = changedFiles.map { SubpluginOption("changedFile", it.canonicalPath) } + val changedFilesOption = changedFiles.map { SubpluginOption("changedFile", it.normalize().absolutePath) } val classpathChangesOption = classpathChanges.map { SubpluginOption("classpathChange", it) } val processIncrementallyOption = SubpluginOption("processIncrementally", processIncrementally.toString()) val compiledSourcesOption = diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/AbstractKotlinPlugin.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/AbstractKotlinPlugin.kt index 93c9e2bab4b..981f2b770e9 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/AbstractKotlinPlugin.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/AbstractKotlinPlugin.kt @@ -81,7 +81,7 @@ internal abstract class AbstractKotlinPlugin( } val inspectTask = project.registerTask(INSPECT_IC_CLASSES_TASK_NAME) { inspectTask -> - inspectTask.archivePath.set(jarTask.map { it.archivePathCompatible.canonicalPath }) + inspectTask.archivePath.set(jarTask.map { it.archivePathCompatible.normalize().absolutePath }) inspectTask.archivePath.disallowChanges() inspectTask.sourceSetName.set(SourceSet.MAIN_SOURCE_SET_NAME) diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/KotlinGradleFinishBuildHandler.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/KotlinGradleFinishBuildHandler.kt index 3ed99067371..64b6273e0b1 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/KotlinGradleFinishBuildHandler.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/KotlinGradleFinishBuildHandler.kt @@ -11,7 +11,7 @@ import org.jetbrains.kotlin.compilerRunner.GradleCompilerRunner import org.jetbrains.kotlin.gradle.logging.kotlinDebug import org.jetbrains.kotlin.gradle.plugin.internal.state.TaskExecutionResults import org.jetbrains.kotlin.gradle.plugin.internal.state.TaskLoggers -import org.jetbrains.kotlin.gradle.utils.relativeOrCanonical +import org.jetbrains.kotlin.gradle.utils.relativeOrAbsolute import org.jetbrains.kotlin.utils.addToStdlib.sumByLong import java.io.File import java.lang.management.ManagementFactory @@ -45,11 +45,11 @@ internal class KotlinGradleFinishBuildHandler { // it is expected that only one session file per build exists // afaik is is not possible to run multiple gradle builds in one project since gradle locks some dirs if (sessionFiles.size > 1) { - log.warn("w: Detected multiple Kotlin daemon sessions at ${sessionsDir.relativeOrCanonical(projectCacheDir)}") + log.warn("w: Detected multiple Kotlin daemon sessions at ${sessionsDir.relativeOrAbsolute(projectCacheDir)}") } for (file in sessionFiles) { file.delete() - log.kotlinDebug { DELETED_SESSION_FILE_PREFIX + file.relativeOrCanonical(projectCacheDir) } + log.kotlinDebug { DELETED_SESSION_FILE_PREFIX + file.relativeOrAbsolute(projectCacheDir) } } } diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/android/internal/AndroidSubplugin.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/android/internal/AndroidSubplugin.kt index caa283e562f..a71e76bd4a8 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/android/internal/AndroidSubplugin.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/android/internal/AndroidSubplugin.kt @@ -168,7 +168,7 @@ class AndroidSubplugin : KotlinCompilerPluginSupportPlugin { buildString { append(name) append(';') - resDirectories.map { it.dir }.joinTo(this, separator = ";") { it.canonicalPath } + resDirectories.map { it.dir }.joinTo(this, separator = ";") { it.normalize().absolutePath } } } pluginOptions += CompositeSubpluginOption( diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/js/internal/RewriteSourceMapFilterReader.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/js/internal/RewriteSourceMapFilterReader.kt index 72e02d9eac9..499c6a1bfcf 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/js/internal/RewriteSourceMapFilterReader.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/js/internal/RewriteSourceMapFilterReader.kt @@ -144,7 +144,7 @@ open class RewriteSourceMapFilterReader( protected open fun transformString(value: String): String { val sourceFileResolved = File(srcSourceRoot) .resolve(value) - .canonicalFile + .normalize().absoluteFile val transformedPath = sourceFileResolved.relativeToOrNull(File(targetSourceRoot))?.path ?: return sourceFileResolved.path diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/tasks/KotlinCompileCommon.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/tasks/KotlinCompileCommon.kt index a3cc28636cc..6054ba0929a 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/tasks/KotlinCompileCommon.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/tasks/KotlinCompileCommon.kt @@ -82,7 +82,7 @@ abstract class KotlinCompileCommon @Inject constructor( with(args) { classpath = classpathList.joinToString(File.pathSeparator) - destination = destinationDirectory.get().asFile.canonicalPath + destination = destinationDirectory.get().asFile.normalize().absolutePath friendPaths = this@KotlinCompileCommon.friendPaths.files.map { it.absolutePath }.toTypedArray() refinesPaths = refinesMetadataPaths.map { it.absolutePath }.toTypedArray() diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/tasks/KotlinJsDce.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/tasks/KotlinJsDce.kt index e53319163eb..6c576fa35d5 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/tasks/KotlinJsDce.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/tasks/KotlinJsDce.kt @@ -33,7 +33,7 @@ import org.jetbrains.kotlin.gradle.dsl.KotlinJsDceCompilerToolOptionsDefault import org.jetbrains.kotlin.gradle.dsl.KotlinJsDce import org.jetbrains.kotlin.gradle.dsl.KotlinJsDceOptions import org.jetbrains.kotlin.gradle.logging.GradleKotlinLogger -import org.jetbrains.kotlin.gradle.utils.canonicalPathWithoutExtension +import org.jetbrains.kotlin.gradle.utils.absolutePathWithoutExtension import org.jetbrains.kotlin.gradle.utils.fileExtensionCasePermutations import org.jetbrains.kotlin.gradle.utils.newInstance import java.io.File @@ -160,7 +160,7 @@ abstract class KotlinJsDce @Inject constructor( return false } - return File("${file.canonicalPathWithoutExtension()}.meta.js").exists() + return File("${file.absolutePathWithoutExtension()}.meta.js").exists() } companion object { diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/tasks/Tasks.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/tasks/Tasks.kt index 142fbce10cf..7dfee41a6a0 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/tasks/Tasks.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/tasks/Tasks.kt @@ -1150,7 +1150,7 @@ abstract class Kotlin2JsCompile @Inject constructor( val dependencies = libraries .filter { it.exists() && libraryFilter(it) } - .map { it.canonicalPath } + .map { it.normalize().absolutePath } args.libraries = dependencies.distinct().let { if (it.isNotEmpty()) diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/utils/fileUtils.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/utils/fileUtils.kt index cc7f24a7f8d..d6a5a2c97f8 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/utils/fileUtils.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/utils/fileUtils.kt @@ -5,7 +5,6 @@ package org.jetbrains.kotlin.gradle.utils -import org.gradle.api.InvalidUserCodeException import org.gradle.api.Project import java.io.File import java.io.IOException @@ -44,17 +43,17 @@ internal fun String.fileExtensionCasePermutations(): List { return result } -internal fun File.relativeOrCanonical(base: File): String = - relativeToOrNull(base)?.path ?: canonicalPath +internal fun File.relativeOrAbsolute(base: File): String = + relativeToOrNull(base)?.path ?: normalize().absolutePath internal fun Iterable.pathsAsStringRelativeTo(base: File): String = - map { it.relativeOrCanonical(base) }.sorted().joinToString() + map { it.relativeOrAbsolute(base) }.sorted().joinToString() internal fun File.relativeToRoot(project: Project): String = - relativeOrCanonical(project.rootProject.rootDir) + relativeOrAbsolute(project.rootProject.rootDir) internal fun Iterable.toPathsArray(): Array = - map { it.canonicalPath }.toTypedArray() + map { it.normalize().absolutePath }.toTypedArray() internal fun newTmpFile(prefix: String, suffix: String? = null, directory: File? = null, deleteOnExit: Boolean = true): File { return try { @@ -82,8 +81,8 @@ internal fun File.isParentOf(childCandidate: File, strict: Boolean = false): Boo } } -internal fun File.canonicalPathWithoutExtension(): String = - canonicalPath.substringBeforeLast(".") +internal fun File.absolutePathWithoutExtension(): String = + normalize().absolutePath.substringBeforeLast(".") internal fun File.listFilesOrEmpty() = (if (exists()) listFiles() else null).orEmpty() diff --git a/plugins/kapt3/kapt3-base/src/org/jetbrains/kotlin/kapt3/base/KaptContext.kt b/plugins/kapt3/kapt3-base/src/org/jetbrains/kotlin/kapt3/base/KaptContext.kt index a573f5f0599..ff30bd16338 100644 --- a/plugins/kapt3/kapt3-base/src/org/jetbrains/kotlin/kapt3/base/KaptContext.kt +++ b/plugins/kapt3/kapt3-base/src/org/jetbrains/kotlin/kapt3/base/KaptContext.kt @@ -127,8 +127,8 @@ open class KaptContext(val options: KaptOptions, val withJdk: Boolean, val logge @Suppress("SpellCheckingInspection") putJavacOption("PROCESSORPATH", "PROCESSOR_PATH", options.processingClasspath.makePathsString()) - put(Option.S, options.sourcesOutputDir.canonicalPath) - put(Option.D, options.classesOutputDir.canonicalPath) + put(Option.S, options.sourcesOutputDir.normalize().absolutePath) + put(Option.D, options.classesOutputDir.normalize().absolutePath) put(Option.ENCODING, "UTF-8") } @@ -168,6 +168,6 @@ open class KaptContext(val options: KaptOptions, val withJdk: Boolean, val logge companion object { const val MODULE_INFO_FILE = "module-info.java" - private fun Iterable.makePathsString(): String = joinToString(File.pathSeparator) { it.canonicalPath } + private fun Iterable.makePathsString(): String = joinToString(File.pathSeparator) { it.normalize().absolutePath } } } diff --git a/plugins/kapt3/kapt3-base/src/org/jetbrains/kotlin/kapt3/base/KaptOptions.kt b/plugins/kapt3/kapt3-base/src/org/jetbrains/kotlin/kapt3/base/KaptOptions.kt index b460230f0e7..e9ef5860f8c 100644 --- a/plugins/kapt3/kapt3-base/src/org/jetbrains/kotlin/kapt3/base/KaptOptions.kt +++ b/plugins/kapt3/kapt3-base/src/org/jetbrains/kotlin/kapt3/base/KaptOptions.kt @@ -157,7 +157,7 @@ fun KaptOptions.collectJavaSourceFiles(sourcesToReprocess: SourcesToReprocess = .sortedBy { Files.isSymbolicLink(it.toPath()) } // Get non-symbolic paths first .flatMap { root -> root.walk().filter { it.isFile && it.extension == "java" }.toList() } .sortedBy { Files.isSymbolicLink(it.toPath()) } // This time is for .java files - .distinctBy { it.canonicalPath } + .distinctBy { it.normalize().absolutePath } } return when (sourcesToReprocess) { diff --git a/plugins/kapt3/kapt3-compiler/src/org/jetbrains/kotlin/kapt3/Kapt3Extension.kt b/plugins/kapt3/kapt3-compiler/src/org/jetbrains/kotlin/kapt3/Kapt3Extension.kt index 07b414c44f9..0471fe1b940 100644 --- a/plugins/kapt3/kapt3-compiler/src/org/jetbrains/kotlin/kapt3/Kapt3Extension.kt +++ b/plugins/kapt3/kapt3-compiler/src/org/jetbrains/kotlin/kapt3/Kapt3Extension.kt @@ -230,7 +230,7 @@ abstract class AbstractKapt3Extension( if (!options.mode.runAnnotationProcessing) return val javaSourceFiles = options.collectJavaSourceFiles(kaptContext.sourcesToReprocess) - logger.info { "Java source files: " + javaSourceFiles.joinToString { it.canonicalPath } } + logger.info { "Java source files: " + javaSourceFiles.joinToString { it.normalize().absolutePath } } val (annotationProcessingTime) = measureTimeMillis { kaptContext.doAnnotationProcessing(javaSourceFiles, processors.processors)