[AllOpen] Reorganize module structure of AllOpen plugin

This scheme will be common for all compiler plugins with K1 and K2 support:
- `plugin-common` contains classes shared with K1 and K2 implementations (if any)
- `plugin-k1` contains implementation for K1 compiler
- `plugin-k2` contains implementation for K2 compiler
- `plugin-backend` contains implementation for backend extensions (if any)
- `plugin-cli` is module for registration of plugin in CLI compiler
- `plugin` is a root module with tests and all submodules embedded

This structure is needed to distinguish parts related to different frontends,
  which is needed for proper dependencies settings for Kotlin IDE plugins
This commit is contained in:
Dmitriy Novozhilov
2022-05-17 13:09:56 +03:00
committed by teamcity
parent 22ebea8174
commit 2a7dc1cc0c
52 changed files with 199 additions and 114 deletions
+2 -2
View File
@@ -63,7 +63,7 @@
<option value="$PROJECT_DIR$/compiler/tests-spec/testData" />
<option value="$PROJECT_DIR$/js/js.translator/testData" />
<option value="$PROJECT_DIR$/compiler/fir/raw-fir/psi2fir/testData" />
<option value="$PROJECT_DIR$/plugins/allopen/allopen-cli/testData" />
<option value="$PROJECT_DIR$/plugins/allopen/testData" />
<option value="$PROJECT_DIR$/plugins/android-extensions/android-extensions-compiler/testData" />
<option value="$PROJECT_DIR$/plugins/atomicfu/atomicfu-compiler/testData" />
<option value="$PROJECT_DIR$/plugins/fir-plugin-prototype/testData" />
@@ -80,4 +80,4 @@
</array>
</option>
</component>
</project>
</project>
@@ -402,7 +402,7 @@ fun main(args: Array<String>) {
}
}
testGroup("plugins/allopen/allopen-cli/tests-gen", "plugins/allopen/allopen-cli/testData") {
testGroup("plugins/allopen/tests-gen", "plugins/allopen/testData") {
testClass<AbstractBytecodeListingTestForAllOpen> {
model("bytecodeListing", excludedPattern = excludedFirTestdataPattern)
}
@@ -1,56 +0,0 @@
description = "Kotlin AllOpen Compiler Plugin"
plugins {
kotlin("jvm")
id("jps-compatible")
}
dependencies {
compileOnly(project(":compiler:plugin-api"))
compileOnly(project(":compiler:frontend"))
compileOnly(project(":compiler:fir:cones"))
compileOnly(project(":compiler:fir:tree"))
compileOnly(project(":compiler:fir:resolve"))
compileOnly(project(":compiler:fir:checkers"))
compileOnly(project(":compiler:ir.backend.common"))
compileOnly(project(":compiler:fir:entrypoint"))
compileOnly(intellijCore())
runtimeOnly(kotlinStdlib())
testApi(project(":compiler:backend"))
testApi(project(":compiler:cli"))
testApi(intellijCore())
testApiJUnit5()
testApi(projectTests(":compiler:tests-common-new"))
testApi(projectTests(":compiler:test-infrastructure"))
testApi(projectTests(":compiler:test-infrastructure-utils"))
testApi(project(":compiler:fir:checkers"))
testRuntimeOnly(project(":compiler:fir:fir-serialization"))
testCompileOnly(project(":kotlin-reflect-api"))
testRuntimeOnly(project(":kotlin-reflect"))
testRuntimeOnly(project(":core:descriptors.runtime"))
}
sourceSets {
"main" { projectDefault() }
"test" {
projectDefault()
generatedTestDir()
}
}
runtimeJar()
sourcesJar()
javadocJar()
testsJar()
projectTest(parallel = true) {
workingDir = rootDir
useJUnitPlatform()
}
@@ -0,0 +1,33 @@
description = "Kotlin AllOpen Compiler Plugin (CLI)"
plugins {
kotlin("jvm")
id("jps-compatible")
}
dependencies {
implementation(project(":kotlin-allopen-compiler-plugin.k1"))
implementation(project(":kotlin-allopen-compiler-plugin.k2"))
compileOnly(project(":compiler:plugin-api"))
compileOnly(project(":compiler:frontend"))
compileOnly(project(":compiler:fir:cones"))
compileOnly(project(":compiler:fir:tree"))
compileOnly(project(":compiler:fir:resolve"))
compileOnly(project(":compiler:fir:checkers"))
compileOnly(project(":compiler:ir.backend.common"))
compileOnly(project(":compiler:fir:entrypoint"))
compileOnly(intellijCore())
runtimeOnly(kotlinStdlib())
}
sourceSets {
"main" { projectDefault() }
"test" { none() }
}
runtimeJar()
sourcesJar()
javadocJar()
@@ -0,0 +1,23 @@
description = "Kotlin AllOpen Compiler Plugin (K1)"
plugins {
kotlin("jvm")
id("jps-compatible")
}
dependencies {
compileOnly(project(":compiler:plugin-api"))
compileOnly(project(":compiler:frontend"))
compileOnly(intellijCore())
runtimeOnly(kotlinStdlib())
}
sourceSets {
"main" { projectDefault() }
"test" { none() }
}
runtimeJar()
sourcesJar()
javadocJar()
@@ -0,0 +1,27 @@
description = "Kotlin AllOpen Compiler Plugin (K2)"
plugins {
kotlin("jvm")
id("jps-compatible")
}
dependencies {
compileOnly(project(":compiler:fir:cones"))
compileOnly(project(":compiler:fir:tree"))
compileOnly(project(":compiler:fir:resolve"))
compileOnly(project(":compiler:fir:checkers"))
compileOnly(project(":compiler:ir.backend.common"))
compileOnly(project(":compiler:fir:entrypoint"))
compileOnly(intellijCore())
runtimeOnly(kotlinStdlib())
}
sourceSets {
"main" { projectDefault() }
"test" { none() }
}
runtimeJar()
sourcesJar()
javadocJar()
+50
View File
@@ -0,0 +1,50 @@
description = "Kotlin AllOpen Compiler Plugin"
plugins {
kotlin("jvm")
id("jps-compatible")
}
dependencies {
embedded(project(":kotlin-allopen-compiler-plugin.cli")) { isTransitive = false }
embedded(project(":kotlin-allopen-compiler-plugin.k1")) { isTransitive = false }
embedded(project(":kotlin-allopen-compiler-plugin.k2")) { isTransitive = false }
testImplementation(project(":kotlin-allopen-compiler-plugin"))
testImplementation(project(":kotlin-allopen-compiler-plugin.k1"))
testImplementation(project(":kotlin-allopen-compiler-plugin.k2"))
testImplementation(project(":kotlin-allopen-compiler-plugin.cli"))
testImplementation(project(":compiler:backend"))
testImplementation(project(":compiler:cli"))
testImplementation(intellijCore())
testApiJUnit5()
testImplementation(projectTests(":compiler:tests-common-new"))
testImplementation(projectTests(":compiler:test-infrastructure"))
testImplementation(projectTests(":compiler:test-infrastructure-utils"))
testImplementation(project(":compiler:fir:checkers"))
testRuntimeOnly(project(":compiler:fir:fir-serialization"))
testCompileOnly(project(":kotlin-reflect-api"))
testRuntimeOnly(project(":kotlin-reflect"))
testRuntimeOnly(project(":core:descriptors.runtime"))
}
sourceSets {
"main" { none() }
"test" {
projectDefault()
generatedTestDir()
}
}
runtimeJar()
sourcesJar()
javadocJar()
testsJar()
projectTest(parallel = true) {
workingDir = rootDir
useJUnitPlatform()
}
@@ -17,101 +17,101 @@ import java.util.regex.Pattern;
/** This class is generated by {@link GenerateNewCompilerTests.kt}. DO NOT MODIFY MANUALLY */
@SuppressWarnings("all")
@TestMetadata("plugins/allopen/allopen-cli/testData/bytecodeListing")
@TestMetadata("plugins/allopen/testData/bytecodeListing")
@TestDataPath("$PROJECT_ROOT")
public class BytecodeListingTestForAllOpenGenerated extends AbstractBytecodeListingTestForAllOpen {
@Test
public void testAllFilesPresentInBytecodeListing() throws Exception {
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("plugins/allopen/allopen-cli/testData/bytecodeListing"), Pattern.compile("^(.+)\\.kt$"), Pattern.compile("^(.+)\\.fir\\.kts?$"), TargetBackend.JVM, true);
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("plugins/allopen/testData/bytecodeListing"), Pattern.compile("^(.+)\\.kt$"), Pattern.compile("^(.+)\\.fir\\.kts?$"), TargetBackend.JVM, true);
}
@Test
@TestMetadata("allOpenOnNotClasses.kt")
public void testAllOpenOnNotClasses() throws Exception {
runTest("plugins/allopen/allopen-cli/testData/bytecodeListing/allOpenOnNotClasses.kt");
runTest("plugins/allopen/testData/bytecodeListing/allOpenOnNotClasses.kt");
}
@Test
@TestMetadata("alreadyOpen.kt")
public void testAlreadyOpen() throws Exception {
runTest("plugins/allopen/allopen-cli/testData/bytecodeListing/alreadyOpen.kt");
runTest("plugins/allopen/testData/bytecodeListing/alreadyOpen.kt");
}
@Test
@TestMetadata("annotationMembers.kt")
public void testAnnotationMembers() throws Exception {
runTest("plugins/allopen/allopen-cli/testData/bytecodeListing/annotationMembers.kt");
runTest("plugins/allopen/testData/bytecodeListing/annotationMembers.kt");
}
@Test
@TestMetadata("anonymousObject.kt")
public void testAnonymousObject() throws Exception {
runTest("plugins/allopen/allopen-cli/testData/bytecodeListing/anonymousObject.kt");
runTest("plugins/allopen/testData/bytecodeListing/anonymousObject.kt");
}
@Test
@TestMetadata("explicitFinal.kt")
public void testExplicitFinal() throws Exception {
runTest("plugins/allopen/allopen-cli/testData/bytecodeListing/explicitFinal.kt");
runTest("plugins/allopen/testData/bytecodeListing/explicitFinal.kt");
}
@Test
@TestMetadata("metaAnnotation.kt")
public void testMetaAnnotation() throws Exception {
runTest("plugins/allopen/allopen-cli/testData/bytecodeListing/metaAnnotation.kt");
runTest("plugins/allopen/testData/bytecodeListing/metaAnnotation.kt");
}
@Test
@TestMetadata("nestedClass.kt")
public void testNestedClass() throws Exception {
runTest("plugins/allopen/allopen-cli/testData/bytecodeListing/nestedClass.kt");
runTest("plugins/allopen/testData/bytecodeListing/nestedClass.kt");
}
@Test
@TestMetadata("nestedInner.kt")
public void testNestedInner() throws Exception {
runTest("plugins/allopen/allopen-cli/testData/bytecodeListing/nestedInner.kt");
runTest("plugins/allopen/testData/bytecodeListing/nestedInner.kt");
}
@Test
@TestMetadata("noAllOpen.kt")
public void testNoAllOpen() throws Exception {
runTest("plugins/allopen/allopen-cli/testData/bytecodeListing/noAllOpen.kt");
runTest("plugins/allopen/testData/bytecodeListing/noAllOpen.kt");
}
@Test
@TestMetadata("privateMembers.kt")
public void testPrivateMembers() throws Exception {
runTest("plugins/allopen/allopen-cli/testData/bytecodeListing/privateMembers.kt");
runTest("plugins/allopen/testData/bytecodeListing/privateMembers.kt");
}
@Test
@TestMetadata("sealed.kt")
public void testSealed() throws Exception {
runTest("plugins/allopen/allopen-cli/testData/bytecodeListing/sealed.kt");
runTest("plugins/allopen/testData/bytecodeListing/sealed.kt");
}
@Test
@TestMetadata("severalAllOpen.kt")
public void testSeveralAllOpen() throws Exception {
runTest("plugins/allopen/allopen-cli/testData/bytecodeListing/severalAllOpen.kt");
runTest("plugins/allopen/testData/bytecodeListing/severalAllOpen.kt");
}
@Test
@TestMetadata("simple.kt")
public void testSimple() throws Exception {
runTest("plugins/allopen/allopen-cli/testData/bytecodeListing/simple.kt");
runTest("plugins/allopen/testData/bytecodeListing/simple.kt");
}
@Test
@TestMetadata("springAnnotations.kt")
public void testSpringAnnotations() throws Exception {
runTest("plugins/allopen/allopen-cli/testData/bytecodeListing/springAnnotations.kt");
runTest("plugins/allopen/testData/bytecodeListing/springAnnotations.kt");
}
@Test
@TestMetadata("superClassAnnotation.kt")
public void testSuperClassAnnotation() throws Exception {
runTest("plugins/allopen/allopen-cli/testData/bytecodeListing/superClassAnnotation.kt");
runTest("plugins/allopen/testData/bytecodeListing/superClassAnnotation.kt");
}
}
@@ -17,101 +17,101 @@ import java.util.regex.Pattern;
/** This class is generated by {@link GenerateNewCompilerTests.kt}. DO NOT MODIFY MANUALLY */
@SuppressWarnings("all")
@TestMetadata("plugins/allopen/allopen-cli/testData/bytecodeListing")
@TestMetadata("plugins/allopen/testData/bytecodeListing")
@TestDataPath("$PROJECT_ROOT")
public class FirBytecodeListingTestForAllOpenGenerated extends AbstractFirBytecodeListingTestForAllOpen {
@Test
public void testAllFilesPresentInBytecodeListing() throws Exception {
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("plugins/allopen/allopen-cli/testData/bytecodeListing"), Pattern.compile("^(.+)\\.kt$"), Pattern.compile("^(.+)\\.fir\\.kts?$"), TargetBackend.JVM_IR, true);
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("plugins/allopen/testData/bytecodeListing"), Pattern.compile("^(.+)\\.kt$"), Pattern.compile("^(.+)\\.fir\\.kts?$"), TargetBackend.JVM_IR, true);
}
@Test
@TestMetadata("allOpenOnNotClasses.kt")
public void testAllOpenOnNotClasses() throws Exception {
runTest("plugins/allopen/allopen-cli/testData/bytecodeListing/allOpenOnNotClasses.kt");
runTest("plugins/allopen/testData/bytecodeListing/allOpenOnNotClasses.kt");
}
@Test
@TestMetadata("alreadyOpen.kt")
public void testAlreadyOpen() throws Exception {
runTest("plugins/allopen/allopen-cli/testData/bytecodeListing/alreadyOpen.kt");
runTest("plugins/allopen/testData/bytecodeListing/alreadyOpen.kt");
}
@Test
@TestMetadata("annotationMembers.kt")
public void testAnnotationMembers() throws Exception {
runTest("plugins/allopen/allopen-cli/testData/bytecodeListing/annotationMembers.kt");
runTest("plugins/allopen/testData/bytecodeListing/annotationMembers.kt");
}
@Test
@TestMetadata("anonymousObject.kt")
public void testAnonymousObject() throws Exception {
runTest("plugins/allopen/allopen-cli/testData/bytecodeListing/anonymousObject.kt");
runTest("plugins/allopen/testData/bytecodeListing/anonymousObject.kt");
}
@Test
@TestMetadata("explicitFinal.kt")
public void testExplicitFinal() throws Exception {
runTest("plugins/allopen/allopen-cli/testData/bytecodeListing/explicitFinal.kt");
runTest("plugins/allopen/testData/bytecodeListing/explicitFinal.kt");
}
@Test
@TestMetadata("metaAnnotation.kt")
public void testMetaAnnotation() throws Exception {
runTest("plugins/allopen/allopen-cli/testData/bytecodeListing/metaAnnotation.kt");
runTest("plugins/allopen/testData/bytecodeListing/metaAnnotation.kt");
}
@Test
@TestMetadata("nestedClass.kt")
public void testNestedClass() throws Exception {
runTest("plugins/allopen/allopen-cli/testData/bytecodeListing/nestedClass.kt");
runTest("plugins/allopen/testData/bytecodeListing/nestedClass.kt");
}
@Test
@TestMetadata("nestedInner.kt")
public void testNestedInner() throws Exception {
runTest("plugins/allopen/allopen-cli/testData/bytecodeListing/nestedInner.kt");
runTest("plugins/allopen/testData/bytecodeListing/nestedInner.kt");
}
@Test
@TestMetadata("noAllOpen.kt")
public void testNoAllOpen() throws Exception {
runTest("plugins/allopen/allopen-cli/testData/bytecodeListing/noAllOpen.kt");
runTest("plugins/allopen/testData/bytecodeListing/noAllOpen.kt");
}
@Test
@TestMetadata("privateMembers.kt")
public void testPrivateMembers() throws Exception {
runTest("plugins/allopen/allopen-cli/testData/bytecodeListing/privateMembers.kt");
runTest("plugins/allopen/testData/bytecodeListing/privateMembers.kt");
}
@Test
@TestMetadata("sealed.kt")
public void testSealed() throws Exception {
runTest("plugins/allopen/allopen-cli/testData/bytecodeListing/sealed.kt");
runTest("plugins/allopen/testData/bytecodeListing/sealed.kt");
}
@Test
@TestMetadata("severalAllOpen.kt")
public void testSeveralAllOpen() throws Exception {
runTest("plugins/allopen/allopen-cli/testData/bytecodeListing/severalAllOpen.kt");
runTest("plugins/allopen/testData/bytecodeListing/severalAllOpen.kt");
}
@Test
@TestMetadata("simple.kt")
public void testSimple() throws Exception {
runTest("plugins/allopen/allopen-cli/testData/bytecodeListing/simple.kt");
runTest("plugins/allopen/testData/bytecodeListing/simple.kt");
}
@Test
@TestMetadata("springAnnotations.kt")
public void testSpringAnnotations() throws Exception {
runTest("plugins/allopen/allopen-cli/testData/bytecodeListing/springAnnotations.kt");
runTest("plugins/allopen/testData/bytecodeListing/springAnnotations.kt");
}
@Test
@TestMetadata("superClassAnnotation.kt")
public void testSuperClassAnnotation() throws Exception {
runTest("plugins/allopen/allopen-cli/testData/bytecodeListing/superClassAnnotation.kt");
runTest("plugins/allopen/testData/bytecodeListing/superClassAnnotation.kt");
}
}
@@ -17,101 +17,101 @@ import java.util.regex.Pattern;
/** This class is generated by {@link GenerateNewCompilerTests.kt}. DO NOT MODIFY MANUALLY */
@SuppressWarnings("all")
@TestMetadata("plugins/allopen/allopen-cli/testData/bytecodeListing")
@TestMetadata("plugins/allopen/testData/bytecodeListing")
@TestDataPath("$PROJECT_ROOT")
public class IrBytecodeListingTestForAllOpenGenerated extends AbstractIrBytecodeListingTestForAllOpen {
@Test
public void testAllFilesPresentInBytecodeListing() throws Exception {
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("plugins/allopen/allopen-cli/testData/bytecodeListing"), Pattern.compile("^(.+)\\.kt$"), Pattern.compile("^(.+)\\.fir\\.kts?$"), TargetBackend.JVM_IR, true);
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("plugins/allopen/testData/bytecodeListing"), Pattern.compile("^(.+)\\.kt$"), Pattern.compile("^(.+)\\.fir\\.kts?$"), TargetBackend.JVM_IR, true);
}
@Test
@TestMetadata("allOpenOnNotClasses.kt")
public void testAllOpenOnNotClasses() throws Exception {
runTest("plugins/allopen/allopen-cli/testData/bytecodeListing/allOpenOnNotClasses.kt");
runTest("plugins/allopen/testData/bytecodeListing/allOpenOnNotClasses.kt");
}
@Test
@TestMetadata("alreadyOpen.kt")
public void testAlreadyOpen() throws Exception {
runTest("plugins/allopen/allopen-cli/testData/bytecodeListing/alreadyOpen.kt");
runTest("plugins/allopen/testData/bytecodeListing/alreadyOpen.kt");
}
@Test
@TestMetadata("annotationMembers.kt")
public void testAnnotationMembers() throws Exception {
runTest("plugins/allopen/allopen-cli/testData/bytecodeListing/annotationMembers.kt");
runTest("plugins/allopen/testData/bytecodeListing/annotationMembers.kt");
}
@Test
@TestMetadata("anonymousObject.kt")
public void testAnonymousObject() throws Exception {
runTest("plugins/allopen/allopen-cli/testData/bytecodeListing/anonymousObject.kt");
runTest("plugins/allopen/testData/bytecodeListing/anonymousObject.kt");
}
@Test
@TestMetadata("explicitFinal.kt")
public void testExplicitFinal() throws Exception {
runTest("plugins/allopen/allopen-cli/testData/bytecodeListing/explicitFinal.kt");
runTest("plugins/allopen/testData/bytecodeListing/explicitFinal.kt");
}
@Test
@TestMetadata("metaAnnotation.kt")
public void testMetaAnnotation() throws Exception {
runTest("plugins/allopen/allopen-cli/testData/bytecodeListing/metaAnnotation.kt");
runTest("plugins/allopen/testData/bytecodeListing/metaAnnotation.kt");
}
@Test
@TestMetadata("nestedClass.kt")
public void testNestedClass() throws Exception {
runTest("plugins/allopen/allopen-cli/testData/bytecodeListing/nestedClass.kt");
runTest("plugins/allopen/testData/bytecodeListing/nestedClass.kt");
}
@Test
@TestMetadata("nestedInner.kt")
public void testNestedInner() throws Exception {
runTest("plugins/allopen/allopen-cli/testData/bytecodeListing/nestedInner.kt");
runTest("plugins/allopen/testData/bytecodeListing/nestedInner.kt");
}
@Test
@TestMetadata("noAllOpen.kt")
public void testNoAllOpen() throws Exception {
runTest("plugins/allopen/allopen-cli/testData/bytecodeListing/noAllOpen.kt");
runTest("plugins/allopen/testData/bytecodeListing/noAllOpen.kt");
}
@Test
@TestMetadata("privateMembers.kt")
public void testPrivateMembers() throws Exception {
runTest("plugins/allopen/allopen-cli/testData/bytecodeListing/privateMembers.kt");
runTest("plugins/allopen/testData/bytecodeListing/privateMembers.kt");
}
@Test
@TestMetadata("sealed.kt")
public void testSealed() throws Exception {
runTest("plugins/allopen/allopen-cli/testData/bytecodeListing/sealed.kt");
runTest("plugins/allopen/testData/bytecodeListing/sealed.kt");
}
@Test
@TestMetadata("severalAllOpen.kt")
public void testSeveralAllOpen() throws Exception {
runTest("plugins/allopen/allopen-cli/testData/bytecodeListing/severalAllOpen.kt");
runTest("plugins/allopen/testData/bytecodeListing/severalAllOpen.kt");
}
@Test
@TestMetadata("simple.kt")
public void testSimple() throws Exception {
runTest("plugins/allopen/allopen-cli/testData/bytecodeListing/simple.kt");
runTest("plugins/allopen/testData/bytecodeListing/simple.kt");
}
@Test
@TestMetadata("springAnnotations.kt")
public void testSpringAnnotations() throws Exception {
runTest("plugins/allopen/allopen-cli/testData/bytecodeListing/springAnnotations.kt");
runTest("plugins/allopen/testData/bytecodeListing/springAnnotations.kt");
}
@Test
@TestMetadata("superClassAnnotation.kt")
public void testSuperClassAnnotation() throws Exception {
runTest("plugins/allopen/allopen-cli/testData/bytecodeListing/superClassAnnotation.kt");
runTest("plugins/allopen/testData/bytecodeListing/superClassAnnotation.kt");
}
}
+12 -4
View File
@@ -186,9 +186,14 @@ include ":benchmarks",
":dependencies:intellij-core",
":plugins:android-extensions-compiler",
":kotlin-android-extensions",
":kotlin-android-extensions-runtime",
":kotlin-allopen-compiler-plugin",
":kotlin-noarg-compiler-plugin",
":kotlin-android-extensions-runtime"
include ":kotlin-allopen-compiler-plugin",
":kotlin-allopen-compiler-plugin.cli",
":kotlin-allopen-compiler-plugin.k1",
":kotlin-allopen-compiler-plugin.k2"
include ":kotlin-noarg-compiler-plugin",
":kotlin-sam-with-receiver-compiler-plugin",
":kotlin-imports-dumper-compiler-plugin",
":kotlin-script-runtime",
@@ -673,7 +678,10 @@ project(':plugins:android-extensions-compiler').projectDir = "$rootDir/plugins/a
project(':kotlin-android-extensions').projectDir = "$rootDir/prepare/android-extensions-compiler-gradle" as File
project(':kotlin-parcelize-compiler').projectDir = "$rootDir/prepare/parcelize-compiler-gradle" as File
project(':kotlin-android-extensions-runtime').projectDir = "$rootDir/plugins/android-extensions/android-extensions-runtime" as File
project(':kotlin-allopen-compiler-plugin').projectDir = "$rootDir/plugins/allopen/allopen-cli" as File
project(':kotlin-allopen-compiler-plugin').projectDir = "$rootDir/plugins/allopen" as File
project(':kotlin-allopen-compiler-plugin.cli').projectDir = "$rootDir/plugins/allopen/allopen.cli" as File
project(':kotlin-allopen-compiler-plugin.k1').projectDir = "$rootDir/plugins/allopen/allopen.k1" as File
project(':kotlin-allopen-compiler-plugin.k2').projectDir = "$rootDir/plugins/allopen/allopen.k2" as File
project(':kotlin-noarg-compiler-plugin').projectDir = "$rootDir/plugins/noarg/noarg-cli" as File
project(':kotlin-sam-with-receiver-compiler-plugin').projectDir = "$rootDir/plugins/sam-with-receiver/sam-with-receiver-cli" as File
project(':tools:kotlinp').projectDir = "$rootDir/libraries/tools/kotlinp" as File