From 34e697e99178aec50026547f97e693704ac3b637 Mon Sep 17 00:00:00 2001 From: Anton Bannykh Date: Mon, 27 Mar 2017 18:44:53 +0300 Subject: [PATCH] JS: add suffix '_test' to test module output files to avoid name conflicts (KT-16979) Also stop setting AMD module ids explicitly. Original commit: 4086a84622aa7370cbd10702df1738ae58ca0014 --- .../jetbrains/kotlin/jps/build/KotlinJpsBuildTest.kt | 7 +++---- .../org/jetbrains/kotlin/jps/build/JpsJsModuleUtils.kt | 10 +++++++--- .../org/jetbrains/kotlin/jps/build/KotlinBuilder.kt | 6 +++--- 3 files changed, 13 insertions(+), 10 deletions(-) diff --git a/jps/jps-plugin/jps-tests/test/org/jetbrains/kotlin/jps/build/KotlinJpsBuildTest.kt b/jps/jps-plugin/jps-tests/test/org/jetbrains/kotlin/jps/build/KotlinJpsBuildTest.kt index 6111345beaf..84c75152714 100644 --- a/jps/jps-plugin/jps-tests/test/org/jetbrains/kotlin/jps/build/KotlinJpsBuildTest.kt +++ b/jps/jps-plugin/jps-tests/test/org/jetbrains/kotlin/jps/build/KotlinJpsBuildTest.kt @@ -133,8 +133,8 @@ class KotlinJpsBuildTest : AbstractKotlinJpsBuildTestCase() { val list = arrayListOf() for (moduleName in moduleNames) { val outputDir = File("out/production/$moduleName") - list.add(toSystemIndependentName(JpsJsModuleUtils.getOutputFile(outputDir, moduleName).path)) - list.add(toSystemIndependentName(JpsJsModuleUtils.getOutputMetaFile(outputDir, moduleName).path)) + list.add(toSystemIndependentName(JpsJsModuleUtils.getOutputFile(outputDir, moduleName, false).path)) + list.add(toSystemIndependentName(JpsJsModuleUtils.getOutputMetaFile(outputDir, moduleName, false).path)) } return list.toTypedArray() } @@ -389,8 +389,7 @@ class KotlinJpsBuildTest : AbstractKotlinJpsBuildTestCase() { buildResult.assertSuccessful() val warnings = buildResult.getMessages(BuildMessage.Kind.WARNING) - assertEquals("Warning about duplicate module definition: $warnings", 1, warnings.size) - assertEquals("Module \"srcAndTests\" is defined in more than one file", warnings[0].messageText) + assertEquals("Warning about duplicate module definition: $warnings", 0, warnings.size) } fun testKotlinJavaScriptProjectWithTwoSrcModuleDependency() { diff --git a/jps/jps-plugin/src/org/jetbrains/kotlin/jps/build/JpsJsModuleUtils.kt b/jps/jps-plugin/src/org/jetbrains/kotlin/jps/build/JpsJsModuleUtils.kt index be1021991db..476c3d2179c 100644 --- a/jps/jps-plugin/src/org/jetbrains/kotlin/jps/build/JpsJsModuleUtils.kt +++ b/jps/jps-plugin/src/org/jetbrains/kotlin/jps/build/JpsJsModuleUtils.kt @@ -62,7 +62,7 @@ object JpsJsModuleUtils { fun addTarget(module: JpsModule, targetType: JavaModuleBuildTargetType) { val moduleBuildTarget = ModuleBuildTarget(module, targetType) val outputDir = KotlinBuilderModuleScriptGenerator.getOutputDirSafe(moduleBuildTarget) - val metaInfoFile = getOutputMetaFile(outputDir, module.name) + val metaInfoFile = getOutputMetaFile(outputDir, module.name, targetType.isTests) if (metaInfoFile.exists()) { result.add(metaInfoFile.absolutePath) } @@ -71,8 +71,12 @@ object JpsJsModuleUtils { } @JvmStatic - fun getOutputFile(outputDir: File, moduleName: String) = File(outputDir, moduleName + KotlinJavascriptMetadataUtils.JS_EXT) + fun getOutputFile(outputDir: File, moduleName: String, isTests: Boolean) + = File(outputDir, moduleName + suffix(isTests) + KotlinJavascriptMetadataUtils.JS_EXT) @JvmStatic - fun getOutputMetaFile(outputDir: File, moduleName: String) = File(outputDir, moduleName + KotlinJavascriptMetadataUtils.META_JS_SUFFIX) + fun getOutputMetaFile(outputDir: File, moduleName: String, isTests: Boolean) + = File(outputDir, moduleName + suffix(isTests) + KotlinJavascriptMetadataUtils.META_JS_SUFFIX) + + private fun suffix(isTests: Boolean) = if (isTests) "_test" else "" } diff --git a/jps/jps-plugin/src/org/jetbrains/kotlin/jps/build/KotlinBuilder.kt b/jps/jps-plugin/src/org/jetbrains/kotlin/jps/build/KotlinBuilder.kt index 7ceda24399c..6faadd0ac80 100644 --- a/jps/jps-plugin/src/org/jetbrains/kotlin/jps/build/KotlinBuilder.kt +++ b/jps/jps-plugin/src/org/jetbrains/kotlin/jps/build/KotlinBuilder.kt @@ -294,7 +294,7 @@ class KotlinBuilder : ModuleLevelBuilder(BuilderCategory.SOURCE_PROCESSOR) { } if (JpsUtils.isJsKotlinModule(chunk.representativeTarget())) { - copyJsLibraryFilesIfNeeded(chunk, project) + copyJsLibraryFilesIfNeeded(chunk) return OK } @@ -666,7 +666,7 @@ class KotlinBuilder : ModuleLevelBuilder(BuilderCategory.SOURCE_PROCESSOR) { val representativeModule = representativeTarget.module val moduleName = representativeModule.name - val outputFile = JpsJsModuleUtils.getOutputFile(outputDir, moduleName) + val outputFile = JpsJsModuleUtils.getOutputFile(outputDir, moduleName, representativeTarget.isTests) val libraries = JpsJsModuleUtils.getLibraryFilesAndDependencies(representativeTarget) val compilerSettings = JpsKotlinCompilerSettings.getCompilerSettings(representativeModule) val k2JsArguments = JpsKotlinCompilerSettings.getK2JsCompilerArguments(representativeModule) @@ -676,7 +676,7 @@ class KotlinBuilder : ModuleLevelBuilder(BuilderCategory.SOURCE_PROCESSOR) { return environment.outputItemsCollector } - private fun copyJsLibraryFilesIfNeeded(chunk: ModuleChunk, project: JpsProject) { + private fun copyJsLibraryFilesIfNeeded(chunk: ModuleChunk) { val representativeTarget = chunk.representativeTarget() val outputDir = KotlinBuilderModuleScriptGenerator.getOutputDirSafe(representativeTarget) val compilerSettings = JpsKotlinCompilerSettings.getCompilerSettings(representativeTarget.module)