jps(refactor): Extract platform related code
#KT-23656 Fixed
(cherry picked from commit 18a751d)
Original commit: 75e6be7802
This commit is contained in:
+3
@@ -50,6 +50,9 @@ import org.jetbrains.kotlin.incremental.isJavaFile
|
||||
import org.jetbrains.kotlin.incremental.testingUtils.*
|
||||
import org.jetbrains.kotlin.jps.incremental.getKotlinCache
|
||||
import org.jetbrains.kotlin.jps.incremental.withLookupStorage
|
||||
import org.jetbrains.kotlin.jps.model.JpsKotlinFacetModuleExtension
|
||||
import org.jetbrains.kotlin.jps.model.kotlinFacetExtension
|
||||
import org.jetbrains.kotlin.jps.platforms.clearKotlinModuleBuildTargetDataBindings
|
||||
import org.jetbrains.kotlin.test.KotlinTestUtils
|
||||
import org.jetbrains.kotlin.utils.Printer
|
||||
import org.jetbrains.kotlin.utils.keysToMap
|
||||
|
||||
+2
@@ -17,6 +17,7 @@
|
||||
package org.jetbrains.kotlin.jps.build
|
||||
|
||||
import org.jetbrains.jps.builders.JpsBuildTestCase
|
||||
import org.jetbrains.kotlin.jps.platforms.clearKotlinModuleBuildTargetDataBindings
|
||||
|
||||
abstract class BaseKotlinJpsBuildTestCase : JpsBuildTestCase() {
|
||||
@Throws(Exception::class)
|
||||
@@ -33,5 +34,6 @@ abstract class BaseKotlinJpsBuildTestCase : JpsBuildTestCase() {
|
||||
super.tearDown()
|
||||
myModel = null
|
||||
myBuildParams.clear()
|
||||
clearKotlinModuleBuildTargetDataBindings()
|
||||
}
|
||||
}
|
||||
@@ -62,6 +62,10 @@ import org.jetbrains.kotlin.incremental.components.LookupTracker
|
||||
import org.jetbrains.kotlin.incremental.withIC
|
||||
import org.jetbrains.kotlin.jps.JpsKotlinCompilerSettings
|
||||
import org.jetbrains.kotlin.jps.build.KotlinJpsBuildTest.LibraryDependency.*
|
||||
import org.jetbrains.kotlin.jps.platforms.KotlinJsModuleBuildTarget
|
||||
import org.jetbrains.kotlin.jps.platforms.clearKotlinModuleBuildTargetDataBindings
|
||||
import org.jetbrains.kotlin.jps.platforms.kotlinData
|
||||
import org.jetbrains.kotlin.jps.platforms.productionBuildTarget
|
||||
import org.jetbrains.kotlin.load.kotlin.PackagePartClassUtils
|
||||
import org.jetbrains.kotlin.name.FqName
|
||||
import org.jetbrains.kotlin.test.KotlinTestUtils
|
||||
@@ -248,17 +252,22 @@ open class KotlinJpsBuildTest : AbstractKotlinJpsBuildTestCase() {
|
||||
}
|
||||
|
||||
private fun k2jsOutput(vararg moduleNames: String): Array<String> {
|
||||
val list = arrayListOf<String>()
|
||||
for (moduleName in moduleNames) {
|
||||
val outputDir = File("out/production/$moduleName")
|
||||
list.add(toSystemIndependentName(JpsJsModuleUtils.getOutputFile(outputDir, moduleName, false).path))
|
||||
list.add(toSystemIndependentName(JpsJsModuleUtils.getOutputMetaFile(outputDir, moduleName, false).path))
|
||||
val moduleNamesSet = moduleNames.toSet()
|
||||
val list = mutableListOf<String>()
|
||||
|
||||
val kjsmFiles = File(workDir, outputDir.path).walk()
|
||||
.filter { it.isFile && it.extension.equals("kjsm", ignoreCase = true) }
|
||||
list.addAll(kjsmFiles.map { toSystemIndependentName(it.relativeTo(workDir).path) })
|
||||
myProject.modules.forEach {
|
||||
if (it.name in moduleNamesSet) {
|
||||
val productionTarget = it.productionBuildTarget.kotlinData as KotlinJsModuleBuildTarget
|
||||
list.add(toSystemIndependentName(productionTarget.outputFile.relativeTo(workDir).path))
|
||||
list.add(toSystemIndependentName(productionTarget.outputMetaFile.relativeTo(workDir).path))
|
||||
|
||||
val kjsmFiles = productionTarget.outputDir.walk()
|
||||
.filter { it.isFile && it.extension.equals("kjsm", ignoreCase = true) }
|
||||
|
||||
list.addAll(kjsmFiles.map { toSystemIndependentName(it.relativeTo(workDir).path) })
|
||||
}
|
||||
}
|
||||
|
||||
return list.toTypedArray()
|
||||
}
|
||||
|
||||
@@ -1057,6 +1066,8 @@ open class KotlinJpsBuildTest : AbstractKotlinJpsBuildTestCase() {
|
||||
}
|
||||
|
||||
protected fun checkWhen(actions: Array<Action>, pathsToCompile: Array<String>?, pathsToDelete: Array<String>?) {
|
||||
clearKotlinModuleBuildTargetDataBindings()
|
||||
|
||||
for (action in actions) {
|
||||
action.apply()
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user