pluginManagement {
    repositories {
        def pluginRepo = System.getProperty("bootstrap.kotlin.repo")
        if (pluginRepo != null) {
            maven {
                url pluginRepo
            }
        }

        if (cacheRedirectorEnabled == 'true') {
            logger.info("Using cache redirector for settings.gradle pluginManagement")
            maven { url "https://cache-redirector.jetbrains.com/plugins.gradle.org/m2" }
            maven { url "https://cache-redirector.jetbrains.com/maven.pkg.jetbrains.space/kotlin/p/kotlin/kotlin-dependencies" }
        } else {
            gradlePluginPortal()
            maven { url "https://maven.pkg.jetbrains.space/kotlin/p/kotlin/kotlin-dependencies" }
        }
    }
}

buildscript {
    repositories {
        if (cacheRedirectorEnabled == 'true') {
            maven { url "https://cache-redirector.jetbrains.com/maven.pkg.jetbrains.space/kotlin/p/kotlin/kotlin-dependencies" }
        } else {
            maven { url "https://maven.pkg.jetbrains.space/kotlin/p/kotlin/kotlin-dependencies" }
        }
        mavenCentral()
    }
    def buildGradlePluginVersion = ext["kotlin.build.gradlePlugin.version"]
    dependencies {
        classpath("org.jetbrains.kotlin:kotlin-build-gradle-plugin:${buildGradlePluginVersion}")
    }
}

plugins {
    id "com.gradle.enterprise" version "3.8.1"
    id "com.gradle.enterprise.test-distribution" version "2.2.2"
    id "com.gradle.common-custom-user-data-gradle-plugin" version "1.6.2" apply false
}

def buildProperties = BuildPropertiesKt.getKotlinBuildPropertiesForSettings(settings)

if (buildProperties.buildScanServer != null) {
    apply plugin: com.gradle.CommonCustomUserDataGradlePlugin
}

gradleEnterprise {
    def buildScanServer = buildProperties.buildScanServer
    def isTeamCity = buildProperties.isTeamcityBuild

    buildScan {
        if (buildScanServer != null) {
            server = buildScanServer
            captureTaskInputFiles = true
            publishAlways()
        } else {
            setTermsOfServiceUrl("https://gradle.com/terms-of-service")
            setTermsOfServiceAgree("yes")
        }

        obfuscation {
            ipAddresses { addresses -> ["0.0.0.0"] }
            hostname { host -> "concealed" }
            username { name -> isTeamCity ? "TeamCity" : "concealed" }
        }
    }
}

buildCache {
    local {
        enabled = buildProperties.localBuildCacheEnabled
        if (buildProperties.localBuildCacheDirectory != null) {
            directory = buildProperties.localBuildCacheDirectory
        }
    }

    if (buildProperties.buildCacheUrl != null) {
        remote(HttpBuildCache) {
            url = buildProperties.buildCacheUrl
            push = buildProperties.pushToBuildCache
            if (buildProperties.buildCacheUser != null && buildProperties.buildCachePassword != null) {
                credentials.username = buildProperties.buildCacheUser
                credentials.password = buildProperties.buildCachePassword
            }
        }
    }
}

// modules
include ":benchmarks",
        ":compiler",
        ":compiler:util",
        ":compiler:config",
        ":compiler:config.jvm",
        ":kotlin-util-io",
        ":kotlin-util-klib",
        ":kotlin-util-klib-metadata",
        ":daemon-common",
        ":daemon-common-new",
        ":kotlin-daemon",
        ":kotlin-daemon-client",
        ":kotlin-daemon-client-new",
        ":kotlin-daemon-tests",
        ":kotlin-preloader",
        ":kotlin-runner",
        ":compiler:container",
        ":compiler:resolution.common",
        ":compiler:resolution.common.jvm",
        ":compiler:resolution",
        ":compiler:serialization",
        ":compiler:psi",
        ":compiler:visualizer",
        ":compiler:visualizer:common",
        ":compiler:visualizer:render-fir",
        ":compiler:visualizer:render-psi",
        ":compiler:frontend",
        ":compiler:frontend.common",
        ":compiler:frontend.common-psi",
        ":compiler:frontend.java",
        ":compiler:frontend:cfg",
        ":kotlin-compiler-runner-unshaded",
        ":kotlin-compiler-runner",
        ":compiler:cli-common",
        ":compiler:ir.tree",
        ":compiler:ir.tree.impl",
        ":compiler:ir.psi2ir",
        ":compiler:ir.ir2cfg",
        ":compiler:ir.backend.common",
        ":compiler:ir.serialization.common",
        ":compiler:ir.serialization.jvm",
        ":compiler:ir.serialization.js",
        ":compiler:ir.interpreter",
        ":compiler:backend.js",
        ":compiler:backend.wasm",
        ":compiler:backend.jvm",
        ":compiler:backend.jvm.lower",
        ":compiler:backend.jvm.codegen",
        ":compiler:backend.jvm.entrypoint",
        ":compiler:backend-common",
        ":compiler:backend",
        ":compiler:plugin-api",
        ":compiler:light-classes",
        ":compiler:javac-wrapper",
        ":compiler:cli",
        ":compiler:cli-js",
        ":compiler:incremental-compilation-impl",
        ":compiler:tests-compiler-utils",
        ":compiler:tests-common",
        ":compiler:tests-mutes",
        ":compiler:tests-mutes:tc-integration",
        ":compiler:tests-common-jvm6",
        ":compiler:tests-against-klib",
        ":compiler:tests-for-compiler-generator",
        ":js:js.ast",
        ":js:js.sourcemap",
        ":js:js.serializer",
        ":js:js.parser",
        ":js:js.config",
        ":js:js.engines",
        ":js:js.frontend",
        ":js:js.translator",
        ":js:js.dce",
        ":js:js.tests",
        ":native:kotlin-native-utils",
        ":native:frontend.native",
        ":native:kotlin-klib-commonizer",
        ":native:kotlin-klib-commonizer-api",
        ":native:kotlin-klib-commonizer-embeddable",
        ":core:compiler.common",
        ":core:compiler.common.jvm",
        ":compiler:backend.common.jvm",
        ":core:descriptors",
        ":core:descriptors.jvm",
        ":core:deserialization",
        ":core:descriptors.runtime",
        ":core:metadata",
        ":core:metadata.jvm",
        ":core:deserialization.common",
        ":core:deserialization.common.jvm",
        ":compiler:frontend.common.jvm",
        ":core:util.runtime",
        ":compiler:compiler.version",
        ":dependencies:android-sdk",
        ":dependencies:tools-jar-api",
        ":dependencies:intellij-core",
        ":plugins:android-extensions-compiler",
        ":kotlin-android-extensions",
        ":kotlin-android-extensions-runtime",
        ":kotlin-allopen-compiler-plugin",
        ":kotlin-noarg-compiler-plugin",
        ":kotlin-sam-with-receiver-compiler-plugin",
        ":kotlin-imports-dumper-compiler-plugin",
        ":kotlin-script-runtime",
        ":plugins:fir-plugin-prototype",
        ":plugins:fir-plugin-prototype:plugin-annotations",
        ":plugins:fir-plugin-prototype:fir-plugin-ic-test",
        ":kotlin-test:kotlin-test-common",
        ":kotlin-test:kotlin-test-annotations-common",
        ":kotlin-test:kotlin-test-jvm",
        ":kotlin-test:kotlin-test-junit",
        ":kotlin-test:kotlin-test-junit5",
        ":kotlin-test:kotlin-test-testng",
        ":kotlin-test-js-runner",
        ":kotlinx-metadata",
        ":kotlinx-metadata-jvm",
        ":kotlinx-metadata-klib",
        ":prepare:build.version",
        ":kotlin-build-common",
        ":prepare:kotlin-compiler-internal-test-framework",
        ":kotlin-compiler",
        ":kotlin-compiler-embeddable",
        ":kotlin-compiler-client-embeddable",
        ":kotlin-reflect",
        ":kotlin-reflect-api",
        ":kotlin-ant",
        ":compiler:tests-java8",
        ":compiler:tests-different-jdk",
        ":compiler:tests-spec",
        ":generators",
        ":generators:ide-iml-to-gradle-generator",
        ":generators:test-generator",
        ":tools:kotlinp",
        ":kotlin-project-model",
        ":kotlin-gradle-plugin-api",
        ":kotlin-gradle-plugin-idea",
        ":kotlin-gradle-plugin-idea-for-compatibility-tests",
        ":kotlin-gradle-plugin-dsl-codegen",
        ":kotlin-gradle-plugin-npm-versions-codegen",
        ":kotlin-gradle-statistics",
        ":kotlin-gradle-build-metrics",
        ":kotlin-gradle-plugin",
        ":kotlin-gradle-plugin-kpm-android",
        ":kotlin-gradle-plugin-model",
        ":kotlin-gradle-plugin-test-utils-embeddable",
        ":kotlin-gradle-plugin-integration-tests",
        ":gradle:android-test-fixes",
        ":gradle:regression-benchmark-templates",
        ":gradle:regression-benchmarks",
        ":kotlin-tooling-metadata",
        ":kotlin-tooling-core",
        ":kotlin-allopen",
        ":kotlin-noarg",
        ":kotlin-sam-with-receiver",
        ":kotlin-gradle-subplugin-example",
        ":examples:annotation-processor-example",
        ":kotlin-script-util",
        ":kotlin-annotation-processing",
        ":kotlin-annotation-processing-cli",
        ":kotlin-annotation-processing-base",
        ":kotlin-annotation-processing-runtime",
        ":kotlin-annotation-processing-gradle",
        ":kotlin-annotation-processing-embeddable",
        ":kotlin-daemon-embeddable",
        ":examples:kotlin-jsr223-local-example",
        ":examples:kotlin-jsr223-daemon-local-eval-example",
        ":kotlin-annotations-jvm",
        ":kotlin-scripting-common",
        ':kotlin-scripting-js',
        ':kotlin-scripting-js-test',
        ":kotlin-scripting-jvm",
        ":kotlin-scripting-jvm-host-unshaded",
        ":kotlin-scripting-jvm-host-test",
        ":kotlin-scripting-jvm-host",
        ":kotlin-scripting-intellij",
        ":kotlin-scripting-compiler",
        ":kotlin-scripting-compiler-js",
        ":kotlin-scripting-compiler-embeddable",
        ":kotlin-scripting-compiler-impl",
        ":kotlin-scripting-compiler-impl-embeddable",
        ":kotlin-scripting-dependencies",
        ":kotlin-scripting-dependencies-maven",
        ":kotlin-scripting-dependencies-maven-all",
        ":kotlin-scripting-jsr223-unshaded",
        ":kotlin-scripting-jsr223-test",
        ":kotlin-scripting-jsr223",
        ":kotlin-main-kts",
        ":kotlin-main-kts-test",
        ":examples:scripting-jvm-simple-script",
        ":examples:scripting-jvm-simple-script-host",
        ":examples:scripting-jvm-maven-deps",
        ":examples:scripting-jvm-maven-deps-host",
        ":examples:scripting-jvm-embeddable-host",
        ":pill:pill-importer",
        ":pill:generate-all-tests",
        ":libraries:kotlin-prepush-hook",
        ":libraries:tools:mutability-annotations-compat",
        ":plugins:jvm-abi-gen",
        ":plugins:jvm-abi-gen-embeddable",
        ":test-instrumenter",
        ":kotlinx-serialization-compiler-plugin",
        ":kotlin-serialization",
        ":kotlin-serialization-unshaded",
        ":wasm:wasm.ir"


include ":kotlinx-atomicfu-compiler-plugin",
        ":kotlinx-atomicfu-runtime",
        ":atomicfu"

include ":compiler:fir",
        ":compiler:fir:cones",
        ":compiler:fir:tree",
        ":compiler:fir:tree:tree-generator",
        ":compiler:fir:raw-fir:raw-fir.common",
        ":compiler:fir:raw-fir:psi2fir",
        ":compiler:fir:raw-fir:light-tree2fir",
        ":compiler:fir:fir2ir",
        ":compiler:fir:fir2ir:jvm-backend",
        ":compiler:fir:providers",
        ":compiler:fir:semantics",
        ":compiler:fir:resolve",
        ":compiler:fir:fir-serialization",
        ":compiler:fir:fir-deserialization",
        ":compiler:fir:java",
        ":compiler:fir:modularized-tests",
        ":compiler:fir:dump",
        ":compiler:fir:checkers",
        ":compiler:fir:checkers:checkers.jvm",
        ":compiler:fir:checkers:checkers-component-generator",
        ":compiler:fir:entrypoint",
        ":compiler:fir:analysis-tests",
        ":compiler:fir:analysis-tests:legacy-fir-tests"

include ":kotlin-scripting-ide-services-unshaded",
        ":kotlin-scripting-ide-services-test",
        ":kotlin-scripting-ide-services",
        ":kotlin-scripting-ide-common"

include ":compiler:test-infrastructure",
        ":compiler:test-infrastructure-utils",
        ":compiler:tests-common-new"

include ":plugins:parcelize:parcelize-compiler",
        ":plugins:parcelize:parcelize-compiler:parcelize-fir",
        ":plugins:parcelize:parcelize-runtime",
        ":kotlin-parcelize-compiler"

include ":plugins:lombok:lombok-compiler-plugin",
        ":kotlin-lombok"

if (!buildProperties.inJpsBuildIdeaSync) {
    include ":prepare:ide-plugin-dependencies:android-extensions-compiler-plugin-for-ide",
            ":prepare:ide-plugin-dependencies:allopen-compiler-plugin-for-ide",
            ":prepare:ide-plugin-dependencies:allopen-compiler-plugin-tests-for-ide",
            ":prepare:ide-plugin-dependencies:incremental-compilation-impl-tests-for-ide",
            ":prepare:ide-plugin-dependencies:js-ir-runtime-for-ide",
            ":prepare:ide-plugin-dependencies:kotlin-build-common-tests-for-ide",
            ":prepare:ide-plugin-dependencies:kotlin-compiler-for-ide",
            ":prepare:ide-plugin-dependencies:kotlin-compiler-cli-for-ide",
            ":prepare:ide-plugin-dependencies:kotlin-dist-for-ide",
            ":prepare:ide-plugin-dependencies:kotlin-gradle-statistics-for-ide",
            ":prepare:ide-plugin-dependencies:kotlin-jps-common-for-ide",
            ":prepare:ide-plugin-dependencies:kotlin-jps-plugin-classpath",
            ":prepare:ide-plugin-dependencies:kotlinx-serialization-compiler-plugin-for-ide",
            ":prepare:ide-plugin-dependencies:noarg-compiler-plugin-for-ide",
            ":prepare:ide-plugin-dependencies:sam-with-receiver-compiler-plugin-for-ide",
            ":prepare:ide-plugin-dependencies:parcelize-compiler-plugin-for-ide",
            ":prepare:ide-plugin-dependencies:lombok-compiler-plugin-for-ide",
            ":prepare:ide-plugin-dependencies:tests-common-tests-for-ide",
            ":prepare:ide-plugin-dependencies:compiler-components-for-jps",
            ":prepare:ide-plugin-dependencies:kotlin-compiler-testdata-for-ide",
            ":prepare:ide-plugin-dependencies:kotlin-stdlib-minimal-for-test-for-ide",
            ":prepare:ide-plugin-dependencies:kotlin-compiler-tests-for-ide",
            ":prepare:ide-plugin-dependencies:low-level-api-fir-for-ide",
            ":prepare:ide-plugin-dependencies:high-level-api-for-ide",
            ":prepare:ide-plugin-dependencies:high-level-api-impl-base-for-ide",
            ":prepare:ide-plugin-dependencies:high-level-api-impl-base-tests-for-ide",
            ":prepare:ide-plugin-dependencies:high-level-api-fir-for-ide",
            ":prepare:ide-plugin-dependencies:high-level-api-fir-tests-for-ide",
            ":prepare:ide-plugin-dependencies:high-level-api-fe10-for-ide",
            ":prepare:ide-plugin-dependencies:high-level-api-fe10-tests-for-ide",
            ":prepare:ide-plugin-dependencies:analysis-api-providers-for-ide",
            ":prepare:ide-plugin-dependencies:analysis-project-structure-for-ide",
            ":prepare:ide-plugin-dependencies:symbol-light-classes-for-ide",
            ":prepare:ide-plugin-dependencies:analysis-api-standalone-for-ide",
            ":prepare:ide-plugin-dependencies:kotlin-compiler-ir-for-ide",
            ":prepare:ide-plugin-dependencies:kotlin-compiler-common-for-ide",
            ":prepare:ide-plugin-dependencies:kotlin-compiler-fe10-for-ide",
            ":prepare:ide-plugin-dependencies:kotlin-compiler-fir-for-ide"
}

void intellij(String imlPath) {
    File imlFile = new File("${rootDir}/intellij/community/plugins/kotlin/${imlPath}")
    imlFile = imlFile.exists() ? imlFile : new File("${rootDir}/intellij/plugins/kotlin/${imlPath}")
    imlFile = imlFile.exists() ? imlFile : new File("${rootDir}/intellij/community/${imlPath}")
    imlFile = imlFile.exists() ? imlFile : new File("${rootDir}/intellij/${imlPath}")
    if (!imlFile.exists()) {
        throw new IllegalStateException("$imlFile doesn't exist. Please, update mapping in settings.gradle. And regenerate " +
                "build.gradle files in kt-branch in 'intellij' repo (./gradlew generateIdePluginGradleFiles). Or you can " +
                "remove 'attachedIntellijVersion' in your 'local.properties' if you don't care about being possible to" +
                "browse Kotlin plugin sources in scope of Kotlin compiler sources")
    }
    String fileName = imlFile.name
    String projectName = ":kotlin-ide.${fileName.substring(0, fileName.length() - ".iml".length())}"
    include(projectName)
    project(projectName).projectDir = imlFile.parentFile
}

String attachedIntellijVersion = buildProperties.getOrNull("attachedIntellijVersion")
if (attachedIntellijVersion == "212") { // Latest available platform in scope of KT release cycle
    logger.info("Including kotlin-ide modules in settings.gradle")
    intellij "java/compiler/intellij.java.compiler.tests.iml"
    intellij "platform/testFramework/extensions/intellij.platform.testExtensions.iml"
    intellij "platform/lang-impl/intellij.platform.lang.tests.iml"
    intellij "platform/xdebugger-testFramework/intellij.platform.debugger.testFramework.iml"
    intellij "platform/external-system-impl/intellij.platform.externalSystem.tests.iml"
    intellij "jvm-debugger/core/kotlin.jvm-debugger.core.iml"
    intellij "jvm-debugger/util/kotlin.jvm-debugger.util.iml"
    intellij "jvm-debugger/eval4j/kotlin.eval4j.iml"
    intellij "jvm-debugger/test/kotlin.jvm-debugger.test.iml"
    intellij "jvm-debugger/evaluation/kotlin.jvm-debugger.evaluation.iml"
    intellij "jvm-debugger/coroutines/kotlin.jvm-debugger.coroutines.iml"
    intellij "jvm-debugger/sequence/kotlin.jvm-debugger.sequence.iml"
    intellij "jvm/kotlin.jvm.iml"
    intellij "core/kotlin.core.iml"
    intellij "common/kotlin.common.iml"
    intellij "tests-common/kotlin.tests-common.iml"
    intellij "j2k/services/kotlin.j2k.services.iml"
    intellij "j2k/old/kotlin.j2k.old.iml"
    intellij "j2k/old/tests/kotlin.j2k.old.tests.iml"
    intellij "j2k/idea/kotlin.j2k.idea.iml"
    intellij "j2k/new/tests/kotlin.j2k.new.tests.iml"
    intellij "j2k/new/kotlin.j2k.new.iml"
    intellij "fir-low-level-api-ide-impl/kotlin.fir.fir-low-level-api-ide-impl.iml"
    intellij "fir-analysis-project-structure-ide-impl/kotlin.fir.analysis-project-structure-ide-impl.iml"
    intellij "analysis-api-providers-ide-impl/kotlin.fir.analysis-api-providers-ide-impl.iml"
    intellij "native/kotlin.native.iml"
    intellij "performance-tests/kotlin.performance-tests.iml"
    intellij "injection/kotlin.injection.iml"
    intellij "resources-fe10/kotlin.resources-fe10.iml"
    intellij "git/kotlin.git.iml"
    intellij "idea/tests/kotlin.idea.tests.iml"
    intellij "idea/kotlin.idea.iml"
    intellij "project-wizard/core/kotlin.project-wizard.core.iml"
    intellij "project-wizard/idea/kotlin.project-wizard.idea.iml"
    intellij "project-wizard/cli/kotlin.project-wizard.cli.iml"
    intellij "resources-fir/kotlin.resources-fir.iml"
    intellij "kotlin.all-tests/kotlin.all-tests.iml"
    intellij "i18n/kotlin.i18n.iml"
    intellij "uast/uast-kotlin-idea-fir/kotlin.uast.uast-kotlin-idea-fir.iml"
    intellij "uast/uast-kotlin-idea/kotlin.uast.uast-kotlin-idea.iml"
    intellij "uast/uast-kotlin-fir/kotlin.uast.uast-kotlin-fir.iml"
    intellij "uast/uast-kotlin-base/kotlin.uast.uast-kotlin-base.iml"
    intellij "uast/uast-kotlin-idea-base/kotlin.uast.uast-kotlin-idea-base.iml"
    intellij "uast/uast-kotlin/kotlin.uast.uast-kotlin.iml"
    intellij "test-framework/kotlin.test-framework.iml"
    intellij "generators/kotlin.generators.iml"
    intellij "gradle/gradle-native/kotlin.gradle.gradle-native.iml"
    intellij "gradle/gradle-idea/kotlin.gradle.gradle-idea.iml"
    intellij "gradle/gradle-tooling/kotlin.gradle.gradle-tooling.iml"
    intellij "scripting/kotlin.scripting.iml"
    intellij "compiler-plugins/allopen/common/kotlin.compiler-plugins.allopen.common.iml"
    intellij "compiler-plugins/allopen/tests/kotlin.compiler-plugins.allopen.tests.iml"
    intellij "compiler-plugins/allopen/gradle/kotlin.compiler-plugins.allopen.gradle.iml"
    intellij "compiler-plugins/allopen/maven/kotlin.compiler-plugins.allopen.maven.iml"
    intellij "compiler-plugins/kapt/kotlin.compiler-plugins.kapt.iml"
    intellij "compiler-plugins/kotlinx-serialization/common/kotlin.compiler-plugins.kotlinx-serialization.common.iml"
    intellij "compiler-plugins/kotlinx-serialization/gradle/kotlin.compiler-plugins.kotlinx-serialization.gradle.iml"
    intellij "compiler-plugins/kotlinx-serialization/maven/kotlin.compiler-plugins.kotlinx-serialization.maven.iml"
    intellij "compiler-plugins/parcelize/common/kotlin.compiler-plugins.parcelize.common.iml"
    intellij "compiler-plugins/parcelize/tests/kotlin.compiler-plugins.parcelize.tests.iml"
    intellij "compiler-plugins/parcelize/gradle/kotlin.compiler-plugins.parcelize.gradle.iml"
    intellij "compiler-plugins/scripting/kotlin.compiler-plugins.scripting.iml"
    intellij "compiler-plugins/noarg/common/kotlin.compiler-plugins.noarg.common.iml"
    intellij "compiler-plugins/noarg/tests/kotlin.compiler-plugins.noarg.tests.iml"
    intellij "compiler-plugins/noarg/gradle/kotlin.compiler-plugins.noarg.gradle.iml"
    intellij "compiler-plugins/noarg/maven/kotlin.compiler-plugins.noarg.maven.iml"
    intellij "compiler-plugins/lombok/kotlin.compiler-plugins.lombok.iml"
    intellij "compiler-plugins/sam-with-receiver/common/kotlin.compiler-plugins.sam-with-receiver.common.iml"
    intellij "compiler-plugins/sam-with-receiver/gradle/kotlin.compiler-plugins.sam-with-receiver.gradle.iml"
    intellij "compiler-plugins/sam-with-receiver/maven/kotlin.compiler-plugins.sam-with-receiver.maven.iml"
    intellij "compiler-plugins/base-compiler-plugins-ide-support/kotlin.compiler-plugins.base-compiler-plugins-ide-support.iml"
    intellij "line-indent-provider/kotlin.line-indent-provider.iml"
    intellij "scripting-support/kotlin.scripting-support.iml"
    intellij "formatter/kotlin.formatter.iml"
    intellij "fir/kotlin.fir.iml"
    intellij "fir-fe10-binding/kotlin.fir.fir-fe10-binding.iml"
    intellij "maven/tests/kotlin.maven.tests.iml"
    intellij "maven/kotlin.maven.iml"
    intellij "frontend-independent/tests/kotlin.fir.frontend-independent.tests.iml"
    intellij "frontend-independent/kotlin.fir.frontend-independent.iml"
    intellij "kotlin-compiler-classpath/kotlin.util.compiler-classpath.iml"
    intellij "repl/kotlin.repl.iml"
    intellij "plugins/gradle/tooling-extension-impl/intellij.gradle.toolingExtension.tests.iml"
    intellij "plugins/gradle/intellij.gradle.tests.iml"
    intellij "plugins/maven/intellij.maven.iml"
    intellij "jvm-run-configurations/kotlin.jvm-run-configurations.iml"
}

if (attachedIntellijVersion == "master") {
    logger.info("Including kotlin-ide modules in settings.gradle")
    def excludedModules = [
            "tools/kotlin-maven-artifacts-publishing/intellij.kotlin.util.mavenArtifactsPublishing.iml",
            "util/project-model-updater/kotlin.util.project-model-updater.iml",
            "util/compiler-dependencies/kotlin.util.compiler-dependencies.iml",
            "kotlin-compiler-classpath/kotlin.util.compiler-classpath.iml"
    ]
    def modulesIml = new File("${rootDir}/intellij/.idea/modules.xml").text
    def matcher = modulesIml =~ /filepath="(.+)"/ // TODO use some xml parser instead
    def modules = (0..<matcher.count)
            .collect { matcher[it][1] }
            .findAll { it.startsWithAny('$PROJECT_DIR$/community/plugins/kotlin/', '$PROJECT_DIR$/plugins/kotlin/') }
            .collect {
                it.startsWith('$PROJECT_DIR$/community/plugins/kotlin/') ? (it - '$PROJECT_DIR$/community/plugins/kotlin/') :
                        (it.startsWith('$PROJECT_DIR$/plugins/kotlin/') ? (it - '$PROJECT_DIR$/plugins/kotlin/') : null)
            }
    (modules - excludedModules).each { intellij it }

    //// These modules are used in Kotlin plugin and IDEA doesn't publish artifact of these modules
    intellij "plugins/gradle/intellij.gradle.tests.iml"
    intellij "plugins/gradle/java/intellij.gradle.java.iml"
    intellij "plugins/gradle/jps-plugin/intellij.gradle.jps.iml"
    intellij "xml/relaxng/intellij.relaxng.iml"
    intellij "plugins/maven/intellij.maven.iml"
    intellij "jvm-run-configurations/kotlin.jvm-run-configurations.iml"
    intellij "java/compiler/intellij.java.compiler.tests.iml"
    intellij "platform/testFramework/extensions/intellij.platform.testExtensions.iml"
    intellij "platform/lang-impl/intellij.platform.lang.tests.iml"
    intellij "platform/xdebugger-testFramework/intellij.platform.debugger.testFramework.iml"
    intellij "platform/external-system-impl/intellij.platform.externalSystem.tests.iml"
    intellij "plugins/gradle/tooling-extension-impl/intellij.gradle.toolingExtension.tests.iml"
    intellij "jvm/jvm-analysis-tests/intellij.jvm.analysis.testFramework.iml"
    intellij "jvm/jvm-analysis-kotlin-tests/intellij.jvm.analysis.kotlin.tests.iml"
    intellij "platform/configuration-store-impl/intellij.platform.configurationStore.tests.iml"
    intellij "plugins/stats-collector/intellij.statsCollector.tests.iml"
    intellij "plugins/groovy/groovy-uast-tests/intellij.groovy.uast.tests.iml"
}

include ":jps:jps-common",
        ":jps:jps-plugin",
        ":jps:jps-platform-api-signatures"

include ":generators:analysis-api-generator",
        ":analysis",
        ":analysis:low-level-api-fir",
        ":analysis:analysis-api-fir:analysis-api-fir-generator",
        ":analysis:analysis-api-fir",
        ":analysis:analysis-api",
        ":analysis:analysis-api-impl-barebone",
        ":analysis:analysis-api-impl-base",
        ":analysis:analysis-api-providers",
        ":analysis:analysis-internal-utils",
        ":analysis:kt-references",
        ":analysis:symbol-light-classes",
        ":analysis:project-structure",
        ":analysis:analysis-api-standalone",
        ":analysis:analysis-api-fe10",
        ":analysis:decompiled:decompiler-to-psi",
        ":analysis:decompiled:decompiler-to-stubs",
        ":analysis:decompiled:decompiler-to-file-stubs",
        ":analysis:decompiled:light-classes-for-decompiled",
        ":analysis:decompiled:light-classes-for-decompiled-fe10"


if (buildProperties.inJpsBuildIdeaSync) {
    include ":kotlin-stdlib:jps-build"
    project(":kotlin-stdlib:jps-build").projectDir = "$rootDir/libraries/stdlib/jps-build" as File
} else {
    // modules that we are currently cannot compile with jps

    include ":core:builtins",
            ":kotlin-stdlib-common",
            ":kotlin-stdlib",
            ":kotlin-stdlib-js",
            ":kotlin-stdlib-js-ir",
            ":kotlin-stdlib-js-ir-minimal-for-test",
            ":kotlin-stdlib-wasm",
            ":kotlin-stdlib-jdk7",
            ":kotlin-stdlib-jdk8",
            ":kotlin-stdlib:samples",
            ":kotlin-stdlib-jvm-minimal-for-test",
            ":tools:binary-compatibility-validator",
            ":tools:kotlin-stdlib-gen",

            ":kotlin-test",
            ":kotlin-test:kotlin-test-js",
            ":kotlin-test:kotlin-test-js-ir",
            ":kotlin-test:kotlin-test-js:kotlin-test-js-it",
            ":kotlin-test:kotlin-test-js-ir:kotlin-test-js-ir-it",
            ":kotlin-test:kotlin-test-wasm",
            ":native:native.tests"

    project(':kotlin-stdlib-common').projectDir = "$rootDir/libraries/stdlib/common" as File
    project(':kotlin-stdlib').projectDir = "$rootDir/libraries/stdlib/jvm" as File
    project(':kotlin-stdlib-js').projectDir = "$rootDir/libraries/stdlib/js-v1" as File
    project(':kotlin-stdlib-js-ir').projectDir = "$rootDir/libraries/stdlib/js-ir" as File
    project(':kotlin-stdlib-wasm').projectDir = "$rootDir/libraries/stdlib/wasm" as File
    project(':kotlin-stdlib-js-ir-minimal-for-test').projectDir = "$rootDir/libraries/stdlib/js-ir-minimal-for-test" as File
    project(':kotlin-stdlib-jdk7').projectDir = "$rootDir/libraries/stdlib/jdk7" as File
    project(':kotlin-stdlib-jdk8').projectDir = "$rootDir/libraries/stdlib/jdk8" as File
    project(':kotlin-stdlib:samples').projectDir = "$rootDir/libraries/stdlib/samples" as File
    project(":kotlin-stdlib-jvm-minimal-for-test").projectDir = "$rootDir/libraries/stdlib/jvm-minimal-for-test" as File

    project(':tools:binary-compatibility-validator').projectDir = "$rootDir/libraries/tools/binary-compatibility-validator" as File
    project(':tools:kotlin-stdlib-gen').projectDir = "$rootDir/libraries/tools/kotlin-stdlib-gen" as File

    project(':kotlin-test').projectDir = "$rootDir/libraries/kotlin.test" as File
    project(':kotlin-test:kotlin-test-js').projectDir = "$rootDir/libraries/kotlin.test/js" as File
    project(':kotlin-test:kotlin-test-js-ir').projectDir = "$rootDir/libraries/kotlin.test/js-ir" as File
    project(':kotlin-test:kotlin-test-js:kotlin-test-js-it').projectDir = "$rootDir/libraries/kotlin.test/js/it" as File
    project(':kotlin-test:kotlin-test-js-ir:kotlin-test-js-ir-it').projectDir = "$rootDir/libraries/kotlin.test/js-ir/it" as File
    project(':kotlin-test:kotlin-test-wasm').projectDir = "$rootDir/libraries/kotlin.test/wasm" as File
    project(':native:native.tests').projectDir = "$rootDir/native/native.tests" as File
}
include ":compiler:android-tests"

rootProject.name = "kotlin"

project(':kotlin-script-runtime').projectDir = "$rootDir/libraries/tools/script-runtime" as File
project(':kotlin-test:kotlin-test-common').projectDir = "$rootDir/libraries/kotlin.test/common" as File
project(':kotlin-test:kotlin-test-annotations-common').projectDir = "$rootDir/libraries/kotlin.test/annotations-common" as File
project(':kotlin-test:kotlin-test-jvm').projectDir = "$rootDir/libraries/kotlin.test/jvm" as File
project(':kotlin-test:kotlin-test-junit').projectDir = "$rootDir/libraries/kotlin.test/junit" as File
project(':kotlin-test:kotlin-test-junit5').projectDir = "$rootDir/libraries/kotlin.test/junit5" as File
project(':kotlin-test:kotlin-test-testng').projectDir = "$rootDir/libraries/kotlin.test/testng" as File
project(':kotlin-test-js-runner').projectDir = "$rootDir/libraries/tools/kotlin-test-js-runner" as File
project(':kotlin-reflect').projectDir = "$rootDir/libraries/reflect" as File
project(':kotlin-reflect-api').projectDir = "$rootDir/libraries/reflect/api" as File
project(':kotlinx-metadata').projectDir = "$rootDir/libraries/kotlinx-metadata" as File
project(':kotlinx-metadata-jvm').projectDir = "$rootDir/libraries/kotlinx-metadata/jvm" as File
project(':kotlinx-metadata-klib').projectDir = "$rootDir/libraries/kotlinx-metadata/klib" as File
project(':kotlin-compiler').projectDir = "$rootDir/prepare/compiler" as File
project(':kotlin-compiler-embeddable').projectDir = "$rootDir/prepare/compiler-embeddable" as File
project(':kotlin-compiler-client-embeddable').projectDir = "$rootDir/prepare/compiler-client-embeddable" as File
project(':kotlin-preloader').projectDir = "$rootDir/compiler/preloader" as File
project(':kotlin-build-common').projectDir = "$rootDir/build-common" as File
project(':compiler:cli-common').projectDir = "$rootDir/compiler/cli/cli-common" as File
project(':compiler:cli-js').projectDir = "$rootDir/compiler/cli/cli-js" as File
project(':kotlin-runner').projectDir = "$rootDir/compiler/cli/cli-runner" as File
project(':kotlin-daemon').projectDir = "$rootDir/compiler/daemon" as File
project(':daemon-common').projectDir = "$rootDir/compiler/daemon/daemon-common" as File
project(':daemon-common-new').projectDir = "$rootDir/compiler/daemon/daemon-common-new" as File
project(':kotlin-daemon-client').projectDir = "$rootDir/compiler/daemon/daemon-client" as File
project(':kotlin-daemon-client-new').projectDir = "$rootDir/compiler/daemon/daemon-client-new" as File
project(':kotlin-daemon-tests').projectDir = "$rootDir/compiler/daemon/daemon-tests" as File
project(':kotlin-compiler-runner-unshaded').projectDir = "$rootDir/compiler/compiler-runner-unshaded" as File
project(':kotlin-compiler-runner').projectDir = "$rootDir/compiler/compiler-runner" as File
project(':kotlin-ant').projectDir = "$rootDir/ant" as File
project(':compiler:ir.tree').projectDir = "$rootDir/compiler/ir/ir.tree" as File
project(':compiler:ir.tree.impl').projectDir = "$rootDir/compiler/ir/ir.tree.impl" as File
project(':compiler:ir.psi2ir').projectDir = "$rootDir/compiler/ir/ir.psi2ir" as File
project(':compiler:ir.ir2cfg').projectDir = "$rootDir/compiler/ir/ir.ir2cfg" as File
project(':compiler:ir.backend.common').projectDir = "$rootDir/compiler/ir/backend.common" as File
project(':compiler:backend.js').projectDir = "$rootDir/compiler/ir/backend.js" as File
project(':compiler:backend.wasm').projectDir = "$rootDir/compiler/ir/backend.wasm" as File
project(':compiler:backend.jvm').projectDir = "$rootDir/compiler/ir/backend.jvm" as File
project(':compiler:backend.jvm.lower').projectDir = "$rootDir/compiler/ir/backend.jvm/lower" as File
project(':compiler:backend.jvm.codegen').projectDir = "$rootDir/compiler/ir/backend.jvm/codegen" as File
project(':compiler:backend.jvm.entrypoint').projectDir = "$rootDir/compiler/ir/backend.jvm/entrypoint" as File
project(':compiler:ir.serialization.common').projectDir = "$rootDir/compiler/ir/serialization.common" as File
project(':compiler:ir.serialization.jvm').projectDir = "$rootDir/compiler/ir/serialization.jvm" as File
project(':compiler:ir.serialization.js').projectDir = "$rootDir/compiler/ir/serialization.js" as File
project(':compiler:ir.interpreter').projectDir = "$rootDir/compiler/ir/ir.interpreter" as File
project(':kotlin-util-io').projectDir = "$rootDir/compiler/util-io" as File
project(':kotlin-util-klib').projectDir = "$rootDir/compiler/util-klib" as File
project(':kotlin-util-klib-metadata').projectDir = "$rootDir/compiler/util-klib-metadata" as File
project(':native:kotlin-native-utils').projectDir = "$rootDir/native/utils" as File
project(':native:frontend.native').projectDir = "$rootDir/native/frontend" as File
project(':native:kotlin-klib-commonizer').projectDir = "$rootDir/native/commonizer" as File
project(":native:kotlin-klib-commonizer-api").projectDir = "$rootDir/native/commonizer-api" as File
project(':native:kotlin-klib-commonizer-embeddable').projectDir = "$rootDir/native/commonizer-embeddable" as File
project(':plugins:android-extensions-compiler').projectDir = "$rootDir/plugins/android-extensions/android-extensions-compiler" as File
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-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
project(':kotlin-project-model').projectDir = "$rootDir/libraries/tools/kotlin-project-model" as File
project(':kotlin-gradle-plugin-api').projectDir = "$rootDir/libraries/tools/kotlin-gradle-plugin-api" as File
project(':kotlin-gradle-plugin-idea').projectDir = "$rootDir/libraries/tools/kotlin-gradle-plugin-idea" as File
project(':kotlin-gradle-plugin-idea-for-compatibility-tests').projectDir = "$rootDir/libraries/tools/kotlin-gradle-plugin-idea-for-compatibility-tests" as File
project(':kotlin-gradle-plugin-dsl-codegen').projectDir = "$rootDir/libraries/tools/kotlin-gradle-plugin-dsl-codegen" as File
project(':kotlin-gradle-plugin-npm-versions-codegen').projectDir = "$rootDir/libraries/tools/kotlin-gradle-plugin-npm-versions-codegen" as File
project(':kotlin-gradle-statistics').projectDir = "$rootDir/libraries/tools/kotlin-gradle-statistics" as File
project(':kotlin-gradle-build-metrics').projectDir = "$rootDir/libraries/tools/kotlin-gradle-build-metrics" as File
project(':kotlin-gradle-plugin').projectDir = "$rootDir/libraries/tools/kotlin-gradle-plugin" as File
project(':kotlin-gradle-plugin-kpm-android').projectDir = "$rootDir/libraries/tools/kotlin-gradle-plugin-kpm-android" as File
project(':kotlin-gradle-plugin-model').projectDir = "$rootDir/libraries/tools/kotlin-gradle-plugin-model" as File
project(':kotlin-gradle-plugin-test-utils-embeddable').projectDir = "$rootDir/libraries/tools/kotlin-gradle-plugin-test-utils-embeddable" as File
project(':kotlin-gradle-plugin-integration-tests').projectDir = "$rootDir/libraries/tools/kotlin-gradle-plugin-integration-tests" as File
project(':gradle:android-test-fixes').projectDir = "$rootDir/libraries/tools/gradle/android-test-fixes" as File
project(":gradle:regression-benchmark-templates").projectDir = "$rootDir/libraries/tools/gradle/regression-benchmark-templates" as File
project(":gradle:regression-benchmarks").projectDir = "$rootDir/libraries/tools/gradle/regression-benchmarks" as File
project(':kotlin-tooling-metadata').projectDir = "$rootDir/libraries/tools/kotlin-tooling-metadata" as File
project(':kotlin-tooling-core').projectDir = "$rootDir/libraries/tools/kotlin-tooling-core" as File
project(':kotlin-allopen').projectDir = "$rootDir/libraries/tools/kotlin-allopen" as File
project(':kotlin-noarg').projectDir = "$rootDir/libraries/tools/kotlin-noarg" as File
project(':kotlin-sam-with-receiver').projectDir = "$rootDir/libraries/tools/kotlin-sam-with-receiver" as File
project(':kotlin-lombok').projectDir = "$rootDir/libraries/tools/kotlin-lombok" as File
project(':kotlin-gradle-subplugin-example').projectDir = "$rootDir/libraries/examples/kotlin-gradle-subplugin-example" as File
project(':examples:annotation-processor-example').projectDir = "$rootDir/libraries/examples/annotation-processor-example" as File
project(':kotlin-script-util').projectDir = "$rootDir/libraries/tools/kotlin-script-util" as File
project(':kotlin-annotation-processing-gradle').projectDir = "$rootDir/libraries/tools/kotlin-annotation-processing" as File
project(':kotlin-annotation-processing-embeddable').projectDir = "$rootDir/prepare/kotlin-annotation-processing-embeddable" as File
project(':kotlin-daemon-embeddable').projectDir = "$rootDir/prepare/kotlin-daemon-embeddable" as File
project(':kotlin-annotation-processing').projectDir = "$rootDir/plugins/kapt3/kapt3-compiler" as File
project(':kotlin-annotation-processing-cli').projectDir = "$rootDir/plugins/kapt3/kapt3-cli" as File
project(':kotlin-annotation-processing-base').projectDir = "$rootDir/plugins/kapt3/kapt3-base" as File
project(':kotlin-annotation-processing-runtime').projectDir = "$rootDir/plugins/kapt3/kapt3-runtime" as File
project(':examples:kotlin-jsr223-local-example').projectDir = "$rootDir/libraries/examples/kotlin-jsr223-local-example" as File
project(':examples:kotlin-jsr223-daemon-local-eval-example').projectDir = "$rootDir/libraries/examples/kotlin-jsr223-daemon-local-eval-example" as File
project(':kotlin-annotations-jvm').projectDir = "$rootDir/libraries/tools/kotlin-annotations-jvm" as File
project(':kotlin-scripting-common').projectDir = "$rootDir/libraries/scripting/common" as File
project(':kotlin-scripting-js').projectDir = "$rootDir/libraries/scripting/js" as File
project(':kotlin-scripting-js-test').projectDir = "$rootDir/libraries/scripting/js-test" as File
project(':kotlin-scripting-jvm').projectDir = "$rootDir/libraries/scripting/jvm" as File
project(':kotlin-scripting-jvm-host-unshaded').projectDir = "$rootDir/libraries/scripting/jvm-host" as File
project(':kotlin-scripting-jvm-host-test').projectDir = "$rootDir/libraries/scripting/jvm-host-test" as File
project(':kotlin-scripting-jvm-host').projectDir = "$rootDir/libraries/scripting/jvm-host-embeddable" as File
project(':kotlin-scripting-dependencies').projectDir = "$rootDir/libraries/scripting/dependencies" as File
project(':kotlin-scripting-dependencies-maven').projectDir = "$rootDir/libraries/scripting/dependencies-maven" as File
project(':kotlin-scripting-dependencies-maven-all').projectDir = "$rootDir/libraries/scripting/dependencies-maven-all" as File
project(':kotlin-scripting-jsr223-unshaded').projectDir = "$rootDir/libraries/scripting/jsr223" as File
project(':kotlin-scripting-jsr223-test').projectDir = "$rootDir/libraries/scripting/jsr223-test" as File
project(':kotlin-scripting-jsr223').projectDir = "$rootDir/libraries/scripting/jsr223-embeddable" as File
project(':kotlin-scripting-intellij').projectDir = "$rootDir/libraries/scripting/intellij" as File
project(':kotlin-scripting-compiler').projectDir = "$rootDir/plugins/scripting/scripting-compiler" as File
project(':kotlin-scripting-compiler-js').projectDir = "$rootDir/plugins/scripting/scripting-compiler-js" as File
project(':kotlin-scripting-compiler-embeddable').projectDir = "$rootDir/plugins/scripting/scripting-compiler-embeddable" as File
project(':kotlin-scripting-compiler-impl').projectDir = "$rootDir/plugins/scripting/scripting-compiler-impl" as File
project(':kotlin-scripting-compiler-impl-embeddable').projectDir = "$rootDir/plugins/scripting/scripting-compiler-impl-embeddable" as File
project(':kotlin-main-kts').projectDir = "$rootDir/libraries/tools/kotlin-main-kts" as File
project(':kotlin-main-kts-test').projectDir = "$rootDir/libraries/tools/kotlin-main-kts-test" as File
project(':examples:scripting-jvm-simple-script').projectDir = "$rootDir/libraries/examples/scripting/jvm-simple-script/script" as File
project(':examples:scripting-jvm-simple-script-host').projectDir = "$rootDir/libraries/examples/scripting/jvm-simple-script/host" as File
project(':examples:scripting-jvm-maven-deps').projectDir = "$rootDir/libraries/examples/scripting/jvm-maven-deps/script" as File
project(':examples:scripting-jvm-maven-deps-host').projectDir = "$rootDir/libraries/examples/scripting/jvm-maven-deps/host" as File
project(':examples:scripting-jvm-embeddable-host').projectDir = "$rootDir/libraries/examples/scripting/jvm-embeddable-host" as File
project(':pill:pill-importer').projectDir = "$rootDir/plugins/pill/pill-importer" as File
project(':pill:generate-all-tests').projectDir = "$rootDir/plugins/pill/generate-all-tests" as File
project(':kotlin-imports-dumper-compiler-plugin').projectDir = "$rootDir/plugins/imports-dumper" as File
project(':libraries:kotlin-prepush-hook').projectDir = "$rootDir/libraries/tools/kotlin-prepush-hook" as File
project(':plugins:jvm-abi-gen').projectDir = "$rootDir/plugins/jvm-abi-gen" as File
project(':plugins:jvm-abi-gen-embeddable').projectDir = "$rootDir/plugins/jvm-abi-gen/embeddable" as File

project(':js:js.tests').projectDir = "$rootDir/js/js.tests" as File
project(':js:js.engines').projectDir = "$rootDir/js/js.engines" as File

project(':kotlinx-serialization-compiler-plugin').projectDir = file("$rootDir/plugins/kotlin-serialization/kotlin-serialization-compiler")
project(':kotlin-serialization').projectDir = file("$rootDir/libraries/tools/kotlin-serialization")
project(':kotlin-serialization-unshaded').projectDir = file("$rootDir/libraries/tools/kotlin-serialization-unshaded")

project(':kotlinx-atomicfu-compiler-plugin').projectDir = file("$rootDir/plugins/atomicfu/atomicfu-compiler")
project(':kotlinx-atomicfu-runtime').projectDir = file("$rootDir/plugins/atomicfu/atomicfu-runtime")
project(':atomicfu').projectDir = file("$rootDir/libraries/tools/atomicfu")

project(':kotlin-scripting-ide-services-unshaded').projectDir = "$rootDir/plugins/scripting/scripting-ide-services" as File
project(':kotlin-scripting-ide-services-test').projectDir = "$rootDir/plugins/scripting/scripting-ide-services-test" as File
project(':kotlin-scripting-ide-services').projectDir = "$rootDir/plugins/scripting/scripting-ide-services-embeddable" as File
project(':kotlin-scripting-ide-common').projectDir = "$rootDir/plugins/scripting/scripting-ide-common" as File

// Uncomment to use locally built protobuf-relocated
// includeBuild("dependencies/protobuf")
if (buildProperties.isKotlinNativeEnabled) {
    include ':kotlin-native:dependencies'
    include ':kotlin-native:endorsedLibraries:kotlinx.cli'
    include ':kotlin-native:endorsedLibraries'
    include ':kotlin-native:Interop:StubGenerator'
    include ':kotlin-native:backend.native'
    include ':kotlin-native:Interop:Runtime'
    include ':kotlin-native:Interop:Indexer'
    include ':kotlin-native:Interop:JsRuntime'
    include ':kotlin-native:Interop:Skia'
    include ':kotlin-native:utilities:basic-utils'
    include ':kotlin-native:utilities:cli-runner'
    include ':kotlin-native:klib'
    include ':kotlin-native:common'
    include ':kotlin-native:runtime'
    include ':kotlin-native:libllvmext'
    include ':kotlin-native:llvmDebugInfoC'
    include ':kotlin-native:utilities'
    include ':kotlin-native:platformLibs'
    include ':kotlin-native:libclangext'
    include ':kotlin-native:backend.native:tests'
    include ":kotlin-native-compiler-embeddable"
    project(":kotlin-native-compiler-embeddable").projectDir = "$rootDir/kotlin-native/prepare/kotlin-native-embeddable-compiler" as File
}
