plugins/kotlin/util/project-model-updater/README.md
This module contains a tool for interacting with the Kotlin compiler.
In particular, it is related to Kotlin Cooperative Development.
All run configurations starts with Kotlin Coop: prefix and support as arguments:
key=value format)The order of arguments is important: the last one overrides the previous ones.
Alternatively, you can run all configurations below from a terminal via gradle run command with required arguments (they can be found in the corresponding run configuration).
Kotlin Coop: Publish Compiler JARsThe configuration runs the Kotlin compiler artifacts publication directly to this project. This is needed to work with a bootstrap compiler in kt-master setup.
kotlinCompilerRepoPath – path to the local copy of the Kotlin compiler repository. It can be either a relative or an absolute path. . points to the root of this project
.. (the parent directory of this project)Kotlin Coop: Update Compiler VersionThe configuration applies current settings to the project. In particular, it generates libraries depending on the provided compiler version.
kotlincVersion – version of the Kotlin compiler to use in the project for kotlinc libraries. Usually some dev versionjpsPluginVersion – version of the bundled Kotlin JPS plugin which can be used to build user projects. Usually the last stable versionconvertJpsToBazel – whether to convert the JPS project model to Bazel
falseKotlin Coop: Advance Compiler VersionThe configuration automatically updates the compiler version in the project and commits the changes.
newKotlincVersion – version of the Kotlin compiler to use in the project for kotlinc libraries. It has to be a publicly available version
kotlinCompilerRepoPath – path to the local copy of the Kotlin compiler repository. It is recommended to use local.properties file to specify it to not place the project inside the Kotlin repository
.. (the parent directory of this project)Kotlin Coop: Switch to BootstrapThe configuration switches the Kotlin compiler version in the project to the bootstrap mode. It is a necessary step to work with a bootstrap compiler in kt-master setup locally.