diff --git a/jps/jps-plugin/build.gradle.kts b/jps/jps-plugin/build.gradle.kts
index c1b73d11bfc..1ef61071065 100644
--- a/jps/jps-plugin/build.gradle.kts
+++ b/jps/jps-plugin/build.gradle.kts
@@ -27,6 +27,7 @@ dependencies {
testCompile(projectTests(":kotlin-build-common"))
testCompileOnly(intellijDep("jps-standalone")) { includeJars("jps-builders", "jps-builders-6") }
testCompileOnly(intellijDep()) { includeJars("openapi", "idea", "platform-api", "log4j") }
+ testCompile(intellijDep("devkit"))
testCompile(intellijDep("jps-build-test"))
compilerModules.forEach {
testRuntime(project(it))
diff --git a/jps/jps-plugin/build.gradle.kts.173 b/jps/jps-plugin/build.gradle.kts.173
index 01d8ffabb1d..d4ff8f3f456 100644
--- a/jps/jps-plugin/build.gradle.kts.173
+++ b/jps/jps-plugin/build.gradle.kts.173
@@ -27,6 +27,7 @@ dependencies {
testCompile(projectTests(":kotlin-build-common"))
testCompileOnly(intellijDep("jps-standalone")) { includeJars("jps-builders", "jps-builders-6") }
testCompileOnly(intellijDep()) { includeJars("openapi", "idea", "log4j") }
+ testCompile(intellijDep("devkit"))
testCompile(intellijDep("jps-build-test"))
compilerModules.forEach {
testRuntime(project(it))
diff --git a/jps/jps-plugin/build.gradle.kts.as31 b/jps/jps-plugin/build.gradle.kts.as31
index 90688be0dcf..5edfc059557 100644
--- a/jps/jps-plugin/build.gradle.kts.as31
+++ b/jps/jps-plugin/build.gradle.kts.as31
@@ -27,6 +27,7 @@ dependencies {
testCompile(projectTests(":kotlin-build-common"))
testCompileOnly(intellijDep("jps-standalone")) { includeJars("jps-builders", "jps-builders-6") }
testCompileOnly(intellijDep()) { includeJars("openapi", "idea", "log4j") }
+ testCompile(intellijDep("devkit"))
testCompile(intellijDep("jps-build-test"))
compilerModules.forEach {
testRuntime(project(it))
diff --git a/jps/jps-plugin/build.gradle.kts.as32 b/jps/jps-plugin/build.gradle.kts.as32
index cda3049efd3..06df796d5d8 100644
--- a/jps/jps-plugin/build.gradle.kts.as32
+++ b/jps/jps-plugin/build.gradle.kts.as32
@@ -27,6 +27,7 @@ dependencies {
testCompile(projectTests(":kotlin-build-common"))
testCompileOnly(intellijDep("jps-standalone")) { includeJars("jps-builders", "jps-builders-6") }
testCompileOnly(intellijDep()) { includeJars("openapi", "idea", "platform-api", "log4j") }
+ testCompile(intellijDep("devkit"))
testCompile(intellijDep("jps-build-test"))
compilerModules.forEach {
testRuntime(project(it))
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 dd5f0f392a1..640942dc42f 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
@@ -35,6 +35,7 @@ import org.jetbrains.jps.builders.TestProjectBuilderLogger
import org.jetbrains.jps.builders.impl.BuildDataPathsImpl
import org.jetbrains.jps.builders.logging.BuildLoggingManager
import org.jetbrains.jps.cmdline.ProjectDescriptor
+import org.jetbrains.jps.devkit.model.JpsPluginModuleType
import org.jetbrains.jps.incremental.BuilderRegistry
import org.jetbrains.jps.incremental.CompileContext
import org.jetbrains.jps.incremental.IncProjectBuilder
@@ -677,6 +678,12 @@ open class KotlinJpsBuildTest : AbstractKotlinJpsBuildTestCase() {
result.assertSuccessful()
}
+ fun testDevKitProject() {
+ initProject(JVM_MOCK_RUNTIME)
+ assertEquals(myProject.modules.single().moduleType, JpsPluginModuleType.INSTANCE)
+ buildAllModules().assertSuccessful()
+ }
+
fun testAccessToInternalInProductionFromTests() {
initProject(JVM_MOCK_RUNTIME)
val result = buildAllModules()
diff --git a/jps/jps-plugin/jps-tests/test/org/jetbrains/kotlin/jps/build/KotlinJpsBuildTest.kt.172 b/jps/jps-plugin/jps-tests/test/org/jetbrains/kotlin/jps/build/KotlinJpsBuildTest.kt.172
index 70815053022..8dccc1a0246 100644
--- a/jps/jps-plugin/jps-tests/test/org/jetbrains/kotlin/jps/build/KotlinJpsBuildTest.kt.172
+++ b/jps/jps-plugin/jps-tests/test/org/jetbrains/kotlin/jps/build/KotlinJpsBuildTest.kt.172
@@ -676,6 +676,12 @@ open class KotlinJpsBuildTest : AbstractKotlinJpsBuildTestCase() {
result.assertSuccessful()
}
+ fun testDevKitProject() {
+ initProject(JVM_MOCK_RUNTIME)
+ assertEquals(myProject.modules.single().moduleType, JpsPluginModuleType.INSTANCE)
+ buildAllModules().assertSuccessful()
+ }
+
fun testAccessToInternalInProductionFromTests() {
initProject(JVM_MOCK_RUNTIME)
val result = buildAllModules()
diff --git a/jps/jps-plugin/src/org/jetbrains/kotlin/jps/platforms/TargetPlatform.kt b/jps/jps-plugin/src/org/jetbrains/kotlin/jps/platforms/TargetPlatform.kt
index 9eccc19eb99..5db26796c95 100644
--- a/jps/jps-plugin/src/org/jetbrains/kotlin/jps/platforms/TargetPlatform.kt
+++ b/jps/jps-plugin/src/org/jetbrains/kotlin/jps/platforms/TargetPlatform.kt
@@ -6,6 +6,7 @@
package org.jetbrains.kotlin.jps.platforms
import com.intellij.openapi.util.Key
+import org.jetbrains.jps.builders.ModuleBasedBuildTargetType
import org.jetbrains.jps.builders.java.JavaModuleBuildTargetType
import org.jetbrains.jps.incremental.CompileContext
import org.jetbrains.jps.incremental.ModuleBuildTarget
@@ -55,7 +56,7 @@ class KotlinBuildTargets internal constructor(val compileContext: CompileContext
}
operator fun get(target: ModuleBuildTarget): KotlinModuleBuilderTarget? {
- if (target.module.moduleType != JpsJavaModuleType.INSTANCE) return null
+ if (target.targetType !is ModuleBasedBuildTargetType) return null
return byJpsModuleBuildTarget.computeIfAbsent(target) {
when (target.module.targetPlatform ?: detectTargetPlatform(target)) {
diff --git a/jps/jps-plugin/testData/general/DevKitProject/kotlinProject.iml b/jps/jps-plugin/testData/general/DevKitProject/kotlinProject.iml
new file mode 100644
index 00000000000..e025b203cd5
--- /dev/null
+++ b/jps/jps-plugin/testData/general/DevKitProject/kotlinProject.iml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/jps/jps-plugin/testData/general/DevKitProject/kotlinProject.ipr b/jps/jps-plugin/testData/general/DevKitProject/kotlinProject.ipr
new file mode 100644
index 00000000000..cacdb365adc
--- /dev/null
+++ b/jps/jps-plugin/testData/general/DevKitProject/kotlinProject.ipr
@@ -0,0 +1,19 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/jps/jps-plugin/testData/general/DevKitProject/resources/META-INF/plugin.xml b/jps/jps-plugin/testData/general/DevKitProject/resources/META-INF/plugin.xml
new file mode 100644
index 00000000000..ab17bc27255
--- /dev/null
+++ b/jps/jps-plugin/testData/general/DevKitProject/resources/META-INF/plugin.xml
@@ -0,0 +1,35 @@
+
+ com.your.company.unique.plugin.id
+ Plugin display name here
+ 1.0
+ YourCompany
+
+
+ most HTML tags may be used
+ ]]>
+
+
+ most HTML tags may be used
+ ]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/jps/jps-plugin/testData/general/DevKitProject/src/test.kt b/jps/jps-plugin/testData/general/DevKitProject/src/test.kt
new file mode 100644
index 00000000000..adb5b33c573
--- /dev/null
+++ b/jps/jps-plugin/testData/general/DevKitProject/src/test.kt
@@ -0,0 +1,3 @@
+fun main(args: Array) {
+
+}
\ No newline at end of file