mirror of
https://github.com/jlengrand/kotlin.git
synced 2026-04-14 00:21:27 +00:00
Compare commits
149 Commits
INTEROP_IM
...
function-g
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
7de3a4cb29 | ||
|
|
412611acd6 | ||
|
|
9b01b5ad59 | ||
|
|
a422759e54 | ||
|
|
64f3540c89 | ||
|
|
1f4a0fe5ae | ||
|
|
f969403405 | ||
|
|
e258fde2af | ||
|
|
5829437933 | ||
|
|
d576348990 | ||
|
|
9fa62d7b3c | ||
|
|
31a389d317 | ||
|
|
99b0352d86 | ||
|
|
09cc8d0e2b | ||
|
|
1983570688 | ||
|
|
65c164892f | ||
|
|
bd1eefc432 | ||
|
|
06f73005ad | ||
|
|
b2dc504504 | ||
|
|
0fdae44562 | ||
|
|
7ba48146fc | ||
|
|
cb4068ba6c | ||
|
|
0a2e0ef406 | ||
|
|
789b2db7b5 | ||
|
|
edbc1ac405 | ||
|
|
2355ea791a | ||
|
|
ca3bec732e | ||
|
|
fd64b50c54 | ||
|
|
0e4e1b6941 | ||
|
|
8b5c5fb16a | ||
|
|
51b848c67f | ||
|
|
969828bf81 | ||
|
|
1bd837007e | ||
|
|
3dfba8272f | ||
|
|
076ccca14f | ||
|
|
e8e73bce15 | ||
|
|
b6b01dd4c5 | ||
|
|
2a24d9cb5a | ||
|
|
4e51cef541 | ||
|
|
67bb952df9 | ||
|
|
0969f95dfa | ||
|
|
f0eb72ad6b | ||
|
|
85e0a1b7bc | ||
|
|
02e276ce30 | ||
|
|
c029a34e0d | ||
|
|
c008822d9f | ||
|
|
1af800a07f | ||
|
|
0484a51a50 | ||
|
|
76e5e84a56 | ||
|
|
29be9d447a | ||
|
|
2cd5354c22 | ||
|
|
5c266ba184 | ||
|
|
7cdc9612f7 | ||
|
|
c169610b57 | ||
|
|
181fb81473 | ||
|
|
e980c75cab | ||
|
|
ab1f8af88b | ||
|
|
1655c3a7ca | ||
|
|
76ebec5d37 | ||
|
|
5e54f84ecd | ||
|
|
a847efdef7 | ||
|
|
40607b14a9 | ||
|
|
a5074a91ab | ||
|
|
943259dfcb | ||
|
|
0fa3c9b338 | ||
|
|
f832890360 | ||
|
|
986f999206 | ||
|
|
44c07154a2 | ||
|
|
7aa291076d | ||
|
|
b9b94c4fe3 | ||
|
|
4add819658 | ||
|
|
30df42743d | ||
|
|
09467ddc9d | ||
|
|
f9ef065c7b | ||
|
|
ecc384fbfc | ||
|
|
fd31e28903 | ||
|
|
3d89a08022 | ||
|
|
8f07ea2348 | ||
|
|
d52c49cf59 | ||
|
|
3dc3ce4c6e | ||
|
|
0702d33970 | ||
|
|
6e0ba8bd8a | ||
|
|
6c7d062cd7 | ||
|
|
d6e4309b39 | ||
|
|
184742e779 | ||
|
|
aed19965c0 | ||
|
|
f7d5f989aa | ||
|
|
38e661295e | ||
|
|
88abe52633 | ||
|
|
16b272a7cf | ||
|
|
b270e19786 | ||
|
|
2763dd068d | ||
|
|
7fd19555fc | ||
|
|
ba3cdb7fb6 | ||
|
|
2ece6f579e | ||
|
|
c9010f2756 | ||
|
|
fab69d2f22 | ||
|
|
b8d9f8dadd | ||
|
|
ea0cf43cec | ||
|
|
13394a4669 | ||
|
|
94368f1afb | ||
|
|
1ff86abdce | ||
|
|
f87d2b2feb | ||
|
|
b20749e259 | ||
|
|
9e91cf2bf1 | ||
|
|
f17fe0bf0e | ||
|
|
310a46ee73 | ||
|
|
56300b4ef7 | ||
|
|
a0286c533f | ||
|
|
7674acb45c | ||
|
|
67114fcfdc | ||
|
|
64081b71f0 | ||
|
|
10032ee259 | ||
|
|
a6ab49bf9d | ||
|
|
4ec1ca807f | ||
|
|
3b24b74340 | ||
|
|
92c481cadf | ||
|
|
dc4eb1e6c0 | ||
|
|
b506b4d91a | ||
|
|
afb6552618 | ||
|
|
42ea253765 | ||
|
|
e2561cb091 | ||
|
|
4b6fa98c09 | ||
|
|
f36e35070e | ||
|
|
4cbdaebb36 | ||
|
|
dac967d804 | ||
|
|
b930e6e8e8 | ||
|
|
7c99348051 | ||
|
|
47f1ff8a36 | ||
|
|
c5fc729297 | ||
|
|
da0fb1cbb0 | ||
|
|
24a22fe127 | ||
|
|
32c03876f2 | ||
|
|
6daa43895a | ||
|
|
82cc6ba1e3 | ||
|
|
9fff156d6c | ||
|
|
6129012d4f | ||
|
|
dd4b0d7296 | ||
|
|
f2bc5da814 | ||
|
|
5470b9a7a8 | ||
|
|
36b84247b1 | ||
|
|
66352155df | ||
|
|
7405c31d18 | ||
|
|
f44b85b326 | ||
|
|
02d1d832f1 | ||
|
|
8e696bcbf1 | ||
|
|
929957e963 | ||
|
|
9f428daad9 | ||
|
|
1b519b340e |
13
.bunch
13
.bunch
@@ -1,8 +1,7 @@
|
||||
183
|
||||
182
|
||||
181_182
|
||||
as32_181_182
|
||||
as33_182
|
||||
as34
|
||||
as35_as34
|
||||
191
|
||||
181
|
||||
173_181
|
||||
as31_173_181
|
||||
as32_181
|
||||
as33
|
||||
183
|
||||
|
||||
5
.gitignore
vendored
5
.gitignore
vendored
@@ -29,15 +29,12 @@ build/
|
||||
!**/testData/**/*.iml
|
||||
.idea/libraries/Gradle*.xml
|
||||
.idea/libraries/Maven*.xml
|
||||
.idea/artifacts/PILL_*.xml
|
||||
.idea/artifacts
|
||||
.idea/modules
|
||||
.idea/runConfigurations/JPS_*.xml
|
||||
.idea/runConfigurations/PILL_*.xml
|
||||
.idea/libraries
|
||||
.idea/modules.xml
|
||||
.idea/gradle.xml
|
||||
.idea/compiler.xml
|
||||
.idea/inspectionProfiles/profiles_settings.xml
|
||||
.idea/.name
|
||||
.idea/artifacts/dist_auto_*
|
||||
kotlin-ultimate/
|
||||
|
||||
27
.idea/artifacts/dist.xml
generated
27
.idea/artifacts/dist.xml
generated
@@ -1,27 +0,0 @@
|
||||
<component name="ArtifactManager">
|
||||
<artifact build-on-make="true" name="dist">
|
||||
<output-path>$PROJECT_DIR$/dist</output-path>
|
||||
<root id="root">
|
||||
<element id="directory" name="artifacts">
|
||||
<element id="directory" name="ideaPlugin">
|
||||
<element id="artifact" artifact-name="ideaPlugin" />
|
||||
</element>
|
||||
</element>
|
||||
<element id="file-copy" path="$PROJECT_DIR$/build/build.txt" />
|
||||
<element id="file-copy" path="$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-stdlib-minimal-for-test/1.3.30-dev-1945/fd51bf7cb7a2f99efe9b0e6435acf2dfe43f34b2/kotlin-stdlib-minimal-for-test-1.3.30-dev-1945.jar" output-file-name="kotlin-stdlib-minimal-for-test.jar" />
|
||||
<element id="directory" name="common">
|
||||
<element id="file-copy" path="$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-stdlib-common/1.3.30-dev-1945/547b60cf86ed0355a2312093d200f503ce9803f3/kotlin-stdlib-common-1.3.30-dev-1945.jar" output-file-name="kotlin-stdlib-common.jar" />
|
||||
<element id="file-copy" path="$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-stdlib-common/1.3.30-dev-1945/37fb3685709b0eca5dccc1a7b12ab5bebdcbe316/kotlin-stdlib-common-1.3.30-dev-1945-sources.jar" output-file-name="kotlin-stdlib-common-sources.jar" />
|
||||
</element>
|
||||
<element id="directory" name="js">
|
||||
<element id="extracted-dir" path="$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-stdlib-js/1.3.30-dev-1945/9343ff4e085b20921479da5c3125c379986c84df/kotlin-stdlib-js-1.3.30-dev-1945.jar" path-in-jar="/" />
|
||||
</element>
|
||||
<element id="directory" name="maven">
|
||||
<element id="file-copy" path="$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-stdlib/1.3.30-dev-1945/af8320f3d13a7ab373e7f29f63b7749aa938ee54/kotlin-stdlib-1.3.30-dev-1945-sources.jar" output-file-name="kotlin-stdlib-sources.jar" />
|
||||
</element>
|
||||
<element id="directory" name="kotlinc">
|
||||
<element id="artifact" artifact-name="kotlinc" />
|
||||
</element>
|
||||
</root>
|
||||
</artifact>
|
||||
</component>
|
||||
215
.idea/artifacts/ideaPlugin.xml
generated
215
.idea/artifacts/ideaPlugin.xml
generated
@@ -1,215 +0,0 @@
|
||||
<component name="ArtifactManager">
|
||||
<artifact name="ideaPlugin">
|
||||
<output-path>$PROJECT_DIR$/out/artifacts/ideaPlugin</output-path>
|
||||
<root id="root">
|
||||
<element id="directory" name="Kotlin">
|
||||
<element id="directory" name="lib">
|
||||
<element id="file-copy" path="$USER_HOME$/.gradle/caches/modules-2/files-2.1/io.javaslang/javaslang/2.0.6/415b0d40db4890849270c2a5cb50050fc6ee7636/javaslang-2.0.6.jar" />
|
||||
<element id="file-copy" path="$USER_HOME$/.gradle/caches/modules-2/files-2.1/javax.inject/javax.inject/1/6975da39a7040257bd51d21a231b76c915872d38/javax.inject-1.jar" />
|
||||
<element id="file-copy" path="$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlinx/kotlinx-coroutines-core/1.0.1/f33e8dab753f33d1bbb07cca664fd6f13d993d7e/kotlinx-coroutines-core-1.0.1.jar" />
|
||||
<element id="file-copy" path="$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlinx/kotlinx-coroutines-jdk8/1.0.1/ee52dcd51dbdd3f94271cab32c76ce820adfe024/kotlinx-coroutines-jdk8-1.0.1.jar" />
|
||||
<element id="file-copy" path="$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.jetbrains/markdown/0.1.25/f22b57c632b83433112102c9da9a0f8edf946091/markdown-0.1.25.jar" />
|
||||
<element id="file-copy" path="$USER_HOME$/.gradle/caches/modules-2/files-2.1/io.javaslang/javaslang-match/2.0.6/d57a666939103b659813de52102d3ff0baa8ad5f/javaslang-match-2.0.6.jar" />
|
||||
<element id="archive" name="allopen-ide-plugin.jar">
|
||||
<element id="module-output" name="kotlin.allopen-ide-plugin.main" />
|
||||
<element id="directory" name="META-INF">
|
||||
<element id="file-copy" path="$PROJECT_DIR$/plugins/allopen/allopen-ide/build/tmp/jar/MANIFEST.MF" />
|
||||
</element>
|
||||
</element>
|
||||
<element id="archive" name="android-lint.jar">
|
||||
<element id="module-output" name="kotlin.plugins.lint.main" />
|
||||
<element id="module-output" name="kotlin.plugins.uast-kotlin.main" />
|
||||
<element id="module-output" name="kotlin.plugins.uast-kotlin-idea.main" />
|
||||
<element id="directory" name="META-INF">
|
||||
<element id="file-copy" path="$PROJECT_DIR$/prepare/android-lint/build/tmp/jar/MANIFEST.MF" />
|
||||
</element>
|
||||
</element>
|
||||
<element id="archive" name="android-ide.jar">
|
||||
<element id="module-output" name="kotlin.idea.idea-android.main" />
|
||||
<element id="directory" name="META-INF">
|
||||
<element id="file-copy" path="$PROJECT_DIR$/idea/idea-android/build/tmp/jar/MANIFEST.MF" />
|
||||
</element>
|
||||
</element>
|
||||
<element id="archive" name="android-output-parser-ide.jar">
|
||||
<element id="module-output" name="kotlin.idea.idea-android-output-parser.main" />
|
||||
<element id="directory" name="META-INF">
|
||||
<element id="file-copy" path="$PROJECT_DIR$/idea/idea-android/idea-android-output-parser/build/tmp/jar/MANIFEST.MF" />
|
||||
</element>
|
||||
</element>
|
||||
<element id="archive" name="idea-git.jar">
|
||||
<element id="module-output" name="kotlin.idea.idea-git.main" />
|
||||
<element id="directory" name="META-INF">
|
||||
<element id="file-copy" path="$PROJECT_DIR$/idea/idea-git/build/tmp/jar/MANIFEST.MF" />
|
||||
</element>
|
||||
</element>
|
||||
<element id="archive" name="jps-common-ide.jar">
|
||||
<element id="module-output" name="kotlin.idea.idea-jps-common.main" />
|
||||
<element id="directory" name="META-INF">
|
||||
<element id="file-copy" path="$PROJECT_DIR$/idea/idea-jps-common/build/tmp/jar/MANIFEST.MF" />
|
||||
</element>
|
||||
</element>
|
||||
<element id="archive" name="jvm-ide.jar">
|
||||
<element id="module-output" name="kotlin.idea.idea-jvm.main" />
|
||||
<element id="directory" name="META-INF">
|
||||
<element id="file-copy" path="$PROJECT_DIR$/idea/idea-jvm/build/tmp/jar/MANIFEST.MF" />
|
||||
</element>
|
||||
</element>
|
||||
<element id="archive" name="maven-ide.jar">
|
||||
<element id="module-output" name="kotlin.idea.idea-maven.main" />
|
||||
<element id="directory" name="META-INF">
|
||||
<element id="file-copy" path="$PROJECT_DIR$/idea/idea-maven/build/tmp/jar/MANIFEST.MF" />
|
||||
</element>
|
||||
</element>
|
||||
<element id="archive" name="kotlin-gradle-tooling.jar">
|
||||
<element id="module-output" name="kotlin.idea.kotlin-gradle-tooling.main" />
|
||||
<element id="directory" name="META-INF">
|
||||
<element id="file-copy" path="$PROJECT_DIR$/idea/kotlin-gradle-tooling/build/tmp/jar/MANIFEST.MF" />
|
||||
</element>
|
||||
</element>
|
||||
<element id="archive" name="j2k.jar">
|
||||
<element id="module-output" name="kotlin.j2k.main" />
|
||||
<element id="directory" name="META-INF">
|
||||
<element id="file-copy" path="$PROJECT_DIR$/j2k/build/tmp/jar/MANIFEST.MF" />
|
||||
</element>
|
||||
</element>
|
||||
<element id="archive" name="kotlin-allopen-compiler-plugin.jar">
|
||||
<element id="module-output" name="kotlin.kotlin-allopen-compiler-plugin.main" />
|
||||
<element id="directory" name="META-INF">
|
||||
<element id="file-copy" path="$PROJECT_DIR$/plugins/allopen/allopen-cli/build/tmp/jar/MANIFEST.MF" />
|
||||
</element>
|
||||
</element>
|
||||
<element id="archive" name="kotlin-noarg-compiler-plugin.jar">
|
||||
<element id="module-output" name="kotlin.kotlin-noarg-compiler-plugin.main" />
|
||||
<element id="directory" name="META-INF">
|
||||
<element id="file-copy" path="$PROJECT_DIR$/plugins/noarg/noarg-cli/build/tmp/jar/MANIFEST.MF" />
|
||||
</element>
|
||||
</element>
|
||||
<element id="archive" name="kotlin-sam-with-receiver-compiler-plugin.jar">
|
||||
<element id="module-output" name="kotlin.kotlin-sam-with-receiver-compiler-plugin.main" />
|
||||
<element id="directory" name="META-INF">
|
||||
<element id="file-copy" path="$PROJECT_DIR$/plugins/sam-with-receiver/sam-with-receiver-cli/build/tmp/jar/MANIFEST.MF" />
|
||||
</element>
|
||||
</element>
|
||||
<element id="archive" name="kotlin-script-util.jar">
|
||||
<element id="module-output" name="kotlin.kotlin-script-util.main" />
|
||||
<element id="directory" name="META-INF">
|
||||
<element id="file-copy" path="$PROJECT_DIR$/libraries/tools/kotlin-script-util/build/tmp/jar/MANIFEST.MF" />
|
||||
</element>
|
||||
</element>
|
||||
<element id="archive" name="kotlin-scripting-common.jar">
|
||||
<element id="module-output" name="kotlin.kotlin-scripting-common.main" />
|
||||
<element id="directory" name="META-INF">
|
||||
<element id="file-copy" path="$PROJECT_DIR$/libraries/scripting/common/build/tmp/jar/MANIFEST.MF" />
|
||||
</element>
|
||||
</element>
|
||||
<element id="archive" name="kotlin-scripting-common-sources.jar">
|
||||
<element id="dir-copy" path="$PROJECT_DIR$/libraries/scripting/common/src" />
|
||||
<element id="directory" name="main">
|
||||
<element id="directory" name="kotlin" />
|
||||
</element>
|
||||
<element id="directory" name="META-INF">
|
||||
<element id="file-copy" path="$PROJECT_DIR$/libraries/scripting/common/build/tmp/sourcesJar/MANIFEST.MF" />
|
||||
</element>
|
||||
</element>
|
||||
<element id="archive" name="kotlin-scripting-compiler.jar">
|
||||
<element id="module-output" name="kotlin.kotlin-scripting-compiler.main" />
|
||||
<element id="directory" name="META-INF">
|
||||
<element id="file-copy" path="$PROJECT_DIR$/plugins/scripting/scripting-cli/build/tmp/jar/MANIFEST.MF" />
|
||||
</element>
|
||||
</element>
|
||||
<element id="archive" name="kotlin-scripting-idea.jar">
|
||||
<element id="module-output" name="kotlin.kotlin-scripting-idea.main" />
|
||||
<element id="directory" name="META-INF">
|
||||
<element id="file-copy" path="$PROJECT_DIR$/plugins/scripting/scripting-idea/build/tmp/jar/MANIFEST.MF" />
|
||||
</element>
|
||||
</element>
|
||||
<element id="archive" name="kotlin-scripting-intellij.jar">
|
||||
<element id="module-output" name="kotlin.kotlin-scripting-intellij.main" />
|
||||
<element id="directory" name="META-INF">
|
||||
<element id="file-copy" path="$PROJECT_DIR$/libraries/scripting/intellij/build/tmp/jar/MANIFEST.MF" />
|
||||
</element>
|
||||
</element>
|
||||
<element id="archive" name="kotlin-scripting-jvm.jar">
|
||||
<element id="module-output" name="kotlin.kotlin-scripting-jvm.main" />
|
||||
<element id="directory" name="META-INF">
|
||||
<element id="file-copy" path="$PROJECT_DIR$/libraries/scripting/jvm/build/tmp/jar/MANIFEST.MF" />
|
||||
</element>
|
||||
</element>
|
||||
<element id="archive" name="kotlin-scripting-jvm-sources.jar">
|
||||
<element id="dir-copy" path="$PROJECT_DIR$/libraries/scripting/jvm/src" />
|
||||
<element id="directory" name="main">
|
||||
<element id="directory" name="kotlin" />
|
||||
</element>
|
||||
<element id="directory" name="META-INF">
|
||||
<element id="file-copy" path="$PROJECT_DIR$/libraries/scripting/jvm/build/tmp/sourcesJar/MANIFEST.MF" />
|
||||
</element>
|
||||
</element>
|
||||
<element id="archive" name="kotlinx-serialization-compiler-plugin.jar">
|
||||
<element id="module-output" name="kotlin.kotlinx-serialization-compiler-plugin.main" />
|
||||
<element id="directory" name="META-INF">
|
||||
<element id="file-copy" path="$PROJECT_DIR$/plugins/kotlin-serialization/kotlin-serialization-compiler/build/tmp/jar/MANIFEST.MF" />
|
||||
</element>
|
||||
</element>
|
||||
<element id="archive" name="kotlinx-serialization-ide-plugin.jar">
|
||||
<element id="module-output" name="kotlin.kotlinx-serialization-ide-plugin.main" />
|
||||
<element id="directory" name="META-INF">
|
||||
<element id="file-copy" path="$PROJECT_DIR$/plugins/kotlin-serialization/kotlin-serialization-ide/build/tmp/jar/MANIFEST.MF" />
|
||||
</element>
|
||||
</element>
|
||||
<element id="archive" name="noarg-ide-plugin.jar">
|
||||
<element id="module-output" name="kotlin.noarg-ide-plugin.main" />
|
||||
<element id="directory" name="META-INF">
|
||||
<element id="file-copy" path="$PROJECT_DIR$/plugins/noarg/noarg-ide/build/tmp/jar/MANIFEST.MF" />
|
||||
</element>
|
||||
</element>
|
||||
<element id="archive" name="android-extensions-compiler.jar">
|
||||
<element id="module-output" name="kotlin.plugins.android-extensions-compiler.main" />
|
||||
<element id="module-output" name="kotlin.kotlin-android-extensions-runtime.main" />
|
||||
<element id="directory" name="META-INF">
|
||||
<element id="file-copy" path="$PROJECT_DIR$/plugins/android-extensions/android-extensions-compiler/build/tmp/jar/MANIFEST.MF" />
|
||||
</element>
|
||||
</element>
|
||||
<element id="archive" name="android-extensions-ide.jar">
|
||||
<element id="module-output" name="kotlin.plugins.android-extensions-ide.main" />
|
||||
<element id="directory" name="META-INF">
|
||||
<element id="file-copy" path="$PROJECT_DIR$/plugins/android-extensions/android-extensions-idea/build/tmp/jar/MANIFEST.MF" />
|
||||
</element>
|
||||
</element>
|
||||
<element id="archive" name="kapt3-idea.jar">
|
||||
<element id="module-output" name="kotlin.plugins.kapt3-idea.main" />
|
||||
<element id="directory" name="META-INF">
|
||||
<element id="file-copy" path="$PROJECT_DIR$/plugins/kapt3/kapt3-idea/build/tmp/jar/MANIFEST.MF" />
|
||||
</element>
|
||||
</element>
|
||||
<element id="archive" name="kotlin-script-runtime.jar">
|
||||
<element id="module-output" name="kotlin.kotlin-script-runtime.main" />
|
||||
<element id="directory" name="META-INF">
|
||||
<element id="file-copy" path="$PROJECT_DIR$/libraries/tools/script-runtime/build/tmp/jar/MANIFEST.MF" />
|
||||
</element>
|
||||
</element>
|
||||
<element id="archive" name="sam-with-receiver-ide-plugin.jar">
|
||||
<element id="module-output" name="kotlin.sam-with-receiver-ide-plugin.main" />
|
||||
<element id="directory" name="META-INF">
|
||||
<element id="file-copy" path="$PROJECT_DIR$/plugins/sam-with-receiver/sam-with-receiver-ide/build/tmp/jar/MANIFEST.MF" />
|
||||
</element>
|
||||
</element>
|
||||
<element id="directory" name="jps">
|
||||
<element id="artifact" artifact-name="kotlin-jps-plugin.jar" />
|
||||
</element>
|
||||
<element id="file-copy" path="$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-stdlib-jdk8/1.3.30-dev-1945/a3bd59a6a1a46590da6af97c48935342031619df/kotlin-stdlib-jdk8-1.3.30-dev-1945.jar" output-file-name="kotlin-stdlib-jdk8.jar" />
|
||||
<element id="file-copy" path="$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-stdlib-jdk7/1.3.30-dev-1945/ed140be9ff355822aafea93dba58bc2621ae6ad0/kotlin-stdlib-jdk7-1.3.30-dev-1945.jar" output-file-name="kotlin-stdlib-jdk7.jar" />
|
||||
<element id="file-copy" path="$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-stdlib/1.3.30-dev-1945/561b4a9c9bc7c799658e0b7b898b2861585a5cbf/kotlin-stdlib-1.3.30-dev-1945.jar" output-file-name="kotlin-stdlib.jar" />
|
||||
<element id="artifact" artifact-name="kotlin-reflect.jar" />
|
||||
<element id="artifact" artifact-name="kotlin-compiler-client-embeddable.jar" />
|
||||
<element id="artifact" artifact-name="kotlin-plugin.jar" />
|
||||
<element id="file-copy" path="$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-stdlib-common/1.3.30-dev-1945/547b60cf86ed0355a2312093d200f503ce9803f3/kotlin-stdlib-common-1.3.30-dev-1945.jar" output-file-name="kotlin-stdlib-common.jar" />
|
||||
<element id="file-copy" path="$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.jetbrains/annotations/13.0/919f0dfe192fb4e063e7dacadee7f8bb9a2672a9/annotations-13.0.jar" />
|
||||
<element id="artifact" artifact-name="kotlin-daemon-client.jar" />
|
||||
</element>
|
||||
<element id="directory" name="kotlinc">
|
||||
<element id="artifact" artifact-name="kotlinc" />
|
||||
</element>
|
||||
</element>
|
||||
</root>
|
||||
</artifact>
|
||||
</component>
|
||||
@@ -1,29 +0,0 @@
|
||||
<component name="ArtifactManager">
|
||||
<artifact type="jar" name="kotlin-compiler-client-embeddable.jar">
|
||||
<output-path>$PROJECT_DIR$/out/artifacts/kotlin_compiler_client_embeddable_jar</output-path>
|
||||
<root id="archive" name="kotlin-compiler-client-embeddable.jar">
|
||||
<element id="directory" name="META-INF">
|
||||
<element id="file-copy" path="$PROJECT_DIR$/prepare/compiler-client-embeddable/build/tmp/shadowJar/MANIFEST.MF" />
|
||||
</element>
|
||||
<element id="extracted-dir" path="$USER_HOME$/.gradle/caches/modules-2/files-2.1/net.rubygrapefruit/native-platform/0.14/48341d68b4456bea76ca952b6d38b877881350f7/native-platform-0.14.jar" path-in-jar="/" />
|
||||
<element id="extracted-dir" path="$USER_HOME$/.gradle/caches/modules-2/files-2.1/net.rubygrapefruit/native-platform-freebsd-amd64-libcpp/0.14/b45561900830d676e9e0040561e68abe86fbc10e/native-platform-freebsd-amd64-libcpp-0.14.jar" path-in-jar="/" />
|
||||
<element id="extracted-dir" path="$USER_HOME$/.gradle/caches/modules-2/files-2.1/net.rubygrapefruit/native-platform-freebsd-amd64-libstdcpp/0.14/bcc4e58ef4db56052fe9512d2d1265f11dc9242f/native-platform-freebsd-amd64-libstdcpp-0.14.jar" path-in-jar="/" />
|
||||
<element id="extracted-dir" path="$USER_HOME$/.gradle/caches/modules-2/files-2.1/net.rubygrapefruit/native-platform-freebsd-i386-libcpp/0.14/50b15724c82808c2b7fefd9b0b7c6dd977623f35/native-platform-freebsd-i386-libcpp-0.14.jar" path-in-jar="/" />
|
||||
<element id="extracted-dir" path="$USER_HOME$/.gradle/caches/modules-2/files-2.1/net.rubygrapefruit/native-platform-freebsd-i386-libstdcpp/0.14/d98be0a75890523a6a70dc93795101145828a5da/native-platform-freebsd-i386-libstdcpp-0.14.jar" path-in-jar="/" />
|
||||
<element id="extracted-dir" path="$USER_HOME$/.gradle/caches/modules-2/files-2.1/net.rubygrapefruit/native-platform-linux-amd64/0.14/d0ac539a32015e91e309c20e493d220aae88811b/native-platform-linux-amd64-0.14.jar" path-in-jar="/" />
|
||||
<element id="extracted-dir" path="$USER_HOME$/.gradle/caches/modules-2/files-2.1/net.rubygrapefruit/native-platform-linux-amd64-ncurses5/0.14/6dece223855317a75c371fb72d826582893351c6/native-platform-linux-amd64-ncurses5-0.14.jar" path-in-jar="/" />
|
||||
<element id="extracted-dir" path="$USER_HOME$/.gradle/caches/modules-2/files-2.1/net.rubygrapefruit/native-platform-linux-amd64-ncurses6/0.14/8effac668ad781893fc33fd86f993c5de559d355/native-platform-linux-amd64-ncurses6-0.14.jar" path-in-jar="/" />
|
||||
<element id="extracted-dir" path="$USER_HOME$/.gradle/caches/modules-2/files-2.1/net.rubygrapefruit/native-platform-linux-i386/0.14/6576c08a9a514a6ae5623e6f8da04502cac23bde/native-platform-linux-i386-0.14.jar" path-in-jar="/" />
|
||||
<element id="extracted-dir" path="$USER_HOME$/.gradle/caches/modules-2/files-2.1/net.rubygrapefruit/native-platform-linux-i386-ncurses5/0.14/80ec77af683abeaa58ed11b9c2cad2d02837e55f/native-platform-linux-i386-ncurses5-0.14.jar" path-in-jar="/" />
|
||||
<element id="extracted-dir" path="$USER_HOME$/.gradle/caches/modules-2/files-2.1/net.rubygrapefruit/native-platform-linux-i386-ncurses6/0.14/615dea7e75ca704bba1de9b671652283a9743894/native-platform-linux-i386-ncurses6-0.14.jar" path-in-jar="/" />
|
||||
<element id="extracted-dir" path="$USER_HOME$/.gradle/caches/modules-2/files-2.1/net.rubygrapefruit/native-platform-osx-amd64/0.14/5e5c113c32c0bac5cf2dcd3a59e4b021023d86a1/native-platform-osx-amd64-0.14.jar" path-in-jar="/" />
|
||||
<element id="extracted-dir" path="$USER_HOME$/.gradle/caches/modules-2/files-2.1/net.rubygrapefruit/native-platform-osx-i386/0.14/fd86b7eedbf5a0df003cf946f0b0c80c06c103ee/native-platform-osx-i386-0.14.jar" path-in-jar="/" />
|
||||
<element id="extracted-dir" path="$USER_HOME$/.gradle/caches/modules-2/files-2.1/net.rubygrapefruit/native-platform-windows-amd64/0.14/bdf519fab10700fadc9953526a07e8104fad1d07/native-platform-windows-amd64-0.14.jar" path-in-jar="/" />
|
||||
<element id="extracted-dir" path="$USER_HOME$/.gradle/caches/modules-2/files-2.1/net.rubygrapefruit/native-platform-windows-i386/0.14/65b00e123554f42ecd0da054a747033be5da608d/native-platform-windows-i386-0.14.jar" path-in-jar="/" />
|
||||
<element id="module-output" name="kotlin.compiler.cli-common.main" />
|
||||
<element id="module-output" name="kotlin.compiler.daemon-common.main" />
|
||||
<element id="module-output" name="kotlin.kotlin-compiler-client-embeddable.main" />
|
||||
<element id="module-output" name="kotlin.kotlin-daemon-client.main" />
|
||||
</root>
|
||||
</artifact>
|
||||
</component>
|
||||
72
.idea/artifacts/kotlin_compiler_jar.xml
generated
72
.idea/artifacts/kotlin_compiler_jar.xml
generated
@@ -1,72 +0,0 @@
|
||||
<component name="ArtifactManager">
|
||||
<artifact type="jar" name="kotlin-compiler.jar">
|
||||
<output-path>$PROJECT_DIR$/out/artifacts/kotlin_compiler_jar</output-path>
|
||||
<root id="archive" name="kotlin-compiler.jar">
|
||||
<element id="directory" name="META-INF">
|
||||
<element id="directory" name="extensions">
|
||||
<element id="file-copy" path="$PROJECT_DIR$/idea/resources/META-INF/extensions/compiler.xml" />
|
||||
</element>
|
||||
<element id="file-copy" path="$PROJECT_DIR$/prepare/compiler/build/tmp/packCompiler/MANIFEST.MF" />
|
||||
</element>
|
||||
<element id="extracted-dir" path="$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/builtins/1.3.30-dev-1945/f5c03880d3dc304ef5dacc511310e12dac983ba6/builtins-1.3.30-dev-1945.jar" path-in-jar="/" />
|
||||
<element id="extracted-dir" path="$PROJECT_DIR$/buildSrc/prepare-deps/intellij-sdk/build/repo/kotlin.build.custom.deps/183.5153.4/intellij/lib/asm-all-7.0.jar" path-in-jar="/" />
|
||||
<element id="extracted-dir" path="$PROJECT_DIR$/buildSrc/prepare-deps/intellij-sdk/build/repo/kotlin.build.custom.deps/183.5153.4/intellij/lib/guava-25.1-jre.jar" path-in-jar="/" />
|
||||
<element id="extracted-dir" path="$PROJECT_DIR$/buildSrc/prepare-deps/intellij-sdk/build/repo/kotlin.build.custom.deps/183.5153.4/intellij-core/intellij-core.jar" path-in-jar="/" />
|
||||
<element id="extracted-dir" path="$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.fusesource.jansi/jansi/1.16/b1aaf0028852164ab6b4057192ccd0ba7dedd3a5/jansi-1.16.jar" path-in-jar="/" />
|
||||
<element id="extracted-dir" path="$PROJECT_DIR$/buildSrc/prepare-deps/intellij-sdk/build/repo/kotlin.build.custom.deps/183.5153.4/intellij-core/java-compatibility-1.0.1.jar" path-in-jar="/" />
|
||||
<element id="extracted-dir" path="$USER_HOME$/.gradle/caches/modules-2/files-2.1/io.javaslang/javaslang/2.0.6/415b0d40db4890849270c2a5cb50050fc6ee7636/javaslang-2.0.6.jar" path-in-jar="/" />
|
||||
<element id="extracted-dir" path="$USER_HOME$/.gradle/caches/modules-2/files-2.1/io.javaslang/javaslang-match/2.0.6/d57a666939103b659813de52102d3ff0baa8ad5f/javaslang-match-2.0.6.jar" path-in-jar="/" />
|
||||
<element id="extracted-dir" path="$USER_HOME$/.gradle/caches/modules-2/files-2.1/javax.inject/javax.inject/1/6975da39a7040257bd51d21a231b76c915872d38/javax.inject-1.jar" path-in-jar="/" />
|
||||
<element id="extracted-dir" path="$PROJECT_DIR$/buildSrc/prepare-deps/intellij-sdk/build/repo/kotlin.build.custom.deps/183.5153.4/intellij/lib/jdom.jar" path-in-jar="/" />
|
||||
<element id="extracted-dir" path="$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.jline/jline/3.3.1/d8a30137fe4ee2246b71b3915baac767d348c5bb/jline-3.3.1.jar" path-in-jar="/" />
|
||||
<element id="extracted-dir" path="$PROJECT_DIR$/buildSrc/prepare-deps/intellij-sdk/build/repo/kotlin.build.custom.deps/183.5153.4/intellij/lib/jna-platform.jar" path-in-jar="/" />
|
||||
<element id="extracted-dir" path="$PROJECT_DIR$/buildSrc/prepare-deps/intellij-sdk/build/repo/kotlin.build.custom.deps/183.5153.4/intellij/lib/jna.jar" path-in-jar="/" />
|
||||
<element id="extracted-dir" path="$PROJECT_DIR$/buildSrc/prepare-deps/intellij-sdk/build/repo/kotlin.build.custom.deps/183.5153.4/jps-standalone/jps-model.jar" path-in-jar="/" />
|
||||
<element id="extracted-dir" path="$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.google.code.findbugs/jsr305/1.3.9/40719ea6961c0cb6afaeb6a921eaa1f6afd4cfdf/jsr305-1.3.9.jar" path-in-jar="/" />
|
||||
<element id="extracted-dir" path="$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlinx/kotlinx-coroutines-core/1.0.1/f33e8dab753f33d1bbb07cca664fd6f13d993d7e/kotlinx-coroutines-core-1.0.1.jar" path-in-jar="/" />
|
||||
<element id="extracted-dir" path="$PROJECT_DIR$/buildSrc/prepare-deps/intellij-sdk/build/repo/kotlin.build.custom.deps/183.5153.4/intellij/lib/log4j.jar" path-in-jar="/" />
|
||||
<element id="extracted-dir" path="$PROJECT_DIR$/buildSrc/prepare-deps/intellij-sdk/build/repo/kotlin.build.custom.deps/183.5153.4/intellij/lib/lz4-1.3.0.jar" path-in-jar="/" />
|
||||
<element id="extracted-dir" path="$PROJECT_DIR$/buildSrc/prepare-deps/intellij-sdk/build/repo/kotlin.build.custom.deps/183.5153.4/intellij/lib/oro-2.0.8.jar" path-in-jar="/" />
|
||||
<element id="extracted-dir" path="$PROJECT_DIR$/buildSrc/prepare-deps/intellij-sdk/build/repo/kotlin.build.custom.deps/183.5153.4/intellij/lib/picocontainer-1.2.jar" path-in-jar="/" />
|
||||
<element id="extracted-dir" path="$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/protobuf-relocated/2.6.1/9a9536949348fae596f4878243dffd0ed351993d/protobuf-relocated-2.6.1.jar" path-in-jar="/" />
|
||||
<element id="extracted-dir" path="$PROJECT_DIR$/buildSrc/prepare-deps/intellij-sdk/build/repo/kotlin.build.custom.deps/183.5153.4/intellij/lib/streamex-0.6.7.jar" path-in-jar="/" />
|
||||
<element id="module-output" name="kotlin.compiler.backend-common.main" />
|
||||
<element id="module-output" name="kotlin.compiler.backend.js.main" />
|
||||
<element id="module-output" name="kotlin.compiler.backend.jvm.main" />
|
||||
<element id="module-output" name="kotlin.compiler.backend.main" />
|
||||
<element id="module-output" name="kotlin.compiler.cli-common.main" />
|
||||
<element id="module-output" name="kotlin.compiler.cli.main" />
|
||||
<element id="module-output" name="kotlin.compiler.main" />
|
||||
<element id="module-output" name="kotlin.compiler.container.main" />
|
||||
<element id="module-output" name="kotlin.compiler.daemon-common.main" />
|
||||
<element id="module-output" name="kotlin.compiler.daemon.main" />
|
||||
<element id="module-output" name="kotlin.core.descriptors.jvm.main" />
|
||||
<element id="module-output" name="kotlin.core.descriptors.main" />
|
||||
<element id="module-output" name="kotlin.core.deserialization.main" />
|
||||
<element id="module-output" name="kotlin.compiler.frontend.java.main" />
|
||||
<element id="module-output" name="kotlin.compiler.frontend.script.main" />
|
||||
<element id="module-output" name="kotlin.compiler.frontend.main" />
|
||||
<element id="module-output" name="kotlin.compiler.incremental-compilation-impl.main" />
|
||||
<element id="module-output" name="kotlin.compiler.ir.backend.common.main" />
|
||||
<element id="module-output" name="kotlin.compiler.ir.psi2ir.main" />
|
||||
<element id="module-output" name="kotlin.compiler.ir.tree.main" />
|
||||
<element id="module-output" name="kotlin.js.js.ast.main" />
|
||||
<element id="module-output" name="kotlin.js.js.dce.main" />
|
||||
<element id="module-output" name="kotlin.js.js.frontend.main" />
|
||||
<element id="module-output" name="kotlin.js.js.parser.main" />
|
||||
<element id="module-output" name="kotlin.js.js.serializer.main" />
|
||||
<element id="module-output" name="kotlin.js.js.translator.main" />
|
||||
<element id="module-output" name="kotlin.kotlin-build-common.main" />
|
||||
<element id="module-output" name="kotlin.compiler.light-classes.main" />
|
||||
<element id="module-output" name="kotlin.core.metadata.jvm.main" />
|
||||
<element id="module-output" name="kotlin.core.metadata.main" />
|
||||
<element id="module-output" name="kotlin.compiler.plugin-api.main" />
|
||||
<element id="module-output" name="kotlin.compiler.psi.main" />
|
||||
<element id="module-output" name="kotlin.compiler.resolution.main" />
|
||||
<element id="module-output" name="kotlin.compiler.serialization.main" />
|
||||
<element id="module-output" name="kotlin.core.util.runtime.main" />
|
||||
<element id="module-output" name="kotlin.compiler.util.main" />
|
||||
<element id="module-output" name="kotlin.compiler.frontend.common.main" />
|
||||
</root>
|
||||
</artifact>
|
||||
</component>
|
||||
27
.idea/artifacts/kotlin_daemon_client_jar.xml
generated
27
.idea/artifacts/kotlin_daemon_client_jar.xml
generated
@@ -1,27 +0,0 @@
|
||||
<component name="ArtifactManager">
|
||||
<artifact type="jar" name="kotlin-daemon-client.jar">
|
||||
<output-path>$PROJECT_DIR$/out/artifacts/kotlin_daemon_client_jar</output-path>
|
||||
<root id="archive" name="kotlin-daemon-client.jar">
|
||||
<element id="extracted-dir" path="$USER_HOME$/.gradle/caches/modules-2/files-2.1/net.rubygrapefruit/native-platform/0.14/48341d68b4456bea76ca952b6d38b877881350f7/native-platform-0.14.jar" path-in-jar="/" />
|
||||
<element id="extracted-dir" path="$USER_HOME$/.gradle/caches/modules-2/files-2.1/net.rubygrapefruit/native-platform-freebsd-amd64-libcpp/0.14/b45561900830d676e9e0040561e68abe86fbc10e/native-platform-freebsd-amd64-libcpp-0.14.jar" path-in-jar="/" />
|
||||
<element id="extracted-dir" path="$USER_HOME$/.gradle/caches/modules-2/files-2.1/net.rubygrapefruit/native-platform-freebsd-amd64-libstdcpp/0.14/bcc4e58ef4db56052fe9512d2d1265f11dc9242f/native-platform-freebsd-amd64-libstdcpp-0.14.jar" path-in-jar="/" />
|
||||
<element id="extracted-dir" path="$USER_HOME$/.gradle/caches/modules-2/files-2.1/net.rubygrapefruit/native-platform-freebsd-i386-libcpp/0.14/50b15724c82808c2b7fefd9b0b7c6dd977623f35/native-platform-freebsd-i386-libcpp-0.14.jar" path-in-jar="/" />
|
||||
<element id="extracted-dir" path="$USER_HOME$/.gradle/caches/modules-2/files-2.1/net.rubygrapefruit/native-platform-freebsd-i386-libstdcpp/0.14/d98be0a75890523a6a70dc93795101145828a5da/native-platform-freebsd-i386-libstdcpp-0.14.jar" path-in-jar="/" />
|
||||
<element id="extracted-dir" path="$USER_HOME$/.gradle/caches/modules-2/files-2.1/net.rubygrapefruit/native-platform-linux-amd64/0.14/d0ac539a32015e91e309c20e493d220aae88811b/native-platform-linux-amd64-0.14.jar" path-in-jar="/" />
|
||||
<element id="extracted-dir" path="$USER_HOME$/.gradle/caches/modules-2/files-2.1/net.rubygrapefruit/native-platform-linux-amd64-ncurses5/0.14/6dece223855317a75c371fb72d826582893351c6/native-platform-linux-amd64-ncurses5-0.14.jar" path-in-jar="/" />
|
||||
<element id="extracted-dir" path="$USER_HOME$/.gradle/caches/modules-2/files-2.1/net.rubygrapefruit/native-platform-linux-amd64-ncurses6/0.14/8effac668ad781893fc33fd86f993c5de559d355/native-platform-linux-amd64-ncurses6-0.14.jar" path-in-jar="/" />
|
||||
<element id="extracted-dir" path="$USER_HOME$/.gradle/caches/modules-2/files-2.1/net.rubygrapefruit/native-platform-linux-i386/0.14/6576c08a9a514a6ae5623e6f8da04502cac23bde/native-platform-linux-i386-0.14.jar" path-in-jar="/" />
|
||||
<element id="extracted-dir" path="$USER_HOME$/.gradle/caches/modules-2/files-2.1/net.rubygrapefruit/native-platform-linux-i386-ncurses5/0.14/80ec77af683abeaa58ed11b9c2cad2d02837e55f/native-platform-linux-i386-ncurses5-0.14.jar" path-in-jar="/" />
|
||||
<element id="extracted-dir" path="$USER_HOME$/.gradle/caches/modules-2/files-2.1/net.rubygrapefruit/native-platform-linux-i386-ncurses6/0.14/615dea7e75ca704bba1de9b671652283a9743894/native-platform-linux-i386-ncurses6-0.14.jar" path-in-jar="/" />
|
||||
<element id="extracted-dir" path="$USER_HOME$/.gradle/caches/modules-2/files-2.1/net.rubygrapefruit/native-platform-osx-amd64/0.14/5e5c113c32c0bac5cf2dcd3a59e4b021023d86a1/native-platform-osx-amd64-0.14.jar" path-in-jar="/" />
|
||||
<element id="extracted-dir" path="$USER_HOME$/.gradle/caches/modules-2/files-2.1/net.rubygrapefruit/native-platform-osx-i386/0.14/fd86b7eedbf5a0df003cf946f0b0c80c06c103ee/native-platform-osx-i386-0.14.jar" path-in-jar="/" />
|
||||
<element id="extracted-dir" path="$USER_HOME$/.gradle/caches/modules-2/files-2.1/net.rubygrapefruit/native-platform-windows-amd64/0.14/bdf519fab10700fadc9953526a07e8104fad1d07/native-platform-windows-amd64-0.14.jar" path-in-jar="/" />
|
||||
<element id="extracted-dir" path="$USER_HOME$/.gradle/caches/modules-2/files-2.1/net.rubygrapefruit/native-platform-windows-i386/0.14/65b00e123554f42ecd0da054a747033be5da608d/native-platform-windows-i386-0.14.jar" path-in-jar="/" />
|
||||
<element id="module-output" name="kotlin.compiler.daemon-common.main" />
|
||||
<element id="module-output" name="kotlin.kotlin-daemon-client.main" />
|
||||
<element id="directory" name="META-INF">
|
||||
<element id="file-copy" path="$PROJECT_DIR$/compiler/daemon/daemon-client/build/tmp/shadowJar/MANIFEST.MF" />
|
||||
</element>
|
||||
</root>
|
||||
</artifact>
|
||||
</component>
|
||||
@@ -1,12 +0,0 @@
|
||||
<component name="ArtifactManager">
|
||||
<artifact type="jar" name="kotlin-imports-dumper-compiler-plugin.jar">
|
||||
<output-path>$PROJECT_DIR$/out/artifacts/kotlin_imports_dumper_compiler_plugin_jar</output-path>
|
||||
<root id="archive" name="kotlin-imports-dumper-compiler-plugin.jar">
|
||||
<element id="directory" name="META-INF">
|
||||
<element id="file-copy" path="$PROJECT_DIR$/plugins/imports-dumper/build/tmp/jar/MANIFEST.MF" />
|
||||
</element>
|
||||
<element id="extracted-dir" path="$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlinx/kotlinx-serialization-runtime/0.4.2/e343c68c9fa77a190225484c1e03b1485fbb5f1f/kotlinx-serialization-runtime-0.4.2.jar" path-in-jar="/" />
|
||||
<element id="module-output" name="kotlin.kotlin-imports-dumper-compiler-plugin.main" />
|
||||
</root>
|
||||
</artifact>
|
||||
</component>
|
||||
38
.idea/artifacts/kotlin_jps_plugin_jar.xml
generated
38
.idea/artifacts/kotlin_jps_plugin_jar.xml
generated
@@ -1,38 +0,0 @@
|
||||
<component name="ArtifactManager">
|
||||
<artifact type="jar" name="kotlin-jps-plugin.jar">
|
||||
<output-path>$PROJECT_DIR$/out/artifacts/kotlin_jps_plugin_jar</output-path>
|
||||
<root id="archive" name="kotlin-jps-plugin.jar">
|
||||
<element id="directory" name="META-INF">
|
||||
<element id="file-copy" path="$PROJECT_DIR$/prepare/jps-plugin/build/tmp/jar/MANIFEST.MF" />
|
||||
</element>
|
||||
<element id="extracted-dir" path="$USER_HOME$/.gradle/caches/modules-2/files-2.1/net.rubygrapefruit/native-platform/0.14/48341d68b4456bea76ca952b6d38b877881350f7/native-platform-0.14.jar" path-in-jar="/" />
|
||||
<element id="extracted-dir" path="$USER_HOME$/.gradle/caches/modules-2/files-2.1/net.rubygrapefruit/native-platform-freebsd-amd64-libcpp/0.14/b45561900830d676e9e0040561e68abe86fbc10e/native-platform-freebsd-amd64-libcpp-0.14.jar" path-in-jar="/" />
|
||||
<element id="extracted-dir" path="$USER_HOME$/.gradle/caches/modules-2/files-2.1/net.rubygrapefruit/native-platform-freebsd-amd64-libstdcpp/0.14/bcc4e58ef4db56052fe9512d2d1265f11dc9242f/native-platform-freebsd-amd64-libstdcpp-0.14.jar" path-in-jar="/" />
|
||||
<element id="extracted-dir" path="$USER_HOME$/.gradle/caches/modules-2/files-2.1/net.rubygrapefruit/native-platform-freebsd-i386-libcpp/0.14/50b15724c82808c2b7fefd9b0b7c6dd977623f35/native-platform-freebsd-i386-libcpp-0.14.jar" path-in-jar="/" />
|
||||
<element id="extracted-dir" path="$USER_HOME$/.gradle/caches/modules-2/files-2.1/net.rubygrapefruit/native-platform-freebsd-i386-libstdcpp/0.14/d98be0a75890523a6a70dc93795101145828a5da/native-platform-freebsd-i386-libstdcpp-0.14.jar" path-in-jar="/" />
|
||||
<element id="extracted-dir" path="$USER_HOME$/.gradle/caches/modules-2/files-2.1/net.rubygrapefruit/native-platform-linux-amd64/0.14/d0ac539a32015e91e309c20e493d220aae88811b/native-platform-linux-amd64-0.14.jar" path-in-jar="/" />
|
||||
<element id="extracted-dir" path="$USER_HOME$/.gradle/caches/modules-2/files-2.1/net.rubygrapefruit/native-platform-linux-amd64-ncurses5/0.14/6dece223855317a75c371fb72d826582893351c6/native-platform-linux-amd64-ncurses5-0.14.jar" path-in-jar="/" />
|
||||
<element id="extracted-dir" path="$USER_HOME$/.gradle/caches/modules-2/files-2.1/net.rubygrapefruit/native-platform-linux-amd64-ncurses6/0.14/8effac668ad781893fc33fd86f993c5de559d355/native-platform-linux-amd64-ncurses6-0.14.jar" path-in-jar="/" />
|
||||
<element id="extracted-dir" path="$USER_HOME$/.gradle/caches/modules-2/files-2.1/net.rubygrapefruit/native-platform-linux-i386/0.14/6576c08a9a514a6ae5623e6f8da04502cac23bde/native-platform-linux-i386-0.14.jar" path-in-jar="/" />
|
||||
<element id="extracted-dir" path="$USER_HOME$/.gradle/caches/modules-2/files-2.1/net.rubygrapefruit/native-platform-linux-i386-ncurses5/0.14/80ec77af683abeaa58ed11b9c2cad2d02837e55f/native-platform-linux-i386-ncurses5-0.14.jar" path-in-jar="/" />
|
||||
<element id="extracted-dir" path="$USER_HOME$/.gradle/caches/modules-2/files-2.1/net.rubygrapefruit/native-platform-linux-i386-ncurses6/0.14/615dea7e75ca704bba1de9b671652283a9743894/native-platform-linux-i386-ncurses6-0.14.jar" path-in-jar="/" />
|
||||
<element id="extracted-dir" path="$USER_HOME$/.gradle/caches/modules-2/files-2.1/net.rubygrapefruit/native-platform-osx-amd64/0.14/5e5c113c32c0bac5cf2dcd3a59e4b021023d86a1/native-platform-osx-amd64-0.14.jar" path-in-jar="/" />
|
||||
<element id="extracted-dir" path="$USER_HOME$/.gradle/caches/modules-2/files-2.1/net.rubygrapefruit/native-platform-osx-i386/0.14/fd86b7eedbf5a0df003cf946f0b0c80c06c103ee/native-platform-osx-i386-0.14.jar" path-in-jar="/" />
|
||||
<element id="extracted-dir" path="$USER_HOME$/.gradle/caches/modules-2/files-2.1/net.rubygrapefruit/native-platform-windows-amd64/0.14/bdf519fab10700fadc9953526a07e8104fad1d07/native-platform-windows-amd64-0.14.jar" path-in-jar="/" />
|
||||
<element id="extracted-dir" path="$USER_HOME$/.gradle/caches/modules-2/files-2.1/net.rubygrapefruit/native-platform-windows-i386/0.14/65b00e123554f42ecd0da054a747033be5da608d/native-platform-windows-i386-0.14.jar" path-in-jar="/" />
|
||||
<element id="module-output" name="kotlin.compiler.cli-common.main" />
|
||||
<element id="module-output" name="kotlin.compiler.daemon-common.main" />
|
||||
<element id="module-output" name="kotlin.core.descriptors.jvm.main" />
|
||||
<element id="module-output" name="kotlin.core.descriptors.main" />
|
||||
<element id="module-output" name="kotlin.idea.idea-jps-common.main" />
|
||||
<element id="module-output" name="kotlin.jps-plugin.main" />
|
||||
<element id="module-output" name="kotlin.kotlin-build-common.main" />
|
||||
<element id="module-output" name="kotlin.kotlin-compiler-runner.main" />
|
||||
<element id="module-output" name="kotlin.kotlin-daemon-client.main" />
|
||||
<element id="module-output" name="kotlin.kotlin-preloader.main" />
|
||||
<element id="module-output" name="kotlin.core.util.runtime.main" />
|
||||
<element id="module-output" name="kotlin.compiler.util.main" />
|
||||
<element id="file-copy" path="$PROJECT_DIR$/resources/kotlinManifest.properties" />
|
||||
</root>
|
||||
</artifact>
|
||||
</component>
|
||||
17
.idea/artifacts/kotlin_main_kts_jar.xml
generated
17
.idea/artifacts/kotlin_main_kts_jar.xml
generated
@@ -1,17 +0,0 @@
|
||||
<component name="ArtifactManager">
|
||||
<artifact type="jar" name="kotlin-main-kts.jar">
|
||||
<output-path>$PROJECT_DIR$/out/artifacts/kotlin_main_kts_jar</output-path>
|
||||
<root id="archive" name="kotlin-main-kts.jar">
|
||||
<element id="directory" name="META-INF">
|
||||
<element id="file-copy" path="$PROJECT_DIR$/libraries/tools/kotlin-main-kts/build/tmp/packJar/MANIFEST.MF" />
|
||||
</element>
|
||||
<element id="extracted-dir" path="$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.apache.ivy/ivy/2.4.0/5abe4c24bbe992a9ac07ca563d5bd3e8d569e9ed/ivy-2.4.0.jar" path-in-jar="/" />
|
||||
<element id="extracted-dir" path="$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlinx/kotlinx-coroutines-core/1.0.1/f33e8dab753f33d1bbb07cca664fd6f13d993d7e/kotlinx-coroutines-core-1.0.1.jar" path-in-jar="/" />
|
||||
<element id="module-output" name="kotlin.kotlin-main-kts.main" />
|
||||
<element id="module-output" name="kotlin.kotlin-script-runtime.main" />
|
||||
<element id="module-output" name="kotlin.kotlin-script-util.main" />
|
||||
<element id="module-output" name="kotlin.kotlin-scripting-common.main" />
|
||||
<element id="module-output" name="kotlin.kotlin-scripting-jvm.main" />
|
||||
</root>
|
||||
</artifact>
|
||||
</component>
|
||||
57
.idea/artifacts/kotlin_plugin_jar.xml
generated
57
.idea/artifacts/kotlin_plugin_jar.xml
generated
@@ -1,57 +0,0 @@
|
||||
<component name="ArtifactManager">
|
||||
<artifact type="jar" name="kotlin-plugin.jar">
|
||||
<output-path>$PROJECT_DIR$/out/artifacts/kotlin_plugin_jar</output-path>
|
||||
<root id="archive" name="kotlin-plugin.jar">
|
||||
<element id="directory" name="META-INF">
|
||||
<element id="file-copy" path="$PROJECT_DIR$/prepare/idea-plugin/build/tmp/shadowJar/MANIFEST.MF" />
|
||||
</element>
|
||||
<element id="extracted-dir" path="$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/builtins/1.3.30-dev-1945/f5c03880d3dc304ef5dacc511310e12dac983ba6/builtins-1.3.30-dev-1945.jar" path-in-jar="/" />
|
||||
<element id="extracted-dir" path="$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/protobuf-relocated/2.6.1/9a9536949348fae596f4878243dffd0ed351993d/protobuf-relocated-2.6.1.jar" path-in-jar="/" />
|
||||
<element id="module-output" name="kotlin.plugins.annotation-based-compiler-plugins-ide-support.main" />
|
||||
<element id="module-output" name="kotlin.compiler.backend-common.main" />
|
||||
<element id="module-output" name="kotlin.compiler.backend.main" />
|
||||
<element id="module-output" name="kotlin.compiler.backend.jvm.main" />
|
||||
<element id="module-output" name="kotlin.compiler.cli-common.main" />
|
||||
<element id="module-output" name="kotlin.compiler.container.main" />
|
||||
<element id="module-output" name="kotlin.compiler.daemon-common.main" />
|
||||
<element id="module-output" name="kotlin.core.descriptors.jvm.main" />
|
||||
<element id="module-output" name="kotlin.core.descriptors.main" />
|
||||
<element id="module-output" name="kotlin.core.deserialization.main" />
|
||||
<element id="module-output" name="kotlin.eval4j.main" />
|
||||
<element id="module-output" name="kotlin.idea.fir-view.main" />
|
||||
<element id="module-output" name="kotlin.compiler.frontend.java.main" />
|
||||
<element id="module-output" name="kotlin.compiler.frontend.script.main" />
|
||||
<element id="module-output" name="kotlin.compiler.frontend.main" />
|
||||
<element id="module-output" name="kotlin.idea.ide-common.main" />
|
||||
<element id="module-output" name="kotlin.idea.idea-core.main" />
|
||||
<element id="module-output" name="kotlin.idea.formatter.main" />
|
||||
<element id="module-output" name="kotlin.idea.idea-gradle-native.main" />
|
||||
<element id="module-output" name="kotlin.idea.idea-gradle.main" />
|
||||
<element id="module-output" name="kotlin.idea.idea-native.main" />
|
||||
<element id="module-output" name="kotlin.idea.main" />
|
||||
<element id="module-output" name="kotlin.compiler.ir.backend.common.main" />
|
||||
<element id="module-output" name="kotlin.compiler.ir.psi2ir.main" />
|
||||
<element id="module-output" name="kotlin.compiler.ir.tree.main" />
|
||||
<element id="module-output" name="kotlin.js.js.ast.main" />
|
||||
<element id="module-output" name="kotlin.js.js.frontend.main" />
|
||||
<element id="module-output" name="kotlin.js.js.parser.main" />
|
||||
<element id="module-output" name="kotlin.js.js.serializer.main" />
|
||||
<element id="module-output" name="kotlin.js.js.translator.main" />
|
||||
<element id="module-output" name="kotlin.kotlin-build-common.main" />
|
||||
<element id="module-output" name="kotlin.kotlin-native.kotlin-native-library-reader.main" />
|
||||
<element id="module-output" name="kotlin.kotlin-native.kotlin-native-utils.main" />
|
||||
<element id="module-output" name="kotlin.kotlin-preloader.main" />
|
||||
<element id="module-output" name="kotlin.compiler.light-classes.main" />
|
||||
<element id="module-output" name="kotlin.core.metadata.jvm.main" />
|
||||
<element id="module-output" name="kotlin.core.metadata.main" />
|
||||
<element id="module-output" name="kotlin.compiler.plugin-api.main" />
|
||||
<element id="module-output" name="kotlin.compiler.psi.main" />
|
||||
<element id="module-output" name="kotlin.compiler.resolution.main" />
|
||||
<element id="module-output" name="kotlin.compiler.serialization.main" />
|
||||
<element id="module-output" name="kotlin.core.util.runtime.main" />
|
||||
<element id="module-output" name="kotlin.compiler.util.main" />
|
||||
<element id="file-copy" path="$PROJECT_DIR$/resources/kotlinManifest.properties" />
|
||||
<element id="module-output" name="kotlin.compiler.frontend.common.main" />
|
||||
</root>
|
||||
</artifact>
|
||||
</component>
|
||||
21
.idea/artifacts/kotlin_reflect_jar.xml
generated
21
.idea/artifacts/kotlin_reflect_jar.xml
generated
@@ -1,21 +0,0 @@
|
||||
<component name="ArtifactManager">
|
||||
<artifact type="jar" name="kotlin-reflect.jar">
|
||||
<output-path>$PROJECT_DIR$/out/artifacts/kotlin_reflect_jar</output-path>
|
||||
<root id="archive" name="kotlin-reflect.jar">
|
||||
<element id="directory" name="META-INF">
|
||||
<element id="file-copy" path="$PROJECT_DIR$/libraries/reflect/build/tmp/result/MANIFEST.MF" />
|
||||
</element>
|
||||
<element id="extracted-dir" path="$USER_HOME$/.gradle/caches/modules-2/files-2.1/javax.inject/javax.inject/1/6975da39a7040257bd51d21a231b76c915872d38/javax.inject-1.jar" path-in-jar="/" />
|
||||
<element id="extracted-dir" path="$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/protobuf-lite/2.6.1/9af39e6d6cbd4404d06ae2ae63505b6247e6760b/protobuf-lite-2.6.1.jar" path-in-jar="/" />
|
||||
<element id="module-output" name="kotlin.core.descriptors.jvm.main" />
|
||||
<element id="module-output" name="kotlin.core.descriptors.runtime.main" />
|
||||
<element id="module-output" name="kotlin.core.descriptors.main" />
|
||||
<element id="module-output" name="kotlin.core.deserialization.main" />
|
||||
<element id="module-output" name="kotlin.kotlin-reflect-api.main" />
|
||||
<element id="module-output" name="kotlin.kotlin-reflect.main" />
|
||||
<element id="module-output" name="kotlin.core.metadata.jvm.main" />
|
||||
<element id="module-output" name="kotlin.core.metadata.main" />
|
||||
<element id="module-output" name="kotlin.core.util.runtime.main" />
|
||||
</root>
|
||||
</artifact>
|
||||
</component>
|
||||
252
.idea/artifacts/kotlinc.xml
generated
252
.idea/artifacts/kotlinc.xml
generated
@@ -1,252 +0,0 @@
|
||||
<component name="ArtifactManager">
|
||||
<artifact name="kotlinc">
|
||||
<output-path>$PROJECT_DIR$/out/artifacts/kotlinc</output-path>
|
||||
<root id="root">
|
||||
<element id="directory" name="bin">
|
||||
<element id="dir-copy" path="$PROJECT_DIR$/compiler/cli/bin" />
|
||||
</element>
|
||||
<element id="directory" name="lib">
|
||||
<element id="file-copy" path="$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.jetbrains/annotations/13.0/919f0dfe192fb4e063e7dacadee7f8bb9a2672a9/annotations-13.0.jar" />
|
||||
<element id="file-copy" path="$PROJECT_DIR$/buildSrc/prepare-deps/intellij-sdk/build/repo/kotlin.build.custom.deps/183.5153.4/intellij/lib/trove4j.jar" />
|
||||
<element id="archive" name="allopen-compiler-plugin.jar">
|
||||
<element id="module-output" name="kotlin.kotlin-allopen-compiler-plugin.main" />
|
||||
<element id="directory" name="META-INF">
|
||||
<element id="file-copy" path="$PROJECT_DIR$/plugins/allopen/allopen-cli/build/tmp/jar/MANIFEST.MF" />
|
||||
</element>
|
||||
</element>
|
||||
<element id="archive" name="android-extensions-runtime.jar">
|
||||
<element id="module-output" name="kotlin.kotlin-android-extensions-runtime.main" />
|
||||
<element id="directory" name="META-INF">
|
||||
<element id="file-copy" path="$PROJECT_DIR$/plugins/android-extensions/android-extensions-runtime/build/tmp/jar/MANIFEST.MF" />
|
||||
</element>
|
||||
</element>
|
||||
<element id="archive" name="kotlin-annotation-processing.jar">
|
||||
<element id="module-output" name="kotlin.kotlin-annotation-processing.main" />
|
||||
<element id="module-output" name="kotlin.kotlin-annotation-processing-runtime.main" />
|
||||
<element id="module-output" name="kotlin.kotlin-annotation-processing-cli.main" />
|
||||
<element id="module-output" name="kotlin.kotlin-annotation-processing-base.main" />
|
||||
<element id="directory" name="META-INF">
|
||||
<element id="file-copy" path="$PROJECT_DIR$/plugins/kapt3/kapt3-compiler/build/tmp/jar/MANIFEST.MF" />
|
||||
</element>
|
||||
</element>
|
||||
<element id="archive" name="kotlin-annotation-processing-cli.jar">
|
||||
<element id="module-output" name="kotlin.kotlin-annotation-processing-cli.main" />
|
||||
<element id="directory" name="META-INF">
|
||||
<element id="file-copy" path="$PROJECT_DIR$/plugins/kapt3/kapt3-cli/build/tmp/jar/MANIFEST.MF" />
|
||||
</element>
|
||||
</element>
|
||||
<element id="archive" name="kotlin-annotation-processing-runtime.jar">
|
||||
<element id="module-output" name="kotlin.kotlin-annotation-processing-runtime.main" />
|
||||
<element id="directory" name="META-INF">
|
||||
<element id="file-copy" path="$PROJECT_DIR$/plugins/kapt3/kapt3-runtime/build/tmp/jar/MANIFEST.MF" />
|
||||
</element>
|
||||
</element>
|
||||
<element id="archive" name="kotlin-annotations-android.jar">
|
||||
<element id="module-output" name="kotlin.kotlin-annotations-android.main" />
|
||||
<element id="directory" name="META-INF">
|
||||
<element id="file-copy" path="$PROJECT_DIR$/libraries/tools/kotlin-annotations-android/build/tmp/jar/MANIFEST.MF" />
|
||||
</element>
|
||||
</element>
|
||||
<element id="archive" name="kotlin-annotations-jvm.jar">
|
||||
<element id="module-output" name="kotlin.kotlin-annotations-jvm.main" />
|
||||
<element id="directory" name="META-INF">
|
||||
<element id="file-copy" path="$PROJECT_DIR$/libraries/tools/kotlin-annotations-jvm/build/tmp/jar/MANIFEST.MF" />
|
||||
</element>
|
||||
</element>
|
||||
<element id="archive" name="kotlin-annotations-jvm-sources.jar">
|
||||
<element id="dir-copy" path="$PROJECT_DIR$/libraries/tools/kotlin-annotations-jvm/src" />
|
||||
<element id="directory" name="main">
|
||||
<element id="directory" name="resources" />
|
||||
<element id="directory" name="kotlin" />
|
||||
<element id="directory" name="java" />
|
||||
</element>
|
||||
<element id="directory" name="test">
|
||||
<element id="directory" name="resources" />
|
||||
</element>
|
||||
<element id="directory" name="META-INF">
|
||||
<element id="file-copy" path="$PROJECT_DIR$/libraries/tools/kotlin-annotations-jvm/build/tmp/sourcesJar/MANIFEST.MF" />
|
||||
</element>
|
||||
</element>
|
||||
<element id="archive" name="kotlin-ant.jar">
|
||||
<element id="module-output" name="kotlin.kotlin-ant.main" />
|
||||
<element id="directory" name="META-INF">
|
||||
<element id="file-copy" path="$PROJECT_DIR$/ant/build/tmp/jar/MANIFEST.MF" />
|
||||
</element>
|
||||
</element>
|
||||
<element id="archive" name="noarg-compiler-plugin.jar">
|
||||
<element id="module-output" name="kotlin.kotlin-noarg-compiler-plugin.main" />
|
||||
<element id="directory" name="META-INF">
|
||||
<element id="file-copy" path="$PROJECT_DIR$/plugins/noarg/noarg-cli/build/tmp/jar/MANIFEST.MF" />
|
||||
</element>
|
||||
</element>
|
||||
<element id="archive" name="kotlin-preloader.jar">
|
||||
<element id="module-output" name="kotlin.kotlin-preloader.main" />
|
||||
<element id="directory" name="META-INF">
|
||||
<element id="file-copy" path="$PROJECT_DIR$/compiler/preloader/build/tmp/jar/MANIFEST.MF" />
|
||||
</element>
|
||||
</element>
|
||||
<element id="archive" name="kotlin-reflect-sources.jar">
|
||||
<element id="dir-copy" path="$PROJECT_DIR$/core/descriptors/src" />
|
||||
<element id="dir-copy" path="$PROJECT_DIR$/core/descriptors.jvm/src" />
|
||||
<element id="dir-copy" path="$PROJECT_DIR$/core/descriptors.runtime/src" />
|
||||
<element id="dir-copy" path="$PROJECT_DIR$/core/deserialization/src" />
|
||||
<element id="dir-copy" path="$PROJECT_DIR$/core/util.runtime/src" />
|
||||
<element id="dir-copy" path="$PROJECT_DIR$/core/reflection.jvm/src" />
|
||||
<element id="directory" name="META-INF">
|
||||
<element id="file-copy" path="$PROJECT_DIR$/libraries/reflect/build/tmp/sourcesJar/MANIFEST.MF" />
|
||||
</element>
|
||||
</element>
|
||||
<element id="archive" name="kotlin-runner.jar">
|
||||
<element id="module-output" name="kotlin.kotlin-runner.main" />
|
||||
<element id="directory" name="META-INF">
|
||||
<element id="file-copy" path="$PROJECT_DIR$/compiler/cli/cli-runner/build/tmp/jar/MANIFEST.MF" />
|
||||
</element>
|
||||
</element>
|
||||
<element id="archive" name="sam-with-receiver-compiler-plugin.jar">
|
||||
<element id="module-output" name="kotlin.kotlin-sam-with-receiver-compiler-plugin.main" />
|
||||
<element id="directory" name="META-INF">
|
||||
<element id="file-copy" path="$PROJECT_DIR$/plugins/sam-with-receiver/sam-with-receiver-cli/build/tmp/jar/MANIFEST.MF" />
|
||||
</element>
|
||||
</element>
|
||||
<element id="archive" name="kotlin-script-runtime.jar">
|
||||
<element id="module-output" name="kotlin.kotlin-script-runtime.main" />
|
||||
<element id="directory" name="META-INF">
|
||||
<element id="file-copy" path="$PROJECT_DIR$/libraries/tools/script-runtime/build/tmp/jar/MANIFEST.MF" />
|
||||
</element>
|
||||
</element>
|
||||
<element id="archive" name="kotlin-script-runtime-sources.jar">
|
||||
<element id="dir-copy" path="$PROJECT_DIR$/core/script.runtime/src" />
|
||||
<element id="directory" name="META-INF">
|
||||
<element id="file-copy" path="$PROJECT_DIR$/libraries/tools/script-runtime/build/tmp/sourcesJar/MANIFEST.MF" />
|
||||
</element>
|
||||
</element>
|
||||
<element id="archive" name="kotlin-scripting-common.jar">
|
||||
<element id="module-output" name="kotlin.kotlin-scripting-common.main" />
|
||||
<element id="directory" name="META-INF">
|
||||
<element id="file-copy" path="$PROJECT_DIR$/libraries/scripting/common/build/tmp/jar/MANIFEST.MF" />
|
||||
</element>
|
||||
</element>
|
||||
<element id="archive" name="kotlin-scripting-compiler.jar">
|
||||
<element id="module-output" name="kotlin.kotlin-scripting-compiler.main" />
|
||||
<element id="directory" name="META-INF">
|
||||
<element id="file-copy" path="$PROJECT_DIR$/plugins/scripting/scripting-cli/build/tmp/jar/MANIFEST.MF" />
|
||||
</element>
|
||||
</element>
|
||||
<element id="archive" name="kotlin-scripting-jvm.jar">
|
||||
<element id="module-output" name="kotlin.kotlin-scripting-jvm.main" />
|
||||
<element id="directory" name="META-INF">
|
||||
<element id="file-copy" path="$PROJECT_DIR$/libraries/scripting/jvm/build/tmp/jar/MANIFEST.MF" />
|
||||
</element>
|
||||
</element>
|
||||
<element id="archive" name="kotlin-source-sections-compiler-plugin.jar">
|
||||
<element id="module-output" name="kotlin.kotlin-source-sections-compiler-plugin.main" />
|
||||
<element id="directory" name="META-INF">
|
||||
<element id="file-copy" path="$PROJECT_DIR$/plugins/source-sections/source-sections-compiler/build/tmp/jar/MANIFEST.MF" />
|
||||
</element>
|
||||
</element>
|
||||
<element id="archive" name="kotlin-test-js.jar">
|
||||
<element id="module-output" name="kotlin.kotlin-test.kotlin-test-js.main" />
|
||||
<element id="directory" name="META-INF">
|
||||
<element id="file-copy" path="$PROJECT_DIR$/libraries/kotlin.test/js/build/tmp/jar/MANIFEST.MF" />
|
||||
</element>
|
||||
</element>
|
||||
<element id="archive" name="kotlin-test-js-sources.jar">
|
||||
<element id="dir-copy" path="$PROJECT_DIR$/libraries/kotlin.test/js/src/main/kotlin" />
|
||||
<element id="directory" name="META-INF">
|
||||
<element id="file-copy" path="$PROJECT_DIR$/libraries/kotlin.test/js/build/tmp/sourcesJar/MANIFEST.MF" />
|
||||
</element>
|
||||
</element>
|
||||
<element id="archive" name="kotlin-test-junit.jar">
|
||||
<element id="module-output" name="kotlin.kotlin-test.kotlin-test-junit.main" />
|
||||
<element id="directory" name="META-INF">
|
||||
<element id="file-copy" path="$PROJECT_DIR$/libraries/kotlin.test/junit/build/tmp/jar/MANIFEST.MF" />
|
||||
</element>
|
||||
</element>
|
||||
<element id="archive" name="kotlin-test-junit-sources.jar">
|
||||
<element id="dir-copy" path="$PROJECT_DIR$/libraries/kotlin.test/junit/src/main/kotlin" />
|
||||
<element id="directory" name="META-INF">
|
||||
<element id="file-copy" path="$PROJECT_DIR$/libraries/kotlin.test/junit/build/tmp/sourcesJar/MANIFEST.MF" />
|
||||
</element>
|
||||
</element>
|
||||
<element id="archive" name="kotlin-test-junit5.jar">
|
||||
<element id="module-output" name="kotlin.kotlin-test.kotlin-test-junit5.main" />
|
||||
<element id="directory" name="META-INF">
|
||||
<element id="file-copy" path="$PROJECT_DIR$/libraries/kotlin.test/junit5/build/tmp/jar/MANIFEST.MF" />
|
||||
</element>
|
||||
</element>
|
||||
<element id="archive" name="kotlin-test-junit5-sources.jar">
|
||||
<element id="dir-copy" path="$PROJECT_DIR$/libraries/kotlin.test/junit5/src/main/kotlin" />
|
||||
<element id="directory" name="META-INF">
|
||||
<element id="file-copy" path="$PROJECT_DIR$/libraries/kotlin.test/junit5/build/tmp/sourcesJar/MANIFEST.MF" />
|
||||
</element>
|
||||
</element>
|
||||
<element id="archive" name="kotlin-test.jar">
|
||||
<element id="module-output" name="kotlin.kotlin-test.kotlin-test-jvm.main" />
|
||||
<element id="directory" name="META-INF">
|
||||
<element id="file-copy" path="$PROJECT_DIR$/libraries/kotlin.test/jvm/build/tmp/jar/MANIFEST.MF" />
|
||||
</element>
|
||||
</element>
|
||||
<element id="archive" name="kotlin-test-sources.jar">
|
||||
<element id="dir-copy" path="$PROJECT_DIR$/libraries/kotlin.test/jvm/src/main/kotlin" />
|
||||
<element id="directory" name="META-INF">
|
||||
<element id="file-copy" path="$PROJECT_DIR$/libraries/kotlin.test/jvm/build/tmp/sourcesJar/MANIFEST.MF" />
|
||||
</element>
|
||||
</element>
|
||||
<element id="archive" name="kotlin-test-testng.jar">
|
||||
<element id="module-output" name="kotlin.kotlin-test.kotlin-test-testng.main" />
|
||||
<element id="directory" name="META-INF">
|
||||
<element id="file-copy" path="$PROJECT_DIR$/libraries/kotlin.test/testng/build/tmp/jar/MANIFEST.MF" />
|
||||
</element>
|
||||
</element>
|
||||
<element id="archive" name="kotlin-test-testng-sources.jar">
|
||||
<element id="dir-copy" path="$PROJECT_DIR$/libraries/kotlin.test/testng/src/main/kotlin" />
|
||||
<element id="directory" name="META-INF">
|
||||
<element id="file-copy" path="$PROJECT_DIR$/libraries/kotlin.test/testng/build/tmp/sourcesJar/MANIFEST.MF" />
|
||||
</element>
|
||||
</element>
|
||||
<element id="archive" name="kotlinx-serialization-compiler-plugin.jar">
|
||||
<element id="module-output" name="kotlin.kotlinx-serialization-compiler-plugin.main" />
|
||||
<element id="directory" name="META-INF">
|
||||
<element id="file-copy" path="$PROJECT_DIR$/plugins/kotlin-serialization/kotlin-serialization-compiler/build/tmp/jar/MANIFEST.MF" />
|
||||
</element>
|
||||
</element>
|
||||
<element id="archive" name="mutability-annotations-compat.jar">
|
||||
<element id="module-output" name="kotlin.libraries.tools.mutability-annotations-compat.main" />
|
||||
<element id="directory" name="META-INF">
|
||||
<element id="file-copy" path="$PROJECT_DIR$/libraries/tools/mutability-annotations-compat/build/tmp/jar/MANIFEST.MF" />
|
||||
</element>
|
||||
</element>
|
||||
<element id="archive" name="android-extensions-compiler.jar">
|
||||
<element id="module-output" name="kotlin.plugins.android-extensions-compiler.main" />
|
||||
<element id="module-output" name="kotlin.kotlin-android-extensions-runtime.main" />
|
||||
<element id="directory" name="META-INF">
|
||||
<element id="file-copy" path="$PROJECT_DIR$/plugins/android-extensions/android-extensions-compiler/build/tmp/jar/MANIFEST.MF" />
|
||||
</element>
|
||||
</element>
|
||||
<element id="file-copy" path="$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-stdlib-jdk8/1.3.30-dev-1945/a3bd59a6a1a46590da6af97c48935342031619df/kotlin-stdlib-jdk8-1.3.30-dev-1945.jar" output-file-name="kotlin-stdlib-jdk8.jar" />
|
||||
<element id="file-copy" path="$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-stdlib-jdk7/1.3.30-dev-1945/ed140be9ff355822aafea93dba58bc2621ae6ad0/kotlin-stdlib-jdk7-1.3.30-dev-1945.jar" output-file-name="kotlin-stdlib-jdk7.jar" />
|
||||
<element id="file-copy" path="$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-stdlib/1.3.30-dev-1945/561b4a9c9bc7c799658e0b7b898b2861585a5cbf/kotlin-stdlib-1.3.30-dev-1945.jar" output-file-name="kotlin-stdlib.jar" />
|
||||
<element id="file-copy" path="$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-stdlib-jdk7/1.3.30-dev-1945/540041ddf83c40fc1224ec124fdd45620ce32500/kotlin-stdlib-jdk7-1.3.30-dev-1945-sources.jar" output-file-name="kotlin-stdlib-jdk7-sources.jar" />
|
||||
<element id="file-copy" path="$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-stdlib-jdk8/1.3.30-dev-1945/abf5636e467ed2d993d6a1687c31fe0884441e7b/kotlin-stdlib-jdk8-1.3.30-dev-1945-sources.jar" output-file-name="kotlin-stdlib-jdk8-sources.jar" />
|
||||
<element id="file-copy" path="$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-stdlib-js/1.3.30-dev-1945/9428b7adafb24b8ac52180f5b831f5cafdd0285e/kotlin-stdlib-js-1.3.30-dev-1945-sources.jar" />
|
||||
<element id="file-copy" path="$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-stdlib-js/1.3.30-dev-1945/9343ff4e085b20921479da5c3125c379986c84df/kotlin-stdlib-js-1.3.30-dev-1945.jar" output-file-name="kotlin-stdlib-js.jar" />
|
||||
<element id="file-copy" path="$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-stdlib/1.3.30-dev-1945/af8320f3d13a7ab373e7f29f63b7749aa938ee54/kotlin-stdlib-1.3.30-dev-1945-sources.jar" output-file-name="kotlin-stdlib-sources.jar" />
|
||||
<element id="artifact" artifact-name="kotlin-compiler.jar" />
|
||||
<element id="artifact" artifact-name="kotlin-reflect.jar" />
|
||||
<element id="artifact" artifact-name="kotlin-daemon-client.jar" />
|
||||
<element id="artifact" artifact-name="kotlin-main-kts.jar" />
|
||||
<element id="artifact" artifact-name="kotlin-imports-dumper-compiler-plugin.jar" />
|
||||
<element id="archive" name="jvm-abi-gen.jar">
|
||||
<element id="module-output" name="kotlin.plugins.jvm-abi-gen.main" />
|
||||
<element id="directory" name="META-INF">
|
||||
<element id="file-copy" path="$PROJECT_DIR$/plugins/jvm-abi-gen/build/tmp/jar/MANIFEST.MF" />
|
||||
</element>
|
||||
</element>
|
||||
</element>
|
||||
<element id="directory" name="license">
|
||||
<element id="dir-copy" path="$PROJECT_DIR$/license" />
|
||||
</element>
|
||||
<element id="file-copy" path="$PROJECT_DIR$/bootstrap/build.txt" />
|
||||
</root>
|
||||
</artifact>
|
||||
</component>
|
||||
3
.idea/dictionaries/4u7.xml
generated
3
.idea/dictionaries/4u7.xml
generated
@@ -3,9 +3,6 @@
|
||||
<words>
|
||||
<w>cidr</w>
|
||||
<w>foldable</w>
|
||||
<w>instrumentator</w>
|
||||
<w>protobuf</w>
|
||||
<w>redirector</w>
|
||||
</words>
|
||||
</dictionary>
|
||||
</component>
|
||||
4
.idea/dictionaries/Nikolay_Krasko.xml
generated
4
.idea/dictionaries/Nikolay_Krasko.xml
generated
@@ -7,10 +7,9 @@
|
||||
<w>fqname</w>
|
||||
<w>goto</w>
|
||||
<w>gradle</w>
|
||||
<w>infos</w>
|
||||
<w>intrinsics</w>
|
||||
<w>kdoc</w>
|
||||
<w>lateinit</w>
|
||||
<w>kompiler</w>
|
||||
<w>memoize</w>
|
||||
<w>memoized</w>
|
||||
<w>multiline</w>
|
||||
@@ -24,7 +23,6 @@
|
||||
<w>subclassed</w>
|
||||
<w>subgraph</w>
|
||||
<w>substep</w>
|
||||
<w>tailrec</w>
|
||||
</words>
|
||||
</dictionary>
|
||||
</component>
|
||||
5
.idea/dictionaries/yan.xml
generated
5
.idea/dictionaries/yan.xml
generated
@@ -3,16 +3,11 @@
|
||||
<words>
|
||||
<w>debuggee</w>
|
||||
<w>deserializes</w>
|
||||
<w>destructured</w>
|
||||
<w>hacky</w>
|
||||
<w>impls</w>
|
||||
<w>kapt</w>
|
||||
<w>parceler</w>
|
||||
<w>repl</w>
|
||||
<w>uast</w>
|
||||
<w>unbox</w>
|
||||
<w>unboxed</w>
|
||||
<w>unmute</w>
|
||||
</words>
|
||||
</dictionary>
|
||||
</component>
|
||||
31
.idea/inspectionProfiles/idea_default.xml
generated
31
.idea/inspectionProfiles/idea_default.xml
generated
@@ -98,29 +98,13 @@
|
||||
<inspection_tool class="IncompatibleAPI" enabled="true" level="ERROR" enabled_by_default="true">
|
||||
<option name="problems">
|
||||
<list>
|
||||
<Problem reference="com.intellij.execution.JavaRunConfigurationExtensionManager#getInstance" reason="Can't be used in Kotlin, because method was replaced with property after J2K in 183. Use JavaRunConfigurationExtensionManagerUtil instead." />
|
||||
<Problem reference="com.intellij.openapi.progress.ProgressManager#getProgressIndicator" reason="Not null starting from 181. Use getProgressIndicatorNullable instead." />
|
||||
<Problem reference="com.intellij.testFramework.PlatformTestCase#createModuleAt" reason="Not static anymore in 181 after 7dacf096c47d2125e17031c71a037b63ab00ec53" />
|
||||
<Problem reference="com.intellij.testFramework.PlatformTestCase#doCreateRealModuleIn" reason="Not static anymore in 181 after 7dacf096c47d2125e17031c71a037b63ab00ec53" />
|
||||
<Problem reference="com.intellij.openapi.progress.ProgressManager#getProgressIndicator" reason="Nullable in 181. Temporary use progressIndicatorNullable instead." />
|
||||
<Problem reference="org.jetbrains.java.decompiler.main.decompiler.BaseDecompiler#addSpace" reason="Method was replaced with outher methods in 182. Use addSpaceEx instead." />
|
||||
<Problem reference="com.intellij.util.JdomKt#element" reason="Removed in 191" />
|
||||
<Problem reference="com.intellij.execution.configurations.RunConfigurationBase" reason="Generalized in 183. Use RunConfigurationBaseAny instead in signatures." />
|
||||
<Problem reference="com.intellij.execution.configurations.LocatableConfigurationBase" reason="Generalized in 183. Use LocatableConfigurationBaseAny instead in signatures." />
|
||||
<Problem reference="com.intellij.execution.configurations.ModuleBasedConfiguration" reason="Generalized in 183. Use ModuleBasedConfigurationElement instead." />
|
||||
<Problem reference="com.intellij.util.AstLoadingFilter" reason="Absent in 181. Almost all methods were renamed in 183. Use org.jetbrains.kotlin.util.AstLoadingFilter instead." />
|
||||
<Problem reference="com.intellij.testFramework.codeInsight.hierarchy.HierarchyViewTestFixture" reason="Absent in <= 181. Use org.jetbrains.kotlin.test.HierarchyViewTestFixture instead." />
|
||||
<Problem reference="org.jetbrains.kotlin.test.HierarchyViewTestFixtureCompat" reason="Do not use the wrapper for 181 directly. Use org.jetbrains.kotlin.test.HierarchyViewTestFixture instead." />
|
||||
<Problem reference="com.intellij.psi.codeStyle.CodeStyleSettingsProvider" reason="Additional method is introduced in 183 instead of deprecated one. Use CodeStyleSettingsProviderCompat instead." />
|
||||
<Problem reference="com.intellij.openapi.extensions.ExtensionPointName#getExtensionList()" reason="Absent in 182 and before." />
|
||||
<Problem reference="com.intellij.openapi.extensions.ExtensionPointName#extensions()" reason="Absent in 182." />
|
||||
<Problem reference="com.intellij.openapi.extensions.ExtensionPointName#hasAnyExtensions" reason="Absent in 182." />
|
||||
<Problem reference="com.intellij.openapi.extensions.ExtensionPointName#getExtensionList(com.intellij.openapi.extensions.AreaInstance)" reason="Absent in 182." />
|
||||
<Problem reference="com.intellij.openapi.extensions.ExtensionPointName#extensions(com.intellij.openapi.extensions.AreaInstance)" reason="Absent in 182." />
|
||||
<Problem reference="com.intellij.openapi.extensions.ExtensionPointName#getPoint" reason="Absent in 182." />
|
||||
<Problem reference="com.intellij.openapi.extensions.ExtensionPointName#findExtensionOrFail" reason="Absent in 182." />
|
||||
<Problem reference="com.intellij.openapi.ui.popup.PopupChooserBuilder#PopupChooserBuilder(javax.swing.JList)" reason="Generified in 182. Use PopupChooserBuilderWrapper instead." />
|
||||
<Problem reference="com.intellij.openapi.editor.event.EditorFactoryListener" reason="Default implementations were added in 183. Use EditorFactoryListenerWrapper for inheritance instead." />
|
||||
<Problem reference="com.intellij.codeInspection.reference.RefFile#getPsiElement" reason="Absent in 182. Use psiFile extension instead." />
|
||||
<Problem reference="com.intellij.openapi.diagnostic.LoggerKt#debugOrInfoIfTestMode" reason="Absent in 182." />
|
||||
<Problem reference="com.intellij.psi.search.PsiSearchHelper#getInstance" reason="Absent in 181. Use psiSearchHelperInstance() instead." />
|
||||
<Problem reference="com.intellij.psi.search.PsiSearchHelper.SERVICE" reason="Deprecated since 182. Use psiSearchHelperInstance() instead." />
|
||||
<Problem reference="com.intellij.psi.codeStyle.CommonCodeStyleSettings#copyFrom" reason="Absent in 173. Use CompatibilityKt.copyFromEx instead." />
|
||||
<Problem reference="com.intellij.psi.codeStyle.CommonCodeStyleSettingsManager#copy" reason="Removed since 181. Use CompatibilityKt.copyFromEx instead." />
|
||||
</list>
|
||||
</option>
|
||||
</inspection_tool>
|
||||
@@ -301,9 +285,6 @@
|
||||
<inspection_tool class="PackageDirectoryMismatch" enabled="true" level="WARNING" enabled_by_default="false">
|
||||
<scope name="all except testData" level="WARNING" enabled="true" />
|
||||
</inspection_tool>
|
||||
<inspection_tool class="PackageName" enabled="true" level="WEAK WARNING" enabled_by_default="true">
|
||||
<option name="namePattern" value="[a-z_][a-z\d_]*(\.[a-z_][a-zA-Z\d_]*)*" />
|
||||
</inspection_tool>
|
||||
<inspection_tool class="ProblematicAPIUsage" enabled="true" level="ERROR" enabled_by_default="true">
|
||||
<option name="problems">
|
||||
<list>
|
||||
|
||||
4
.idea/misc.xml
generated
4
.idea/misc.xml
generated
@@ -6,10 +6,8 @@
|
||||
</properties>
|
||||
</component>
|
||||
<component name="EntryPointsManager">
|
||||
<list size="3">
|
||||
<list size="1">
|
||||
<item index="0" class="java.lang.String" itemvalue="javax.inject.Inject" />
|
||||
<item index="1" class="java.lang.String" itemvalue="org.gradle.api.tasks.TaskAction" />
|
||||
<item index="2" class="java.lang.String" itemvalue="org.gradle.api.tasks.options.Option" />
|
||||
</list>
|
||||
</component>
|
||||
<component name="FacetAutodetectingManager">
|
||||
|
||||
13
.idea/runConfigurations/run_IR_test_in_node_js.xml
generated
13
.idea/runConfigurations/run_IR_test_in_node_js.xml
generated
@@ -1,13 +0,0 @@
|
||||
<component name="ProjectRunConfigurationManager">
|
||||
<configuration default="false" name="run IR test in node.js" type="js.build_tools.npm">
|
||||
<package-json value="$PROJECT_DIR$/js/js.translator/testData/package.json" />
|
||||
<command value="run" />
|
||||
<scripts>
|
||||
<script value="runIrTestInNode" />
|
||||
</scripts>
|
||||
<arguments value="$FilePath$" />
|
||||
<node-interpreter value="project" />
|
||||
<envs />
|
||||
<method v="2" />
|
||||
</configuration>
|
||||
</component>
|
||||
6
.idea/upsource.xml
generated
6
.idea/upsource.xml
generated
@@ -1,6 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="UpsourceSharedProjectSettings">
|
||||
<option name="upsourceUrl" value="https://upsource.jetbrains.com/" />
|
||||
</component>
|
||||
</project>
|
||||
3
.idea/vcs.xml
generated
3
.idea/vcs.xml
generated
@@ -25,4 +25,5 @@
|
||||
<component name="VcsDirectoryMappings">
|
||||
<mapping directory="" vcs="Git" />
|
||||
</component>
|
||||
</project>
|
||||
</project>
|
||||
|
||||
|
||||
@@ -1,4 +0,0 @@
|
||||
## Code of Conduct
|
||||
|
||||
This project and the corresponding community is governed by the [JetBrains Open Source and Community Code of Conduct](https://confluence.jetbrains.com/display/ALL/JetBrains+Open+Source+and+Community+Code+of+Conduct). Please make sure you read it.
|
||||
|
||||
7283
ChangeLog.md
7283
ChangeLog.md
File diff suppressed because it is too large
Load Diff
65
ReadMe.md
65
ReadMe.md
@@ -1,7 +1,7 @@
|
||||
[](https://confluence.jetbrains.com/display/ALL/JetBrains+on+GitHub)
|
||||
[](https://confluence.jetbrains.com/display/ALL/JetBrains+on+GitHub)
|
||||
[](https://teamcity.jetbrains.com/viewType.html?buildTypeId=Kotlin_dev_Compiler&branch_Kotlin_dev=%3Cdefault%3E&tab=buildTypeStatusDiv)
|
||||
[](https://search.maven.org/#search%7Cga%7C1%7Cg%3A%22org.jetbrains.kotlin%22)
|
||||
[](https://www.apache.org/licenses/LICENSE-2.0)
|
||||
[](http://search.maven.org/#search%7Cga%7C1%7Cg%3A%22org.jetbrains.kotlin%22)
|
||||
[](http://www.apache.org/licenses/LICENSE-2.0)
|
||||
|
||||
# Kotlin Programming Language
|
||||
|
||||
@@ -9,13 +9,13 @@ Welcome to [Kotlin](https://kotlinlang.org/)! Some handy links:
|
||||
|
||||
* [Kotlin Site](https://kotlinlang.org/)
|
||||
* [Getting Started Guide](https://kotlinlang.org/docs/tutorials/getting-started.html)
|
||||
* [Try Kotlin](https://play.kotlinlang.org/)
|
||||
* [Try Kotlin](https://try.kotlinlang.org/)
|
||||
* [Kotlin Standard Library](https://kotlinlang.org/api/latest/jvm/stdlib/index.html)
|
||||
* [Issue Tracker](https://youtrack.jetbrains.com/issues/KT)
|
||||
* [Forum](https://discuss.kotlinlang.org/)
|
||||
* [Kotlin Blog](https://blog.jetbrains.com/kotlin/)
|
||||
* [Follow Kotlin on Twitter](https://twitter.com/kotlin)
|
||||
* [Public Slack channel](https://slack.kotlinlang.org/)
|
||||
* [Public Slack channel](http://slack.kotlinlang.org/)
|
||||
* [TeamCity CI build](https://teamcity.jetbrains.com/project.html?tab=projectOverview&projectId=Kotlin)
|
||||
|
||||
## Editing Kotlin
|
||||
@@ -83,7 +83,7 @@ Refer to [libraries/ReadMe.md](libraries/ReadMe.md) for details.
|
||||
|
||||
### Building for different versions of IntelliJ IDEA and Android Studio
|
||||
|
||||
Kotlin plugin is intended to work with several recent versions of IntelliJ IDEA and Android Studio. Each platform is allowed to have a different set of features and might provide a slightly different API. Instead of using several parallel Git branches, project stores everything in a single branch, but files may have counterparts with version extensions (\*.as32, \*.172, \*.181). The primary file is expected to be replaced with its counterpart when targeting non-default platform.
|
||||
Kotlin plugin is indented to work with several recent versions of IntelliJ IDEA and Android Studio. Each platform is allowed to have a different set of features and might provide a slightly different API. Instead of using several parallel Git branches, project stores everything in a single branch, but files may have counterparts with version extensions (\*.as32, \*.172, \*.181). The primary file is expected to be replaced with its counterpart when targeting non-default platform.
|
||||
|
||||
More detailed description of this scheme can be found at https://github.com/JetBrains/bunches/blob/master/ReadMe.md.
|
||||
|
||||
@@ -100,14 +100,14 @@ bunch switch . 182
|
||||
|
||||
## <a name="working-in-idea"></a> Working with the project in IntelliJ IDEA
|
||||
|
||||
Working with the Kotlin project requires at least IntelliJ IDEA 2017.3. You can download IntelliJ IDEA 2017.3 [here](https://www.jetbrains.com/idea/download).
|
||||
Working with the Kotlin project requires IntelliJ IDEA 2017.3. You can download IntelliJ IDEA 2017.3 [here](https://www.jetbrains.com/idea/download).
|
||||
|
||||
After cloning the project, to import the project in Intellij choose the project directory in the Open project dialog. Then, after project opened, Select
|
||||
To import the project in Intellij choose project directory in Open project dialog. Then, after project opened, Select
|
||||
`File` -> `New...` -> `Module from Existing Sources` in the menu, and select `build.gradle.kts` file in the project's root folder.
|
||||
|
||||
In the import dialog, select `use default gradle wrapper`.
|
||||
|
||||
To be able to run tests from IntelliJ easily, check `Delegate IDE build/run actions to Gradle` and choose `Gradle Test Runner` in the Gradle runner settings after importing the project.
|
||||
To be able to run tests from IntelliJ easily, check `Delegate IDE build/run actions to Gradle` and choose `Gradle Test Runner` in the Gradle runner settings.
|
||||
|
||||
At this time, you can use the latest released 1.2.x version of the Kotlin plugin for working with the code. To make sure you have the latest version installed, use Tools | Kotlin | Configure Kotlin Plugin Updates and press "Check for updates now".
|
||||
|
||||
@@ -133,4 +133,49 @@ includeBuild('/path/to/kotlin') {
|
||||
|
||||
# Contributing
|
||||
|
||||
Please be sure to review Kotlin's [contributing guidelines](docs/contributing.md) to learn how to help the project.
|
||||
We love contributions! There's [lots to do on Kotlin](https://youtrack.jetbrains.com/issues/KT) and on the
|
||||
[standard library](https://youtrack.jetbrains.com/issues/KT?q=%23Kotlin%20%23Unresolved%20and%20(links:%20KT-2554,%20KT-4089%20or%20%23Libraries)) so why not chat with us
|
||||
about what you're interested in doing? Please join the #kontributors channel in [our Slack chat](http://slack.kotlinlang.org/)
|
||||
and let us know about your plans.
|
||||
|
||||
If you want to find some issues to start off with, try [this query](https://youtrack.jetbrains.com/issues/KT?q=tag:%20%7BUp%20For%20Grabs%7D%20%23Unresolved) which should find all Kotlin issues that marked as "up-for-grabs".
|
||||
|
||||
Currently only committers can assign issues to themselves so just add a comment if you're starting work on it.
|
||||
|
||||
A nice gentle way to contribute would be to review the [standard library docs](https://kotlinlang.org/api/latest/jvm/stdlib/index.html)
|
||||
and find classes or functions which are not documented very well and submit a patch.
|
||||
|
||||
In particular it'd be great if all functions included a nice example of how to use it such as for the
|
||||
[`hashMapOf()`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/hash-map-of.html) function.
|
||||
This is implemented using the [`@sample`](https://github.com/JetBrains/kotlin/blob/1.1.0/libraries/stdlib/src/kotlin/collections/Maps.kt#L91)
|
||||
macro to include code from a test function. The benefits of this approach are twofold; First, the API's documentation is improved via beneficial examples that help new users and second, the code coverage is increased.
|
||||
|
||||
Some of the code in the standard library is created by generating code from templates. See the [README](libraries/stdlib/ReadMe.md) in the stdlib section for how to run the code generator. The existing templates can be used as examples for creating new ones.
|
||||
|
||||
Also the [JavaScript back-end](https://github.com/JetBrains/kotlin/blob/master/js/ReadMe.md) could really use your help. See the [JavaScript contribution section](https://github.com/JetBrains/kotlin/blob/master/js/ReadMe.md) for more details.
|
||||
|
||||
If you want to contribute a new language feature, it is important to discuss it through a [KEEP](https://github.com/Kotlin/KEEP) first and get an approval from the language designers. This way you'll make sure your work will be in line with the overall language evolution plan and no other design decisions or considerations will block its acceptance.
|
||||
|
||||
## Submitting patches
|
||||
|
||||
The best way to submit a patch is to [fork the project on GitHub](https://help.github.com/articles/fork-a-repo/) and then send us a
|
||||
[pull request](https://help.github.com/articles/creating-a-pull-request/) via [GitHub](https://github.com).
|
||||
|
||||
If you create your own fork, it might help to enable rebase by default
|
||||
when you pull by executing
|
||||
``` bash
|
||||
git config --global pull.rebase true
|
||||
```
|
||||
This will avoid your local repo having too many merge commits
|
||||
which will help keep your pull request simple and easy to apply.
|
||||
|
||||
## Checklist
|
||||
|
||||
Before submitting the pull request, make sure that you can say "YES" to each point in this short checklist:
|
||||
|
||||
- You provided the link to the related issue(s) from YouTrack
|
||||
- You made a reasonable amount of changes related only to the provided issues
|
||||
- You can explain changes made in the pull request
|
||||
- You ran the build locally and verified new functionality
|
||||
- You ran related tests locally and they passed
|
||||
- You do not have merge commits in the pull request
|
||||
|
||||
@@ -8,7 +8,7 @@ plugins {
|
||||
dependencies {
|
||||
compile(commonDep("org.apache.ant", "ant"))
|
||||
compile(project(":kotlin-preloader"))
|
||||
compile(kotlinStdlib())
|
||||
compile(project(":kotlin-stdlib"))
|
||||
}
|
||||
|
||||
sourceSets {
|
||||
@@ -17,7 +17,8 @@ sourceSets {
|
||||
}
|
||||
|
||||
runtimeJar {
|
||||
manifest.attributes.put("Class-Path", "$compilerManifestClassPath kotlin-preloader.jar")
|
||||
from("$projectDir/src") { include("**/*.xml") }
|
||||
manifest.attributes.put("Class-Path", "kotlin-stdlib.jar kotlin-reflect.jar kotlin-script-runtime.jar kotlin-preloader.jar")
|
||||
}
|
||||
|
||||
dist()
|
||||
|
||||
@@ -14,14 +14,14 @@ dependencies {
|
||||
compileOnly(project(":js:js.serializer"))
|
||||
compileOnly(project(":js:js.frontend"))
|
||||
compileOnly(intellijCoreDep()) { includeJars("intellij-core") }
|
||||
compileOnly(intellijDep()) { includeJars("asm-all", "trove4j", "util", rootProject = rootProject) }
|
||||
compileOnly(intellijDep()) { includeJars("annotations", "asm-all", "trove4j", "util") }
|
||||
compileOnly(project(":kotlin-reflect-api"))
|
||||
|
||||
testCompileOnly(project(":compiler:cli-common"))
|
||||
testCompile(projectTests(":compiler:tests-common"))
|
||||
testCompile(commonDep("junit:junit"))
|
||||
testCompile(protobufFull())
|
||||
testCompile(kotlinStdlib())
|
||||
testCompile(project(":kotlin-stdlib"))
|
||||
testCompileOnly(intellijDep()) { includeJars("openapi") }
|
||||
|
||||
testRuntime(project(":kotlin-reflect"))
|
||||
@@ -32,8 +32,6 @@ sourceSets {
|
||||
"test" { projectDefault() }
|
||||
}
|
||||
|
||||
publish()
|
||||
|
||||
runtimeJar()
|
||||
sourcesJar()
|
||||
javadocJar()
|
||||
@@ -41,3 +39,5 @@ javadocJar()
|
||||
testsJar()
|
||||
|
||||
projectTest()
|
||||
|
||||
publish()
|
||||
|
||||
@@ -37,8 +37,8 @@ interface IncrementalCacheCommon {
|
||||
fun getSourceFileIfClass(fqName: FqName): File?
|
||||
fun markDirty(removedAndCompiledSources: Collection<File>)
|
||||
fun clearCacheForRemovedClasses(changesCollector: ChangesCollector)
|
||||
fun getComplementaryFilesRecursive(dirtyFiles: Collection<File>): Collection<File>
|
||||
fun updateComplementaryFiles(dirtyFiles: Collection<File>, expectActualTracker: ExpectActualTrackerImpl)
|
||||
fun clearComplementaryFilesMapping(dirtyFiles: Collection<File>): Collection<File>
|
||||
fun registerComplementaryFiles(expectActualTracker: ExpectActualTrackerImpl)
|
||||
fun dump(): String
|
||||
}
|
||||
|
||||
@@ -51,17 +51,14 @@ abstract class AbstractIncrementalCache<ClassName>(workingDir: File) : BasicMaps
|
||||
private val SUPERTYPES = "supertypes"
|
||||
private val CLASS_FQ_NAME_TO_SOURCE = "class-fq-name-to-source"
|
||||
private val COMPLEMENTARY_FILES = "complementary-files"
|
||||
@JvmStatic
|
||||
protected val SOURCE_TO_CLASSES = "source-to-classes"
|
||||
@JvmStatic
|
||||
protected val DIRTY_OUTPUT_CLASSES = "dirty-output-classes"
|
||||
@JvmStatic protected val SOURCE_TO_CLASSES = "source-to-classes"
|
||||
@JvmStatic protected val DIRTY_OUTPUT_CLASSES = "dirty-output-classes"
|
||||
}
|
||||
|
||||
private val dependents = arrayListOf<AbstractIncrementalCache<ClassName>>()
|
||||
fun addDependentCache(cache: AbstractIncrementalCache<ClassName>) {
|
||||
dependents.add(cache)
|
||||
}
|
||||
|
||||
override val thisWithDependentCaches: Iterable<AbstractIncrementalCache<ClassName>> by lazy {
|
||||
val result = arrayListOf(this)
|
||||
result.addAll(dependents)
|
||||
@@ -86,10 +83,10 @@ abstract class AbstractIncrementalCache<ClassName>(workingDir: File) : BasicMaps
|
||||
files.flatMapTo(HashSet()) { sourceToClassesMap.getFqNames(it) }
|
||||
|
||||
override fun getSubtypesOf(className: FqName): Sequence<FqName> =
|
||||
subtypesMap[className].asSequence()
|
||||
subtypesMap[className].asSequence()
|
||||
|
||||
override fun getSourceFileIfClass(fqName: FqName): File? =
|
||||
classFqNameToSourceMap[fqName]
|
||||
classFqNameToSourceMap[fqName]
|
||||
|
||||
override fun markDirty(removedAndCompiledSources: Collection<File>) {
|
||||
for (sourceFile in removedAndCompiledSources) {
|
||||
@@ -105,8 +102,8 @@ abstract class AbstractIncrementalCache<ClassName>(workingDir: File) : BasicMaps
|
||||
protected fun addToClassStorage(proto: ProtoBuf.Class, nameResolver: NameResolver, srcFile: File) {
|
||||
val supertypes = proto.supertypes(TypeTable(proto.typeTable))
|
||||
val parents = supertypes.map { nameResolver.getClassId(it.className).asSingleFqName() }
|
||||
.filter { it.asString() != "kotlin.Any" }
|
||||
.toSet()
|
||||
.filter { it.asString() != "kotlin.Any" }
|
||||
.toSet()
|
||||
val child = nameResolver.getClassId(proto.fqName).asSingleFqName()
|
||||
|
||||
parents.forEach { subtypesMap.add(it, child) }
|
||||
@@ -153,14 +150,13 @@ abstract class AbstractIncrementalCache<ClassName>(workingDir: File) : BasicMaps
|
||||
removedFqNames.forEach { classFqNameToSourceMap.remove(it) }
|
||||
}
|
||||
|
||||
protected class ClassFqNameToSourceMap(storageFile: File) :
|
||||
BasicStringMap<String>(storageFile, EnumeratorStringDescriptor(), PathStringDescriptor) {
|
||||
protected class ClassFqNameToSourceMap(storageFile: File) : BasicStringMap<String>(storageFile, EnumeratorStringDescriptor(), PathStringDescriptor) {
|
||||
operator fun set(fqName: FqName, sourceFile: File) {
|
||||
storage[fqName.asString()] = sourceFile.canonicalPath
|
||||
}
|
||||
|
||||
operator fun get(fqName: FqName): File? =
|
||||
storage[fqName.asString()]?.let(::File)
|
||||
storage[fqName.asString()]?.let(::File)
|
||||
|
||||
fun remove(fqName: FqName) {
|
||||
storage.remove(fqName.asString())
|
||||
@@ -169,24 +165,18 @@ abstract class AbstractIncrementalCache<ClassName>(workingDir: File) : BasicMaps
|
||||
override fun dumpValue(value: String) = value
|
||||
}
|
||||
|
||||
override fun getComplementaryFilesRecursive(dirtyFiles: Collection<File>): Collection<File> {
|
||||
override fun clearComplementaryFilesMapping(dirtyFiles: Collection<File>): Collection<File> {
|
||||
val complementaryFiles = HashSet<File>()
|
||||
val filesQueue = ArrayDeque(dirtyFiles)
|
||||
while (filesQueue.isNotEmpty()) {
|
||||
val file = filesQueue.pollFirst()
|
||||
complementaryFilesMap[file].forEach {
|
||||
if (complementaryFiles.add(it)) filesQueue.add(it)
|
||||
}
|
||||
complementaryFilesMap.remove(file).filterTo(filesQueue) { complementaryFiles.add(it) }
|
||||
}
|
||||
complementaryFiles.removeAll(dirtyFiles)
|
||||
return complementaryFiles
|
||||
}
|
||||
|
||||
override fun updateComplementaryFiles(dirtyFiles: Collection<File>, expectActualTracker: ExpectActualTrackerImpl) {
|
||||
dirtyFiles.forEach {
|
||||
complementaryFilesMap.remove(it)
|
||||
}
|
||||
|
||||
override fun registerComplementaryFiles(expectActualTracker: ExpectActualTrackerImpl) {
|
||||
val actualToExpect = hashMapOf<File, MutableSet<File>>()
|
||||
for ((expect, actuals) in expectActualTracker.expectToActualMap) {
|
||||
for (actual in actuals) {
|
||||
|
||||
@@ -1,6 +1,17 @@
|
||||
/*
|
||||
* Copyright 2010-2019 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license
|
||||
* that can be found in the license/LICENSE.txt file.
|
||||
* Copyright 2010-2016 JetBrains s.r.o.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.jetbrains.kotlin.incremental
|
||||
@@ -10,10 +21,14 @@ import java.io.File
|
||||
|
||||
interface ICReporter {
|
||||
fun report(message: () -> String)
|
||||
fun reportVerbose(message: () -> String)
|
||||
|
||||
fun reportCompileIteration(incremental: Boolean, sourceFiles: Collection<File>, exitCode: ExitCode)
|
||||
fun reportMarkDirtyClass(affectedFiles: Iterable<File>, classFqName: String)
|
||||
fun reportMarkDirtyMember(affectedFiles: Iterable<File>, scope: String, name: String)
|
||||
fun reportMarkDirty(affectedFiles: Iterable<File>, reason: String)
|
||||
}
|
||||
// used in Gradle plugin
|
||||
@Suppress("unused")
|
||||
fun reportCompileIteration(sourceFiles: Collection<File>, exitCode: ExitCode) {}
|
||||
|
||||
fun pathsAsString(files: Iterable<File>): String =
|
||||
files.joinToString { it.canonicalPath }
|
||||
|
||||
fun pathsAsString(vararg files: File): String =
|
||||
pathsAsString(files.toList())
|
||||
}
|
||||
@@ -1,36 +0,0 @@
|
||||
/*
|
||||
* Copyright 2010-2019 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license
|
||||
* that can be found in the license/LICENSE.txt file.
|
||||
*/
|
||||
|
||||
package org.jetbrains.kotlin.incremental
|
||||
|
||||
import java.io.File
|
||||
|
||||
abstract class ICReporterBase(private val pathsBase: File? = null) : ICReporter {
|
||||
override fun reportMarkDirtyClass(affectedFiles: Iterable<File>, classFqName: String) {
|
||||
reportMarkDirty(affectedFiles, "dirty class $classFqName")
|
||||
}
|
||||
|
||||
override fun reportMarkDirtyMember(affectedFiles: Iterable<File>, scope: String, name: String) {
|
||||
reportMarkDirty(affectedFiles, "dirty member $scope#$name")
|
||||
}
|
||||
|
||||
override fun reportMarkDirty(affectedFiles: Iterable<File>, reason: String) {
|
||||
affectedFiles.forEach { file ->
|
||||
reportVerbose { "${pathsAsString(file)} is marked dirty: $reason" }
|
||||
}
|
||||
}
|
||||
|
||||
protected fun relativizeIfPossible(files: Iterable<File>): List<File> =
|
||||
files.map { it.relativeOrCanonical() }
|
||||
|
||||
protected fun pathsAsString(files: Iterable<File>): String =
|
||||
relativizeIfPossible(files).map { it.path }.sorted().joinToString()
|
||||
|
||||
protected fun pathsAsString(vararg files: File): String =
|
||||
pathsAsString(files.toList())
|
||||
|
||||
protected fun File.relativeOrCanonical(): File =
|
||||
pathsBase?.let { relativeToOrNull(it) } ?: canonicalFile
|
||||
}
|
||||
@@ -72,7 +72,7 @@ open class IncrementalJsCache(cachesDir: File) : AbstractIncrementalCache<FqName
|
||||
|
||||
for ((srcFile, data) in translatedFiles) {
|
||||
dirtySources.remove(srcFile)
|
||||
val (binaryMetadata, binaryAst, inlineData) = data
|
||||
val (binaryMetadata, binaryAst) = data
|
||||
|
||||
val oldProtoMap = translationResults[srcFile]?.metadata?.let { getProtoData(srcFile, it) } ?: emptyMap()
|
||||
val newProtoMap = getProtoData(srcFile, binaryMetadata)
|
||||
@@ -89,7 +89,7 @@ open class IncrementalJsCache(cachesDir: File) : AbstractIncrementalCache<FqName
|
||||
changesCollector.collectProtoChanges(oldProtoMap[classId], newProtoMap[classId])
|
||||
}
|
||||
|
||||
translationResults.put(srcFile, binaryMetadata, binaryAst, inlineData)
|
||||
translationResults.put(srcFile, binaryMetadata, binaryAst)
|
||||
}
|
||||
|
||||
for ((srcFile, inlineDeclarations) in incrementalResults.inlineFunctions) {
|
||||
@@ -130,9 +130,6 @@ private object TranslationResultValueExternalizer : DataExternalizer<Translation
|
||||
|
||||
output.writeInt(value.binaryAst.size)
|
||||
output.write(value.binaryAst)
|
||||
|
||||
output.writeInt(value.inlineData.size)
|
||||
output.write(value.inlineData)
|
||||
}
|
||||
|
||||
override fun read(input: DataInput): TranslationResultValue {
|
||||
@@ -144,20 +141,16 @@ private object TranslationResultValueExternalizer : DataExternalizer<Translation
|
||||
val binaryAst = ByteArray(binaryAstSize)
|
||||
input.readFully(binaryAst)
|
||||
|
||||
val inlineDataSize = input.readInt()
|
||||
val inlineData = ByteArray(inlineDataSize)
|
||||
input.readFully(inlineData)
|
||||
|
||||
return TranslationResultValue(metadata = metadata, binaryAst = binaryAst, inlineData = inlineData)
|
||||
return TranslationResultValue(metadata = metadata, binaryAst = binaryAst)
|
||||
}
|
||||
}
|
||||
|
||||
private class TranslationResultMap(storageFile: File) : BasicStringMap<TranslationResultValue>(storageFile, TranslationResultValueExternalizer) {
|
||||
override fun dumpValue(value: TranslationResultValue): String =
|
||||
"Metadata: ${value.metadata.md5()}, Binary AST: ${value.binaryAst.md5()}, InlineData: ${value.inlineData.md5()}"
|
||||
"Metadata: ${value.metadata.md5()}, Binary AST: ${value.binaryAst.md5()}"
|
||||
|
||||
fun put(file: File, newMetadata: ByteArray, newBinaryAst: ByteArray, newInlineData: ByteArray) {
|
||||
storage[file.canonicalPath] = TranslationResultValue(metadata = newMetadata, binaryAst = newBinaryAst, inlineData = newInlineData)
|
||||
fun put(file: File, newMetadata: ByteArray, newBinaryAst: ByteArray) {
|
||||
storage[file.canonicalPath] = TranslationResultValue(metadata = newMetadata, binaryAst = newBinaryAst)
|
||||
}
|
||||
|
||||
operator fun get(file: File): TranslationResultValue? =
|
||||
|
||||
@@ -23,7 +23,10 @@ import com.intellij.util.io.EnumeratorStringDescriptor
|
||||
import gnu.trove.THashSet
|
||||
import org.jetbrains.annotations.TestOnly
|
||||
import org.jetbrains.kotlin.build.GeneratedJvmClass
|
||||
import org.jetbrains.kotlin.config.IncrementalCompilation
|
||||
import org.jetbrains.kotlin.incremental.storage.*
|
||||
import org.jetbrains.kotlin.incremental.storage.version.clean
|
||||
import org.jetbrains.kotlin.incremental.storage.version.localCacheVersionManager
|
||||
import org.jetbrains.kotlin.inline.inlineFunctionsJvmNames
|
||||
import org.jetbrains.kotlin.load.kotlin.header.KotlinClassHeader
|
||||
import org.jetbrains.kotlin.load.kotlin.incremental.components.IncrementalCache
|
||||
@@ -261,6 +264,11 @@ open class IncrementalJvmCache(
|
||||
return protoMap[JvmClassName.byInternalName(MODULE_MAPPING_FILE_NAME)]?.bytes
|
||||
}
|
||||
|
||||
override fun clean() {
|
||||
super.clean()
|
||||
localCacheVersionManager(targetDataRoot, IncrementalCompilation.isEnabledForJvm()).clean()
|
||||
}
|
||||
|
||||
private inner class ProtoMap(storageFile: File) : BasicStringMap<ProtoMapValue>(storageFile, ProtoMapValueExternalizer) {
|
||||
|
||||
fun process(kotlinClass: LocalFileKotlinClass, changesCollector: ChangesCollector) {
|
||||
@@ -350,7 +358,7 @@ open class IncrementalJvmCache(
|
||||
private fun getConstantsMap(bytes: ByteArray): Map<String, Any> {
|
||||
val result = HashMap<String, Any>()
|
||||
|
||||
ClassReader(bytes).accept(object : ClassVisitor(Opcodes.API_VERSION) {
|
||||
ClassReader(bytes).accept(object : ClassVisitor(Opcodes.ASM5) {
|
||||
override fun visitField(access: Int, name: String, desc: String, signature: String?, value: Any?): FieldVisitor? {
|
||||
val staticFinal = Opcodes.ACC_STATIC or Opcodes.ACC_FINAL or Opcodes.ACC_PRIVATE
|
||||
if (value != null && access and staticFinal == Opcodes.ACC_STATIC or Opcodes.ACC_FINAL) {
|
||||
@@ -470,7 +478,7 @@ open class IncrementalJvmCache(
|
||||
|
||||
val result = HashMap<String, Long>()
|
||||
|
||||
ClassReader(bytes).accept(object : ClassVisitor(Opcodes.API_VERSION) {
|
||||
ClassReader(bytes).accept(object : ClassVisitor(Opcodes.ASM5) {
|
||||
override fun visitMethod(
|
||||
access: Int,
|
||||
name: String,
|
||||
@@ -478,9 +486,9 @@ open class IncrementalJvmCache(
|
||||
signature: String?,
|
||||
exceptions: Array<out String>?
|
||||
): MethodVisitor? {
|
||||
val dummyClassWriter = ClassWriter(Opcodes.API_VERSION)
|
||||
val dummyClassWriter = ClassWriter(Opcodes.ASM5)
|
||||
|
||||
return object : MethodVisitor(Opcodes.API_VERSION, dummyClassWriter.visitMethod(0, name, desc, null, exceptions)) {
|
||||
return object : MethodVisitor(Opcodes.ASM5, dummyClassWriter.visitMethod(0, name, desc, null, exceptions)) {
|
||||
override fun visitEnd() {
|
||||
val jvmName = name + desc
|
||||
if (jvmName !in inlineFunctions) return
|
||||
|
||||
@@ -35,30 +35,25 @@ class JavaClassesSerializerExtension : KotlinSerializerExtensionBase(BuiltInSeri
|
||||
get() = JvmMetadataVersion.INVALID_VERSION
|
||||
|
||||
override fun serializeClass(
|
||||
descriptor: ClassDescriptor,
|
||||
proto: ProtoBuf.Class.Builder,
|
||||
versionRequirementTable: MutableVersionRequirementTable,
|
||||
childSerializer: DescriptorSerializer
|
||||
descriptor: ClassDescriptor,
|
||||
proto: ProtoBuf.Class.Builder,
|
||||
versionRequirementTable: MutableVersionRequirementTable
|
||||
) {
|
||||
super.serializeClass(descriptor, proto, versionRequirementTable, childSerializer)
|
||||
super.serializeClass(descriptor, proto, versionRequirementTable)
|
||||
if (descriptor.visibility == JavaVisibilities.PACKAGE_VISIBILITY) {
|
||||
proto.setExtension(JavaClassProtoBuf.isPackagePrivateClass, true)
|
||||
}
|
||||
}
|
||||
|
||||
override fun serializeConstructor(descriptor: ConstructorDescriptor,
|
||||
proto: ProtoBuf.Constructor.Builder,
|
||||
childSerializer: DescriptorSerializer) {
|
||||
super.serializeConstructor(descriptor, proto, childSerializer)
|
||||
override fun serializeConstructor(descriptor: ConstructorDescriptor, proto: ProtoBuf.Constructor.Builder) {
|
||||
super.serializeConstructor(descriptor, proto)
|
||||
if (descriptor.visibility == JavaVisibilities.PACKAGE_VISIBILITY) {
|
||||
proto.setExtension(JavaClassProtoBuf.isPackagePrivateConstructor, true)
|
||||
}
|
||||
}
|
||||
|
||||
override fun serializeFunction(descriptor: FunctionDescriptor,
|
||||
proto: ProtoBuf.Function.Builder,
|
||||
childSerializer: DescriptorSerializer) {
|
||||
super.serializeFunction(descriptor, proto, childSerializer)
|
||||
override fun serializeFunction(descriptor: FunctionDescriptor, proto: ProtoBuf.Function.Builder) {
|
||||
super.serializeFunction(descriptor, proto)
|
||||
if (descriptor.visibility == JavaVisibilities.PACKAGE_VISIBILITY) {
|
||||
proto.setExtension(JavaClassProtoBuf.isPackagePrivateMethod, true)
|
||||
}
|
||||
@@ -69,12 +64,11 @@ class JavaClassesSerializerExtension : KotlinSerializerExtensionBase(BuiltInSeri
|
||||
}
|
||||
|
||||
override fun serializeProperty(
|
||||
descriptor: PropertyDescriptor,
|
||||
proto: ProtoBuf.Property.Builder,
|
||||
versionRequirementTable: MutableVersionRequirementTable,
|
||||
childSerializer: DescriptorSerializer
|
||||
descriptor: PropertyDescriptor,
|
||||
proto: ProtoBuf.Property.Builder,
|
||||
versionRequirementTable: MutableVersionRequirementTable
|
||||
) {
|
||||
super.serializeProperty(descriptor, proto, versionRequirementTable, childSerializer)
|
||||
super.serializeProperty(descriptor, proto, versionRequirementTable)
|
||||
if (descriptor.visibility == JavaVisibilities.PACKAGE_VISIBILITY) {
|
||||
proto.setExtension(JavaClassProtoBuf.isPackagePrivateField, true)
|
||||
}
|
||||
|
||||
@@ -522,24 +522,6 @@ open class ProtoCompareGenerated(val oldNameResolver: NameResolver, val newNameR
|
||||
}
|
||||
}
|
||||
|
||||
if (old.getExtensionCount(JsProtoBuf.propertyGetterAnnotation) != new.getExtensionCount(JsProtoBuf.propertyGetterAnnotation)) {
|
||||
return false
|
||||
}
|
||||
else {
|
||||
for(i in 0..old.getExtensionCount(JsProtoBuf.propertyGetterAnnotation) - 1) {
|
||||
if (!checkEquals(old.getExtension(JsProtoBuf.propertyGetterAnnotation, i), new.getExtension(JsProtoBuf.propertyGetterAnnotation, i))) return false
|
||||
}
|
||||
}
|
||||
|
||||
if (old.getExtensionCount(JsProtoBuf.propertySetterAnnotation) != new.getExtensionCount(JsProtoBuf.propertySetterAnnotation)) {
|
||||
return false
|
||||
}
|
||||
else {
|
||||
for(i in 0..old.getExtensionCount(JsProtoBuf.propertySetterAnnotation) - 1) {
|
||||
if (!checkEquals(old.getExtension(JsProtoBuf.propertySetterAnnotation, i), new.getExtension(JsProtoBuf.propertySetterAnnotation, i))) return false
|
||||
}
|
||||
}
|
||||
|
||||
if (old.hasExtension(JsProtoBuf.compileTimeValue) != new.hasExtension(JsProtoBuf.compileTimeValue)) return false
|
||||
if (old.hasExtension(JsProtoBuf.compileTimeValue)) {
|
||||
if (!checkEquals(old.getExtension(JsProtoBuf.compileTimeValue), new.getExtension(JsProtoBuf.compileTimeValue))) return false
|
||||
@@ -569,24 +551,6 @@ open class ProtoCompareGenerated(val oldNameResolver: NameResolver, val newNameR
|
||||
}
|
||||
}
|
||||
|
||||
if (old.getExtensionCount(BuiltInsProtoBuf.propertyGetterAnnotation) != new.getExtensionCount(BuiltInsProtoBuf.propertyGetterAnnotation)) {
|
||||
return false
|
||||
}
|
||||
else {
|
||||
for(i in 0..old.getExtensionCount(BuiltInsProtoBuf.propertyGetterAnnotation) - 1) {
|
||||
if (!checkEquals(old.getExtension(BuiltInsProtoBuf.propertyGetterAnnotation, i), new.getExtension(BuiltInsProtoBuf.propertyGetterAnnotation, i))) return false
|
||||
}
|
||||
}
|
||||
|
||||
if (old.getExtensionCount(BuiltInsProtoBuf.propertySetterAnnotation) != new.getExtensionCount(BuiltInsProtoBuf.propertySetterAnnotation)) {
|
||||
return false
|
||||
}
|
||||
else {
|
||||
for(i in 0..old.getExtensionCount(BuiltInsProtoBuf.propertySetterAnnotation) - 1) {
|
||||
if (!checkEquals(old.getExtension(BuiltInsProtoBuf.propertySetterAnnotation, i), new.getExtension(BuiltInsProtoBuf.propertySetterAnnotation, i))) return false
|
||||
}
|
||||
}
|
||||
|
||||
if (old.hasExtension(BuiltInsProtoBuf.compileTimeValue) != new.hasExtension(BuiltInsProtoBuf.compileTimeValue)) return false
|
||||
if (old.hasExtension(BuiltInsProtoBuf.compileTimeValue)) {
|
||||
if (!checkEquals(old.getExtension(BuiltInsProtoBuf.compileTimeValue), new.getExtension(BuiltInsProtoBuf.compileTimeValue))) return false
|
||||
@@ -1815,14 +1779,6 @@ fun ProtoBuf.Property.hashCode(stringIndexes: (Int) -> Int, fqNameIndexes: (Int)
|
||||
hashCode = 31 * hashCode + getExtension(JsProtoBuf.propertyAnnotation, i).hashCode(stringIndexes, fqNameIndexes)
|
||||
}
|
||||
|
||||
for(i in 0..getExtensionCount(JsProtoBuf.propertyGetterAnnotation) - 1) {
|
||||
hashCode = 31 * hashCode + getExtension(JsProtoBuf.propertyGetterAnnotation, i).hashCode(stringIndexes, fqNameIndexes)
|
||||
}
|
||||
|
||||
for(i in 0..getExtensionCount(JsProtoBuf.propertySetterAnnotation) - 1) {
|
||||
hashCode = 31 * hashCode + getExtension(JsProtoBuf.propertySetterAnnotation, i).hashCode(stringIndexes, fqNameIndexes)
|
||||
}
|
||||
|
||||
if (hasExtension(JsProtoBuf.compileTimeValue)) {
|
||||
hashCode = 31 * hashCode + getExtension(JsProtoBuf.compileTimeValue).hashCode(stringIndexes, fqNameIndexes)
|
||||
}
|
||||
@@ -1843,14 +1799,6 @@ fun ProtoBuf.Property.hashCode(stringIndexes: (Int) -> Int, fqNameIndexes: (Int)
|
||||
hashCode = 31 * hashCode + getExtension(BuiltInsProtoBuf.propertyAnnotation, i).hashCode(stringIndexes, fqNameIndexes)
|
||||
}
|
||||
|
||||
for(i in 0..getExtensionCount(BuiltInsProtoBuf.propertyGetterAnnotation) - 1) {
|
||||
hashCode = 31 * hashCode + getExtension(BuiltInsProtoBuf.propertyGetterAnnotation, i).hashCode(stringIndexes, fqNameIndexes)
|
||||
}
|
||||
|
||||
for(i in 0..getExtensionCount(BuiltInsProtoBuf.propertySetterAnnotation) - 1) {
|
||||
hashCode = 31 * hashCode + getExtension(BuiltInsProtoBuf.propertySetterAnnotation, i).hashCode(stringIndexes, fqNameIndexes)
|
||||
}
|
||||
|
||||
if (hasExtension(BuiltInsProtoBuf.compileTimeValue)) {
|
||||
hashCode = 31 * hashCode + getExtension(BuiltInsProtoBuf.compileTimeValue).hashCode(stringIndexes, fqNameIndexes)
|
||||
}
|
||||
|
||||
@@ -31,10 +31,8 @@ import org.jetbrains.kotlin.modules.TargetId
|
||||
import org.jetbrains.kotlin.name.FqName
|
||||
import org.jetbrains.kotlin.progress.CompilationCanceledStatus
|
||||
import org.jetbrains.kotlin.synthetic.SAM_LOOKUP_NAME
|
||||
import org.jetbrains.kotlin.utils.addToStdlib.flattenTo
|
||||
import java.io.File
|
||||
import java.util.*
|
||||
import kotlin.collections.HashSet
|
||||
|
||||
const val DELETE_MODULE_FILE_PROPERTY = "kotlin.delete.module.file.after.build"
|
||||
|
||||
@@ -132,7 +130,7 @@ fun ChangesCollector.getDirtyData(
|
||||
val dirtyClassesFqNames = HashSet<FqName>()
|
||||
|
||||
for (change in changes()) {
|
||||
reporter.reportVerbose { "Process $change" }
|
||||
reporter.report { "Process $change" }
|
||||
|
||||
if (change is ChangeInfo.SignatureChanged) {
|
||||
val fqNames = if (!change.areSubclassesAffected) listOf(change.fqName) else withSubtypes(change.fqName, caches)
|
||||
@@ -145,7 +143,8 @@ fun ChangesCollector.getDirtyData(
|
||||
val name = classFqName.shortName().identifier
|
||||
dirtyLookupSymbols.add(LookupSymbol(name, scope))
|
||||
}
|
||||
} else if (change is ChangeInfo.MembersChanged) {
|
||||
}
|
||||
else if (change is ChangeInfo.MembersChanged) {
|
||||
val fqNames = withSubtypes(change.fqName, caches)
|
||||
// need to recompile subtypes because changed member might break override
|
||||
dirtyClassesFqNames.addAll(fqNames)
|
||||
@@ -162,16 +161,16 @@ fun ChangesCollector.getDirtyData(
|
||||
}
|
||||
|
||||
fun mapLookupSymbolsToFiles(
|
||||
lookupStorage: LookupStorage,
|
||||
lookupSymbols: Iterable<LookupSymbol>,
|
||||
reporter: ICReporter,
|
||||
excludes: Set<File> = emptySet()
|
||||
lookupStorage: LookupStorage,
|
||||
lookupSymbols: Iterable<LookupSymbol>,
|
||||
reporter: ICReporter,
|
||||
excludes: Set<File> = emptySet()
|
||||
): Set<File> {
|
||||
val dirtyFiles = HashSet<File>()
|
||||
|
||||
for (lookup in lookupSymbols) {
|
||||
val affectedFiles = lookupStorage.get(lookup).map(::File).filter { it !in excludes }
|
||||
reporter.reportMarkDirtyMember(affectedFiles, scope = lookup.scope, name = lookup.name)
|
||||
reporter.report { "${lookup.scope}#${lookup.name} caused recompilation of: ${reporter.pathsAsString(affectedFiles)}" }
|
||||
dirtyFiles.addAll(affectedFiles)
|
||||
}
|
||||
|
||||
@@ -184,22 +183,19 @@ fun mapClassesFqNamesToFiles(
|
||||
reporter: ICReporter,
|
||||
excludes: Set<File> = emptySet()
|
||||
): Set<File> {
|
||||
val fqNameToAffectedFiles = HashMap<FqName, MutableSet<File>>()
|
||||
val dirtyFiles = HashSet<File>()
|
||||
|
||||
for (cache in caches) {
|
||||
for (classFqName in classesFqNames) {
|
||||
val srcFile = cache.getSourceFileIfClass(classFqName)
|
||||
for (dirtyClassFqName in classesFqNames) {
|
||||
val srcFile = cache.getSourceFileIfClass(dirtyClassFqName)
|
||||
if (srcFile == null || srcFile in excludes || srcFile.isJavaFile()) continue
|
||||
|
||||
fqNameToAffectedFiles.getOrPut(classFqName) { HashSet() }.add(srcFile)
|
||||
reporter.report { ("Class $dirtyClassFqName caused recompilation of: ${reporter.pathsAsString(srcFile)}") }
|
||||
dirtyFiles.add(srcFile)
|
||||
}
|
||||
}
|
||||
|
||||
for ((classFqName, affectedFiles) in fqNameToAffectedFiles) {
|
||||
reporter.reportMarkDirtyClass(affectedFiles, classFqName.asString())
|
||||
}
|
||||
|
||||
return fqNameToAffectedFiles.values.flattenTo(HashSet())
|
||||
return dirtyFiles
|
||||
}
|
||||
|
||||
fun withSubtypes(
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
* that can be found in the license/LICENSE.txt file.
|
||||
*/
|
||||
|
||||
package org.jetbrains.kotlin.jps.incremental
|
||||
package org.jetbrains.kotlin.incremental.storage.version
|
||||
|
||||
/**
|
||||
* Diff between actual and expected cache attributes.
|
||||
@@ -27,6 +27,10 @@ data class CacheAttributesDiff<Attrs: Any>(
|
||||
else CacheStatus.CLEARED
|
||||
}
|
||||
|
||||
fun saveExpectedIfNeeded() {
|
||||
if (expected != actual) manager.writeActualVersion(expected)
|
||||
}
|
||||
|
||||
override fun toString(): String {
|
||||
return "$status: actual=$actual -> expected=$expected"
|
||||
}
|
||||
@@ -0,0 +1,79 @@
|
||||
/*
|
||||
* Copyright 2010-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license
|
||||
* that can be found in the license/LICENSE.txt file.
|
||||
*/
|
||||
|
||||
package org.jetbrains.kotlin.incremental.storage.version
|
||||
|
||||
/**
|
||||
* Manages cache attributes values.
|
||||
*
|
||||
* Attribute values can be loaded by calling [loadActual].
|
||||
* Based on loaded actual and fixed [expected] values [CacheAttributesDiff] can be constructed which can calculate [CacheStatus].
|
||||
* Build system may perform required actions based on that (i.e. rebuild something, clearing caches, etc...).
|
||||
*
|
||||
* [CacheAttributesDiff] can be used to cache current attribute values and then can be used as facade for cache version operations.
|
||||
*/
|
||||
interface CacheAttributesManager<Attrs : Any> {
|
||||
/**
|
||||
* Cache attribute values expected by the current version of build system and compiler.
|
||||
* `null` means that cache is not required (incremental compilation is disabled).
|
||||
*/
|
||||
val expected: Attrs?
|
||||
|
||||
/**
|
||||
* Load actual cache attribute values.
|
||||
* `null` means that cache is not yet created.
|
||||
*
|
||||
* This is internal operation that should be implemented by particular implementation of CacheAttributesManager.
|
||||
* Consider using `loadDiff().actual` for getting actual values.
|
||||
*/
|
||||
fun loadActual(): Attrs?
|
||||
|
||||
/**
|
||||
* Write [values] as cache attributes for next build execution.
|
||||
*
|
||||
* This is internal operation that should be implemented by particular implementation of CacheAttributesManager.
|
||||
* Consider using `loadDiff().saveExpectedIfNeeded()` for saving attributes values for next build.
|
||||
*/
|
||||
fun writeActualVersion(values: Attrs?)
|
||||
|
||||
/**
|
||||
* Check if cache with [actual] attributes values can be used when [expected] attributes are required.
|
||||
*/
|
||||
fun isCompatible(actual: Attrs, expected: Attrs): Boolean = actual == expected
|
||||
}
|
||||
|
||||
fun <Attrs : Any> CacheAttributesManager<Attrs>.loadDiff(
|
||||
actual: Attrs? = this.loadActual(),
|
||||
expected: Attrs? = this.expected
|
||||
) = CacheAttributesDiff(this, actual, expected)
|
||||
|
||||
fun <Attrs : Any> CacheAttributesManager<Attrs>.loadAndCheckStatus() =
|
||||
loadDiff().status
|
||||
|
||||
/**
|
||||
* This method is kept only for compatibility.
|
||||
* Save [expected] cache attributes values if it is enabled and not equals to [actual].
|
||||
*/
|
||||
@Deprecated(
|
||||
message = "Consider using `this.loadDiff().saveExpectedIfNeeded()` and cache `loadDiff()` result.",
|
||||
replaceWith = ReplaceWith("loadDiff().saveExpectedIfNeeded()")
|
||||
)
|
||||
fun <Attrs : Any> CacheAttributesManager<Attrs>.saveIfNeeded(
|
||||
actual: Attrs? = this.loadActual(),
|
||||
expected: Attrs = this.expected
|
||||
?: error("To save disabled cache status [delete] should be called (this behavior is kept for compatibility)")
|
||||
) = loadDiff(actual, expected).saveExpectedIfNeeded()
|
||||
|
||||
/**
|
||||
* This method is kept only for compatibility.
|
||||
* Delete actual cache attributes values if it existed.
|
||||
*/
|
||||
@Deprecated(
|
||||
message = "Consider using `this.loadDiff().saveExpectedIfNeeded()` and cache `loadDiff()` result.",
|
||||
replaceWith = ReplaceWith("writeActualVersion(null)")
|
||||
)
|
||||
fun CacheAttributesManager<*>.clean() {
|
||||
writeActualVersion(null)
|
||||
}
|
||||
@@ -3,7 +3,7 @@
|
||||
* that can be found in the license/LICENSE.txt file.
|
||||
*/
|
||||
|
||||
package org.jetbrains.kotlin.jps.incremental
|
||||
package org.jetbrains.kotlin.incremental.storage.version
|
||||
|
||||
/**
|
||||
* Status that is used by system to perform required actions (i.e. rebuild something, clearing caches, etc...).
|
||||
@@ -0,0 +1,60 @@
|
||||
/*
|
||||
* Copyright 2010-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license
|
||||
* that can be found in the license/LICENSE.txt file.
|
||||
*/
|
||||
|
||||
package org.jetbrains.kotlin.incremental.storage.version
|
||||
|
||||
import org.jetbrains.annotations.TestOnly
|
||||
import org.jetbrains.kotlin.metadata.jvm.deserialization.JvmBytecodeBinaryVersion
|
||||
import org.jetbrains.kotlin.metadata.jvm.deserialization.JvmMetadataVersion
|
||||
import java.io.File
|
||||
import java.io.IOException
|
||||
|
||||
/**
|
||||
* Manages files with actual version [loadActual] and provides expected version [expected].
|
||||
* Based on that actual and expected versions [CacheStatus] can be calculated.
|
||||
* This can be done by constructing [CacheAttributesDiff] and calling [CacheAttributesDiff.status].
|
||||
* Based on that status system may perform required actions (i.e. rebuild something, clearing caches, etc...).
|
||||
*/
|
||||
class CacheVersionManager(
|
||||
private val versionFile: File,
|
||||
expectedOwnVersion: Int?
|
||||
) : CacheAttributesManager<CacheVersion> {
|
||||
override val expected: CacheVersion? =
|
||||
if (expectedOwnVersion == null) null
|
||||
else {
|
||||
val metadata = JvmMetadataVersion.INSTANCE
|
||||
val bytecode = JvmBytecodeBinaryVersion.INSTANCE
|
||||
|
||||
CacheVersion(
|
||||
expectedOwnVersion * 1000000 +
|
||||
bytecode.major * 10000 + bytecode.minor * 100 +
|
||||
metadata.major * 1000 + metadata.minor
|
||||
)
|
||||
}
|
||||
|
||||
override fun loadActual(): CacheVersion? =
|
||||
if (!versionFile.exists()) null
|
||||
else try {
|
||||
CacheVersion(versionFile.readText().toInt())
|
||||
} catch (e: NumberFormatException) {
|
||||
null
|
||||
} catch (e: IOException) {
|
||||
null
|
||||
}
|
||||
|
||||
override fun writeActualVersion(values: CacheVersion?) {
|
||||
if (values == null) versionFile.delete()
|
||||
else {
|
||||
versionFile.parentFile.mkdirs()
|
||||
versionFile.writeText(values.version.toString())
|
||||
}
|
||||
}
|
||||
|
||||
@get:TestOnly
|
||||
val versionFileForTesting: File
|
||||
get() = versionFile
|
||||
}
|
||||
|
||||
data class CacheVersion(val version: Int)
|
||||
@@ -0,0 +1,17 @@
|
||||
/*
|
||||
* Copyright 2010-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license
|
||||
* that can be found in the license/LICENSE.txt file.
|
||||
*/
|
||||
|
||||
package org.jetbrains.kotlin.incremental.storage.version
|
||||
|
||||
import java.io.File
|
||||
|
||||
private val NORMAL_VERSION = 9
|
||||
private val NORMAL_VERSION_FILE_NAME = "format-version.txt"
|
||||
|
||||
fun localCacheVersionManager(dataRoot: File, isCachesEnabled: Boolean) =
|
||||
CacheVersionManager(
|
||||
File(dataRoot, NORMAL_VERSION_FILE_NAME),
|
||||
if (isCachesEnabled) NORMAL_VERSION else null
|
||||
)
|
||||
@@ -0,0 +1,20 @@
|
||||
/*
|
||||
* Copyright 2010-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license
|
||||
* that can be found in the license/LICENSE.txt file.
|
||||
*/
|
||||
|
||||
package org.jetbrains.kotlin.incremental.storage.version
|
||||
|
||||
import java.io.File
|
||||
|
||||
private val DATA_CONTAINER_VERSION_FILE_NAME = "data-container-format-version.txt"
|
||||
private val DATA_CONTAINER_VERSION = 3
|
||||
|
||||
fun lookupsCacheVersionManager(dataRoot: File, isEnabled: Boolean) =
|
||||
CacheVersionManager(
|
||||
File(dataRoot, DATA_CONTAINER_VERSION_FILE_NAME),
|
||||
if (isEnabled) DATA_CONTAINER_VERSION else null
|
||||
)
|
||||
|
||||
fun readLookupsCacheStatus(dataRoot: File, isEnabled: Boolean): CacheStatus =
|
||||
lookupsCacheVersionManager(dataRoot, isEnabled).loadAndCheckStatus()
|
||||
@@ -67,18 +67,12 @@ fun getModificationsToPerform(
|
||||
val underscore = fileName.indexOf("_")
|
||||
|
||||
if (underscore != -1) {
|
||||
var moduleName = fileName.substring(0, underscore)
|
||||
var moduleFileName = fileName.substring(underscore + 1)
|
||||
if (moduleName.all { it.isDigit() }) {
|
||||
val (moduleName1, moduleFileName1) = moduleFileName.split("_")
|
||||
moduleName = moduleName1
|
||||
moduleFileName = moduleFileName1
|
||||
}
|
||||
val module = fileName.substring(0, underscore)
|
||||
|
||||
assert(moduleNames != null) { "File name has module prefix, but multi-module environment is absent" }
|
||||
assert(moduleName in moduleNames!!) { "Module not found for file with prefix: $fileName" }
|
||||
assert(module in moduleNames!!) { "Module not found for file with prefix: $fileName" }
|
||||
|
||||
return Pair(moduleName, moduleFileName)
|
||||
return Pair(module, fileName.substring(underscore + 1))
|
||||
}
|
||||
|
||||
assert(moduleNames == null) { "Test is multi-module, but file has no module prefix: $fileName" }
|
||||
|
||||
@@ -2643,9 +2643,7 @@ public final class DebugProtoBuf {
|
||||
* - Array<String>::class, if array_dimension_count = 1
|
||||
* - Array<Array<String>>::class, if array_dimension_count = 2
|
||||
* - etc.
|
||||
* Since it's very difficult to represent Kotlin-specific type aspects (nullability, type projections) of array arguments
|
||||
* in class literals on JVM, we don't bother to do represent this in our format as well.
|
||||
* So, for example, values `Array<Array<in B?>>::class` and `Array<out Array<B>>?>::class` will be represented exactly the same here.
|
||||
* Other forms of array class literals are not supported by this format, see KT-26568
|
||||
* </pre>
|
||||
*/
|
||||
boolean hasArrayDimensionCount();
|
||||
@@ -2659,9 +2657,7 @@ public final class DebugProtoBuf {
|
||||
* - Array<String>::class, if array_dimension_count = 1
|
||||
* - Array<Array<String>>::class, if array_dimension_count = 2
|
||||
* - etc.
|
||||
* Since it's very difficult to represent Kotlin-specific type aspects (nullability, type projections) of array arguments
|
||||
* in class literals on JVM, we don't bother to do represent this in our format as well.
|
||||
* So, for example, values `Array<Array<in B?>>::class` and `Array<out Array<B>>?>::class` will be represented exactly the same here.
|
||||
* Other forms of array class literals are not supported by this format, see KT-26568
|
||||
* </pre>
|
||||
*/
|
||||
int getArrayDimensionCount();
|
||||
@@ -3224,9 +3220,7 @@ public final class DebugProtoBuf {
|
||||
* - Array<String>::class, if array_dimension_count = 1
|
||||
* - Array<Array<String>>::class, if array_dimension_count = 2
|
||||
* - etc.
|
||||
* Since it's very difficult to represent Kotlin-specific type aspects (nullability, type projections) of array arguments
|
||||
* in class literals on JVM, we don't bother to do represent this in our format as well.
|
||||
* So, for example, values `Array<Array<in B?>>::class` and `Array<out Array<B>>?>::class` will be represented exactly the same here.
|
||||
* Other forms of array class literals are not supported by this format, see KT-26568
|
||||
* </pre>
|
||||
*/
|
||||
public boolean hasArrayDimensionCount() {
|
||||
@@ -3242,9 +3236,7 @@ public final class DebugProtoBuf {
|
||||
* - Array<String>::class, if array_dimension_count = 1
|
||||
* - Array<Array<String>>::class, if array_dimension_count = 2
|
||||
* - etc.
|
||||
* Since it's very difficult to represent Kotlin-specific type aspects (nullability, type projections) of array arguments
|
||||
* in class literals on JVM, we don't bother to do represent this in our format as well.
|
||||
* So, for example, values `Array<Array<in B?>>::class` and `Array<out Array<B>>?>::class` will be represented exactly the same here.
|
||||
* Other forms of array class literals are not supported by this format, see KT-26568
|
||||
* </pre>
|
||||
*/
|
||||
public int getArrayDimensionCount() {
|
||||
@@ -4373,9 +4365,7 @@ public final class DebugProtoBuf {
|
||||
* - Array<String>::class, if array_dimension_count = 1
|
||||
* - Array<Array<String>>::class, if array_dimension_count = 2
|
||||
* - etc.
|
||||
* Since it's very difficult to represent Kotlin-specific type aspects (nullability, type projections) of array arguments
|
||||
* in class literals on JVM, we don't bother to do represent this in our format as well.
|
||||
* So, for example, values `Array<Array<in B?>>::class` and `Array<out Array<B>>?>::class` will be represented exactly the same here.
|
||||
* Other forms of array class literals are not supported by this format, see KT-26568
|
||||
* </pre>
|
||||
*/
|
||||
public boolean hasArrayDimensionCount() {
|
||||
@@ -4391,9 +4381,7 @@ public final class DebugProtoBuf {
|
||||
* - Array<String>::class, if array_dimension_count = 1
|
||||
* - Array<Array<String>>::class, if array_dimension_count = 2
|
||||
* - etc.
|
||||
* Since it's very difficult to represent Kotlin-specific type aspects (nullability, type projections) of array arguments
|
||||
* in class literals on JVM, we don't bother to do represent this in our format as well.
|
||||
* So, for example, values `Array<Array<in B?>>::class` and `Array<out Array<B>>?>::class` will be represented exactly the same here.
|
||||
* Other forms of array class literals are not supported by this format, see KT-26568
|
||||
* </pre>
|
||||
*/
|
||||
public int getArrayDimensionCount() {
|
||||
@@ -4409,9 +4397,7 @@ public final class DebugProtoBuf {
|
||||
* - Array<String>::class, if array_dimension_count = 1
|
||||
* - Array<Array<String>>::class, if array_dimension_count = 2
|
||||
* - etc.
|
||||
* Since it's very difficult to represent Kotlin-specific type aspects (nullability, type projections) of array arguments
|
||||
* in class literals on JVM, we don't bother to do represent this in our format as well.
|
||||
* So, for example, values `Array<Array<in B?>>::class` and `Array<out Array<B>>?>::class` will be represented exactly the same here.
|
||||
* Other forms of array class literals are not supported by this format, see KT-26568
|
||||
* </pre>
|
||||
*/
|
||||
public Builder setArrayDimensionCount(int value) {
|
||||
@@ -4430,9 +4416,7 @@ public final class DebugProtoBuf {
|
||||
* - Array<String>::class, if array_dimension_count = 1
|
||||
* - Array<Array<String>>::class, if array_dimension_count = 2
|
||||
* - etc.
|
||||
* Since it's very difficult to represent Kotlin-specific type aspects (nullability, type projections) of array arguments
|
||||
* in class literals on JVM, we don't bother to do represent this in our format as well.
|
||||
* So, for example, values `Array<Array<in B?>>::class` and `Array<out Array<B>>?>::class` will be represented exactly the same here.
|
||||
* Other forms of array class literals are not supported by this format, see KT-26568
|
||||
* </pre>
|
||||
*/
|
||||
public Builder clearArrayDimensionCount() {
|
||||
|
||||
@@ -12,8 +12,6 @@ public final class DebugBuiltInsProtoBuf {
|
||||
registry.add(org.jetbrains.kotlin.metadata.builtins.DebugBuiltInsProtoBuf.constructorAnnotation);
|
||||
registry.add(org.jetbrains.kotlin.metadata.builtins.DebugBuiltInsProtoBuf.functionAnnotation);
|
||||
registry.add(org.jetbrains.kotlin.metadata.builtins.DebugBuiltInsProtoBuf.propertyAnnotation);
|
||||
registry.add(org.jetbrains.kotlin.metadata.builtins.DebugBuiltInsProtoBuf.propertyGetterAnnotation);
|
||||
registry.add(org.jetbrains.kotlin.metadata.builtins.DebugBuiltInsProtoBuf.propertySetterAnnotation);
|
||||
registry.add(org.jetbrains.kotlin.metadata.builtins.DebugBuiltInsProtoBuf.compileTimeValue);
|
||||
registry.add(org.jetbrains.kotlin.metadata.builtins.DebugBuiltInsProtoBuf.enumEntryAnnotation);
|
||||
registry.add(org.jetbrains.kotlin.metadata.builtins.DebugBuiltInsProtoBuf.parameterAnnotation);
|
||||
@@ -75,28 +73,6 @@ public final class DebugBuiltInsProtoBuf {
|
||||
.newFileScopedGeneratedExtension(
|
||||
org.jetbrains.kotlin.metadata.DebugProtoBuf.Annotation.class,
|
||||
org.jetbrains.kotlin.metadata.DebugProtoBuf.Annotation.getDefaultInstance());
|
||||
public static final int PROPERTY_GETTER_ANNOTATION_FIELD_NUMBER = 152;
|
||||
/**
|
||||
* <code>extend .org.jetbrains.kotlin.metadata.Property { ... }</code>
|
||||
*/
|
||||
public static final
|
||||
org.jetbrains.kotlin.protobuf.GeneratedMessage.GeneratedExtension<
|
||||
org.jetbrains.kotlin.metadata.DebugProtoBuf.Property,
|
||||
java.util.List<org.jetbrains.kotlin.metadata.DebugProtoBuf.Annotation>> propertyGetterAnnotation = org.jetbrains.kotlin.protobuf.GeneratedMessage
|
||||
.newFileScopedGeneratedExtension(
|
||||
org.jetbrains.kotlin.metadata.DebugProtoBuf.Annotation.class,
|
||||
org.jetbrains.kotlin.metadata.DebugProtoBuf.Annotation.getDefaultInstance());
|
||||
public static final int PROPERTY_SETTER_ANNOTATION_FIELD_NUMBER = 153;
|
||||
/**
|
||||
* <code>extend .org.jetbrains.kotlin.metadata.Property { ... }</code>
|
||||
*/
|
||||
public static final
|
||||
org.jetbrains.kotlin.protobuf.GeneratedMessage.GeneratedExtension<
|
||||
org.jetbrains.kotlin.metadata.DebugProtoBuf.Property,
|
||||
java.util.List<org.jetbrains.kotlin.metadata.DebugProtoBuf.Annotation>> propertySetterAnnotation = org.jetbrains.kotlin.protobuf.GeneratedMessage
|
||||
.newFileScopedGeneratedExtension(
|
||||
org.jetbrains.kotlin.metadata.DebugProtoBuf.Annotation.class,
|
||||
org.jetbrains.kotlin.metadata.DebugProtoBuf.Annotation.getDefaultInstance());
|
||||
public static final int COMPILE_TIME_VALUE_FIELD_NUMBER = 151;
|
||||
/**
|
||||
* <code>extend .org.jetbrains.kotlin.metadata.Property { ... }</code>
|
||||
@@ -177,28 +153,22 @@ public final class DebugBuiltInsProtoBuf {
|
||||
"notation:p\n\023property_annotation\022\'.org.je" +
|
||||
"tbrains.kotlin.metadata.Property\030\226\001 \003(\0132" +
|
||||
").org.jetbrains.kotlin.metadata.Annotati" +
|
||||
"on:w\n\032property_getter_annotation\022\'.org.j" +
|
||||
"etbrains.kotlin.metadata.Property\030\230\001 \003(\013" +
|
||||
"2).org.jetbrains.kotlin.metadata.Annotat" +
|
||||
"ion:w\n\032property_setter_annotation\022\'.org.",
|
||||
"jetbrains.kotlin.metadata.Property\030\231\001 \003(" +
|
||||
"\0132).org.jetbrains.kotlin.metadata.Annota" +
|
||||
"tion:~\n\022compile_time_value\022\'.org.jetbrai" +
|
||||
"ns.kotlin.metadata.Property\030\227\001 \001(\01328.org" +
|
||||
".jetbrains.kotlin.metadata.Annotation.Ar" +
|
||||
"gument.Value:s\n\025enum_entry_annotation\022(." +
|
||||
"org.jetbrains.kotlin.metadata.EnumEntry\030" +
|
||||
"\226\001 \003(\0132).org.jetbrains.kotlin.metadata.A" +
|
||||
"nnotation:w\n\024parameter_annotation\022-.org." +
|
||||
"jetbrains.kotlin.metadata.ValueParameter",
|
||||
"\030\226\001 \003(\0132).org.jetbrains.kotlin.metadata." +
|
||||
"Annotation:h\n\017type_annotation\022#.org.jetb" +
|
||||
"rains.kotlin.metadata.Type\030\226\001 \003(\0132).org." +
|
||||
"jetbrains.kotlin.metadata.Annotation:{\n\031" +
|
||||
"type_parameter_annotation\022,.org.jetbrain" +
|
||||
"s.kotlin.metadata.TypeParameter\030\226\001 \003(\0132)" +
|
||||
".org.jetbrains.kotlin.metadata.Annotatio" +
|
||||
"nB\027B\025DebugBuiltInsProtoBuf"
|
||||
"on:~\n\022compile_time_value\022\'.org.jetbrains" +
|
||||
".kotlin.metadata.Property\030\227\001 \001(\01328.org.j" +
|
||||
"etbrains.kotlin.metadata.Annotation.Argu" +
|
||||
"ment.Value:s\n\025enum_entry_annotation\022(.or",
|
||||
"g.jetbrains.kotlin.metadata.EnumEntry\030\226\001" +
|
||||
" \003(\0132).org.jetbrains.kotlin.metadata.Ann" +
|
||||
"otation:w\n\024parameter_annotation\022-.org.je" +
|
||||
"tbrains.kotlin.metadata.ValueParameter\030\226" +
|
||||
"\001 \003(\0132).org.jetbrains.kotlin.metadata.An" +
|
||||
"notation:h\n\017type_annotation\022#.org.jetbra" +
|
||||
"ins.kotlin.metadata.Type\030\226\001 \003(\0132).org.je" +
|
||||
"tbrains.kotlin.metadata.Annotation:{\n\031ty" +
|
||||
"pe_parameter_annotation\022,.org.jetbrains." +
|
||||
"kotlin.metadata.TypeParameter\030\226\001 \003(\0132).o",
|
||||
"rg.jetbrains.kotlin.metadata.AnnotationB" +
|
||||
"\027B\025DebugBuiltInsProtoBuf"
|
||||
};
|
||||
org.jetbrains.kotlin.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner =
|
||||
new org.jetbrains.kotlin.protobuf.Descriptors.FileDescriptor. InternalDescriptorAssigner() {
|
||||
@@ -218,13 +188,11 @@ public final class DebugBuiltInsProtoBuf {
|
||||
constructorAnnotation.internalInit(descriptor.getExtensions().get(2));
|
||||
functionAnnotation.internalInit(descriptor.getExtensions().get(3));
|
||||
propertyAnnotation.internalInit(descriptor.getExtensions().get(4));
|
||||
propertyGetterAnnotation.internalInit(descriptor.getExtensions().get(5));
|
||||
propertySetterAnnotation.internalInit(descriptor.getExtensions().get(6));
|
||||
compileTimeValue.internalInit(descriptor.getExtensions().get(7));
|
||||
enumEntryAnnotation.internalInit(descriptor.getExtensions().get(8));
|
||||
parameterAnnotation.internalInit(descriptor.getExtensions().get(9));
|
||||
typeAnnotation.internalInit(descriptor.getExtensions().get(10));
|
||||
typeParameterAnnotation.internalInit(descriptor.getExtensions().get(11));
|
||||
compileTimeValue.internalInit(descriptor.getExtensions().get(5));
|
||||
enumEntryAnnotation.internalInit(descriptor.getExtensions().get(6));
|
||||
parameterAnnotation.internalInit(descriptor.getExtensions().get(7));
|
||||
typeAnnotation.internalInit(descriptor.getExtensions().get(8));
|
||||
typeParameterAnnotation.internalInit(descriptor.getExtensions().get(9));
|
||||
org.jetbrains.kotlin.metadata.DebugProtoBuf.getDescriptor();
|
||||
}
|
||||
|
||||
|
||||
@@ -14,8 +14,6 @@ public final class DebugJsProtoBuf {
|
||||
registry.add(org.jetbrains.kotlin.metadata.js.DebugJsProtoBuf.functionAnnotation);
|
||||
registry.add(org.jetbrains.kotlin.metadata.js.DebugJsProtoBuf.functionContainingFileId);
|
||||
registry.add(org.jetbrains.kotlin.metadata.js.DebugJsProtoBuf.propertyAnnotation);
|
||||
registry.add(org.jetbrains.kotlin.metadata.js.DebugJsProtoBuf.propertyGetterAnnotation);
|
||||
registry.add(org.jetbrains.kotlin.metadata.js.DebugJsProtoBuf.propertySetterAnnotation);
|
||||
registry.add(org.jetbrains.kotlin.metadata.js.DebugJsProtoBuf.compileTimeValue);
|
||||
registry.add(org.jetbrains.kotlin.metadata.js.DebugJsProtoBuf.propertyContainingFileId);
|
||||
registry.add(org.jetbrains.kotlin.metadata.js.DebugJsProtoBuf.enumEntryAnnotation);
|
||||
@@ -4754,28 +4752,6 @@ public final class DebugJsProtoBuf {
|
||||
.newFileScopedGeneratedExtension(
|
||||
org.jetbrains.kotlin.metadata.DebugProtoBuf.Annotation.class,
|
||||
org.jetbrains.kotlin.metadata.DebugProtoBuf.Annotation.getDefaultInstance());
|
||||
public static final int PROPERTY_GETTER_ANNOTATION_FIELD_NUMBER = 132;
|
||||
/**
|
||||
* <code>extend .org.jetbrains.kotlin.metadata.Property { ... }</code>
|
||||
*/
|
||||
public static final
|
||||
org.jetbrains.kotlin.protobuf.GeneratedMessage.GeneratedExtension<
|
||||
org.jetbrains.kotlin.metadata.DebugProtoBuf.Property,
|
||||
java.util.List<org.jetbrains.kotlin.metadata.DebugProtoBuf.Annotation>> propertyGetterAnnotation = org.jetbrains.kotlin.protobuf.GeneratedMessage
|
||||
.newFileScopedGeneratedExtension(
|
||||
org.jetbrains.kotlin.metadata.DebugProtoBuf.Annotation.class,
|
||||
org.jetbrains.kotlin.metadata.DebugProtoBuf.Annotation.getDefaultInstance());
|
||||
public static final int PROPERTY_SETTER_ANNOTATION_FIELD_NUMBER = 133;
|
||||
/**
|
||||
* <code>extend .org.jetbrains.kotlin.metadata.Property { ... }</code>
|
||||
*/
|
||||
public static final
|
||||
org.jetbrains.kotlin.protobuf.GeneratedMessage.GeneratedExtension<
|
||||
org.jetbrains.kotlin.metadata.DebugProtoBuf.Property,
|
||||
java.util.List<org.jetbrains.kotlin.metadata.DebugProtoBuf.Annotation>> propertySetterAnnotation = org.jetbrains.kotlin.protobuf.GeneratedMessage
|
||||
.newFileScopedGeneratedExtension(
|
||||
org.jetbrains.kotlin.metadata.DebugProtoBuf.Annotation.class,
|
||||
org.jetbrains.kotlin.metadata.DebugProtoBuf.Annotation.getDefaultInstance());
|
||||
public static final int COMPILE_TIME_VALUE_FIELD_NUMBER = 131;
|
||||
/**
|
||||
* <code>extend .org.jetbrains.kotlin.metadata.Property { ... }</code>
|
||||
@@ -4924,33 +4900,27 @@ public final class DebugJsProtoBuf {
|
||||
"ion\030\207\001 \001(\005:p\n\023property_annotation\022\'.org." +
|
||||
"jetbrains.kotlin.metadata.Property\030\202\001 \003(" +
|
||||
"\0132).org.jetbrains.kotlin.metadata.Annota" +
|
||||
"tion:w\n\032property_getter_annotation\022\'.org" +
|
||||
".jetbrains.kotlin.metadata.Property\030\204\001 \003" +
|
||||
"(\0132).org.jetbrains.kotlin.metadata.Annot",
|
||||
"ation:w\n\032property_setter_annotation\022\'.or" +
|
||||
"g.jetbrains.kotlin.metadata.Property\030\205\001 " +
|
||||
"\003(\0132).org.jetbrains.kotlin.metadata.Anno" +
|
||||
"tation:~\n\022compile_time_value\022\'.org.jetbr" +
|
||||
"ains.kotlin.metadata.Property\030\203\001 \001(\01328.o" +
|
||||
"rg.jetbrains.kotlin.metadata.Annotation." +
|
||||
"Argument.Value:M\n\033property_containing_fi" +
|
||||
"le_id\022\'.org.jetbrains.kotlin.metadata.Pr" +
|
||||
"operty\030\207\001 \001(\005:s\n\025enum_entry_annotation\022(" +
|
||||
".org.jetbrains.kotlin.metadata.EnumEntry",
|
||||
"\030\202\001 \003(\0132).org.jetbrains.kotlin.metadata." +
|
||||
"Annotation:w\n\024parameter_annotation\022-.org" +
|
||||
".jetbrains.kotlin.metadata.ValueParamete" +
|
||||
"r\030\202\001 \003(\0132).org.jetbrains.kotlin.metadata" +
|
||||
".Annotation:h\n\017type_annotation\022#.org.jet" +
|
||||
"brains.kotlin.metadata.Type\030\202\001 \003(\0132).org" +
|
||||
".jetbrains.kotlin.metadata.Annotation:{\n" +
|
||||
"\031type_parameter_annotation\022,.org.jetbrai" +
|
||||
"ns.kotlin.metadata.TypeParameter\030\202\001 \003(\0132" +
|
||||
").org.jetbrains.kotlin.metadata.Annotati",
|
||||
"on:x\n\026package_fragment_files\022..org.jetbr" +
|
||||
"ains.kotlin.metadata.PackageFragment\030\202\001 " +
|
||||
"\001(\0132\'.org.jetbrains.kotlin.metadata.js.F" +
|
||||
"ilesB\021B\017DebugJsProtoBuf"
|
||||
"tion:~\n\022compile_time_value\022\'.org.jetbrai" +
|
||||
"ns.kotlin.metadata.Property\030\203\001 \001(\01328.org" +
|
||||
".jetbrains.kotlin.metadata.Annotation.Ar",
|
||||
"gument.Value:M\n\033property_containing_file" +
|
||||
"_id\022\'.org.jetbrains.kotlin.metadata.Prop" +
|
||||
"erty\030\207\001 \001(\005:s\n\025enum_entry_annotation\022(.o" +
|
||||
"rg.jetbrains.kotlin.metadata.EnumEntry\030\202" +
|
||||
"\001 \003(\0132).org.jetbrains.kotlin.metadata.An" +
|
||||
"notation:w\n\024parameter_annotation\022-.org.j" +
|
||||
"etbrains.kotlin.metadata.ValueParameter\030" +
|
||||
"\202\001 \003(\0132).org.jetbrains.kotlin.metadata.A" +
|
||||
"nnotation:h\n\017type_annotation\022#.org.jetbr" +
|
||||
"ains.kotlin.metadata.Type\030\202\001 \003(\0132).org.j",
|
||||
"etbrains.kotlin.metadata.Annotation:{\n\031t" +
|
||||
"ype_parameter_annotation\022,.org.jetbrains" +
|
||||
".kotlin.metadata.TypeParameter\030\202\001 \003(\0132)." +
|
||||
"org.jetbrains.kotlin.metadata.Annotation" +
|
||||
":x\n\026package_fragment_files\022..org.jetbrai" +
|
||||
"ns.kotlin.metadata.PackageFragment\030\202\001 \001(" +
|
||||
"\0132\'.org.jetbrains.kotlin.metadata.js.Fil" +
|
||||
"esB\021B\017DebugJsProtoBuf"
|
||||
};
|
||||
org.jetbrains.kotlin.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner =
|
||||
new org.jetbrains.kotlin.protobuf.Descriptors.FileDescriptor. InternalDescriptorAssigner() {
|
||||
@@ -5002,15 +4972,13 @@ public final class DebugJsProtoBuf {
|
||||
functionAnnotation.internalInit(descriptor.getExtensions().get(4));
|
||||
functionContainingFileId.internalInit(descriptor.getExtensions().get(5));
|
||||
propertyAnnotation.internalInit(descriptor.getExtensions().get(6));
|
||||
propertyGetterAnnotation.internalInit(descriptor.getExtensions().get(7));
|
||||
propertySetterAnnotation.internalInit(descriptor.getExtensions().get(8));
|
||||
compileTimeValue.internalInit(descriptor.getExtensions().get(9));
|
||||
propertyContainingFileId.internalInit(descriptor.getExtensions().get(10));
|
||||
enumEntryAnnotation.internalInit(descriptor.getExtensions().get(11));
|
||||
parameterAnnotation.internalInit(descriptor.getExtensions().get(12));
|
||||
typeAnnotation.internalInit(descriptor.getExtensions().get(13));
|
||||
typeParameterAnnotation.internalInit(descriptor.getExtensions().get(14));
|
||||
packageFragmentFiles.internalInit(descriptor.getExtensions().get(15));
|
||||
compileTimeValue.internalInit(descriptor.getExtensions().get(7));
|
||||
propertyContainingFileId.internalInit(descriptor.getExtensions().get(8));
|
||||
enumEntryAnnotation.internalInit(descriptor.getExtensions().get(9));
|
||||
parameterAnnotation.internalInit(descriptor.getExtensions().get(10));
|
||||
typeAnnotation.internalInit(descriptor.getExtensions().get(11));
|
||||
typeParameterAnnotation.internalInit(descriptor.getExtensions().get(12));
|
||||
packageFragmentFiles.internalInit(descriptor.getExtensions().get(13));
|
||||
org.jetbrains.kotlin.metadata.DebugProtoBuf.getDescriptor();
|
||||
}
|
||||
|
||||
|
||||
@@ -13,16 +13,12 @@ public final class DebugKonanProtoBuf {
|
||||
registry.add(org.jetbrains.kotlin.metadata.konan.DebugKonanProtoBuf.inlineConstructorIrBody);
|
||||
registry.add(org.jetbrains.kotlin.metadata.konan.DebugKonanProtoBuf.functionAnnotation);
|
||||
registry.add(org.jetbrains.kotlin.metadata.konan.DebugKonanProtoBuf.inlineIrBody);
|
||||
registry.add(org.jetbrains.kotlin.metadata.konan.DebugKonanProtoBuf.functionFile);
|
||||
registry.add(org.jetbrains.kotlin.metadata.konan.DebugKonanProtoBuf.propertyAnnotation);
|
||||
registry.add(org.jetbrains.kotlin.metadata.konan.DebugKonanProtoBuf.propertyGetterAnnotation);
|
||||
registry.add(org.jetbrains.kotlin.metadata.konan.DebugKonanProtoBuf.propertySetterAnnotation);
|
||||
registry.add(org.jetbrains.kotlin.metadata.konan.DebugKonanProtoBuf.hasBackingField);
|
||||
registry.add(org.jetbrains.kotlin.metadata.konan.DebugKonanProtoBuf.usedAsVariable);
|
||||
registry.add(org.jetbrains.kotlin.metadata.konan.DebugKonanProtoBuf.compileTimeValue);
|
||||
registry.add(org.jetbrains.kotlin.metadata.konan.DebugKonanProtoBuf.inlineGetterIrBody);
|
||||
registry.add(org.jetbrains.kotlin.metadata.konan.DebugKonanProtoBuf.inlineSetterIrBody);
|
||||
registry.add(org.jetbrains.kotlin.metadata.konan.DebugKonanProtoBuf.propertyFile);
|
||||
registry.add(org.jetbrains.kotlin.metadata.konan.DebugKonanProtoBuf.enumEntryAnnotation);
|
||||
registry.add(org.jetbrains.kotlin.metadata.konan.DebugKonanProtoBuf.enumEntryOrdinal);
|
||||
registry.add(org.jetbrains.kotlin.metadata.konan.DebugKonanProtoBuf.parameterAnnotation);
|
||||
@@ -3062,25 +3058,6 @@ public final class DebugKonanProtoBuf {
|
||||
*/
|
||||
org.jetbrains.kotlin.protobuf.ByteString
|
||||
getEmptyPackageBytes(int index);
|
||||
|
||||
/**
|
||||
* <code>repeated string file = 4;</code>
|
||||
*/
|
||||
org.jetbrains.kotlin.protobuf.ProtocolStringList
|
||||
getFileList();
|
||||
/**
|
||||
* <code>repeated string file = 4;</code>
|
||||
*/
|
||||
int getFileCount();
|
||||
/**
|
||||
* <code>repeated string file = 4;</code>
|
||||
*/
|
||||
java.lang.String getFile(int index);
|
||||
/**
|
||||
* <code>repeated string file = 4;</code>
|
||||
*/
|
||||
org.jetbrains.kotlin.protobuf.ByteString
|
||||
getFileBytes(int index);
|
||||
}
|
||||
/**
|
||||
* Protobuf type {@code org.jetbrains.kotlin.metadata.konan.LinkDataLibrary}
|
||||
@@ -3158,15 +3135,6 @@ public final class DebugKonanProtoBuf {
|
||||
emptyPackage_.add(bs);
|
||||
break;
|
||||
}
|
||||
case 34: {
|
||||
org.jetbrains.kotlin.protobuf.ByteString bs = input.readBytes();
|
||||
if (!((mutable_bitField0_ & 0x00000008) == 0x00000008)) {
|
||||
file_ = new org.jetbrains.kotlin.protobuf.LazyStringArrayList();
|
||||
mutable_bitField0_ |= 0x00000008;
|
||||
}
|
||||
file_.add(bs);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
} catch (org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException e) {
|
||||
@@ -3181,9 +3149,6 @@ public final class DebugKonanProtoBuf {
|
||||
if (((mutable_bitField0_ & 0x00000004) == 0x00000004)) {
|
||||
emptyPackage_ = emptyPackage_.getUnmodifiableView();
|
||||
}
|
||||
if (((mutable_bitField0_ & 0x00000008) == 0x00000008)) {
|
||||
file_ = file_.getUnmodifiableView();
|
||||
}
|
||||
this.unknownFields = unknownFields.build();
|
||||
makeExtensionsImmutable();
|
||||
}
|
||||
@@ -3316,40 +3281,10 @@ public final class DebugKonanProtoBuf {
|
||||
return emptyPackage_.getByteString(index);
|
||||
}
|
||||
|
||||
public static final int FILE_FIELD_NUMBER = 4;
|
||||
private org.jetbrains.kotlin.protobuf.LazyStringList file_;
|
||||
/**
|
||||
* <code>repeated string file = 4;</code>
|
||||
*/
|
||||
public org.jetbrains.kotlin.protobuf.ProtocolStringList
|
||||
getFileList() {
|
||||
return file_;
|
||||
}
|
||||
/**
|
||||
* <code>repeated string file = 4;</code>
|
||||
*/
|
||||
public int getFileCount() {
|
||||
return file_.size();
|
||||
}
|
||||
/**
|
||||
* <code>repeated string file = 4;</code>
|
||||
*/
|
||||
public java.lang.String getFile(int index) {
|
||||
return file_.get(index);
|
||||
}
|
||||
/**
|
||||
* <code>repeated string file = 4;</code>
|
||||
*/
|
||||
public org.jetbrains.kotlin.protobuf.ByteString
|
||||
getFileBytes(int index) {
|
||||
return file_.getByteString(index);
|
||||
}
|
||||
|
||||
private void initFields() {
|
||||
moduleName_ = "";
|
||||
packageFragmentName_ = org.jetbrains.kotlin.protobuf.LazyStringArrayList.EMPTY;
|
||||
emptyPackage_ = org.jetbrains.kotlin.protobuf.LazyStringArrayList.EMPTY;
|
||||
file_ = org.jetbrains.kotlin.protobuf.LazyStringArrayList.EMPTY;
|
||||
}
|
||||
private byte memoizedIsInitialized = -1;
|
||||
public final boolean isInitialized() {
|
||||
@@ -3377,9 +3312,6 @@ public final class DebugKonanProtoBuf {
|
||||
for (int i = 0; i < emptyPackage_.size(); i++) {
|
||||
output.writeBytes(3, emptyPackage_.getByteString(i));
|
||||
}
|
||||
for (int i = 0; i < file_.size(); i++) {
|
||||
output.writeBytes(4, file_.getByteString(i));
|
||||
}
|
||||
getUnknownFields().writeTo(output);
|
||||
}
|
||||
|
||||
@@ -3411,15 +3343,6 @@ public final class DebugKonanProtoBuf {
|
||||
size += dataSize;
|
||||
size += 1 * getEmptyPackageList().size();
|
||||
}
|
||||
{
|
||||
int dataSize = 0;
|
||||
for (int i = 0; i < file_.size(); i++) {
|
||||
dataSize += org.jetbrains.kotlin.protobuf.CodedOutputStream
|
||||
.computeBytesSizeNoTag(file_.getByteString(i));
|
||||
}
|
||||
size += dataSize;
|
||||
size += 1 * getFileList().size();
|
||||
}
|
||||
size += getUnknownFields().getSerializedSize();
|
||||
memoizedSerializedSize = size;
|
||||
return size;
|
||||
@@ -3543,8 +3466,6 @@ public final class DebugKonanProtoBuf {
|
||||
bitField0_ = (bitField0_ & ~0x00000002);
|
||||
emptyPackage_ = org.jetbrains.kotlin.protobuf.LazyStringArrayList.EMPTY;
|
||||
bitField0_ = (bitField0_ & ~0x00000004);
|
||||
file_ = org.jetbrains.kotlin.protobuf.LazyStringArrayList.EMPTY;
|
||||
bitField0_ = (bitField0_ & ~0x00000008);
|
||||
return this;
|
||||
}
|
||||
|
||||
@@ -3587,11 +3508,6 @@ public final class DebugKonanProtoBuf {
|
||||
bitField0_ = (bitField0_ & ~0x00000004);
|
||||
}
|
||||
result.emptyPackage_ = emptyPackage_;
|
||||
if (((bitField0_ & 0x00000008) == 0x00000008)) {
|
||||
file_ = file_.getUnmodifiableView();
|
||||
bitField0_ = (bitField0_ & ~0x00000008);
|
||||
}
|
||||
result.file_ = file_;
|
||||
result.bitField0_ = to_bitField0_;
|
||||
onBuilt();
|
||||
return result;
|
||||
@@ -3633,16 +3549,6 @@ public final class DebugKonanProtoBuf {
|
||||
}
|
||||
onChanged();
|
||||
}
|
||||
if (!other.file_.isEmpty()) {
|
||||
if (file_.isEmpty()) {
|
||||
file_ = other.file_;
|
||||
bitField0_ = (bitField0_ & ~0x00000008);
|
||||
} else {
|
||||
ensureFileIsMutable();
|
||||
file_.addAll(other.file_);
|
||||
}
|
||||
onChanged();
|
||||
}
|
||||
this.mergeUnknownFields(other.getUnknownFields());
|
||||
return this;
|
||||
}
|
||||
@@ -3936,99 +3842,6 @@ public final class DebugKonanProtoBuf {
|
||||
return this;
|
||||
}
|
||||
|
||||
private org.jetbrains.kotlin.protobuf.LazyStringList file_ = org.jetbrains.kotlin.protobuf.LazyStringArrayList.EMPTY;
|
||||
private void ensureFileIsMutable() {
|
||||
if (!((bitField0_ & 0x00000008) == 0x00000008)) {
|
||||
file_ = new org.jetbrains.kotlin.protobuf.LazyStringArrayList(file_);
|
||||
bitField0_ |= 0x00000008;
|
||||
}
|
||||
}
|
||||
/**
|
||||
* <code>repeated string file = 4;</code>
|
||||
*/
|
||||
public org.jetbrains.kotlin.protobuf.ProtocolStringList
|
||||
getFileList() {
|
||||
return file_.getUnmodifiableView();
|
||||
}
|
||||
/**
|
||||
* <code>repeated string file = 4;</code>
|
||||
*/
|
||||
public int getFileCount() {
|
||||
return file_.size();
|
||||
}
|
||||
/**
|
||||
* <code>repeated string file = 4;</code>
|
||||
*/
|
||||
public java.lang.String getFile(int index) {
|
||||
return file_.get(index);
|
||||
}
|
||||
/**
|
||||
* <code>repeated string file = 4;</code>
|
||||
*/
|
||||
public org.jetbrains.kotlin.protobuf.ByteString
|
||||
getFileBytes(int index) {
|
||||
return file_.getByteString(index);
|
||||
}
|
||||
/**
|
||||
* <code>repeated string file = 4;</code>
|
||||
*/
|
||||
public Builder setFile(
|
||||
int index, java.lang.String value) {
|
||||
if (value == null) {
|
||||
throw new NullPointerException();
|
||||
}
|
||||
ensureFileIsMutable();
|
||||
file_.set(index, value);
|
||||
onChanged();
|
||||
return this;
|
||||
}
|
||||
/**
|
||||
* <code>repeated string file = 4;</code>
|
||||
*/
|
||||
public Builder addFile(
|
||||
java.lang.String value) {
|
||||
if (value == null) {
|
||||
throw new NullPointerException();
|
||||
}
|
||||
ensureFileIsMutable();
|
||||
file_.add(value);
|
||||
onChanged();
|
||||
return this;
|
||||
}
|
||||
/**
|
||||
* <code>repeated string file = 4;</code>
|
||||
*/
|
||||
public Builder addAllFile(
|
||||
java.lang.Iterable<java.lang.String> values) {
|
||||
ensureFileIsMutable();
|
||||
org.jetbrains.kotlin.protobuf.AbstractMessageLite.Builder.addAll(
|
||||
values, file_);
|
||||
onChanged();
|
||||
return this;
|
||||
}
|
||||
/**
|
||||
* <code>repeated string file = 4;</code>
|
||||
*/
|
||||
public Builder clearFile() {
|
||||
file_ = org.jetbrains.kotlin.protobuf.LazyStringArrayList.EMPTY;
|
||||
bitField0_ = (bitField0_ & ~0x00000008);
|
||||
onChanged();
|
||||
return this;
|
||||
}
|
||||
/**
|
||||
* <code>repeated string file = 4;</code>
|
||||
*/
|
||||
public Builder addFileBytes(
|
||||
org.jetbrains.kotlin.protobuf.ByteString value) {
|
||||
if (value == null) {
|
||||
throw new NullPointerException();
|
||||
}
|
||||
ensureFileIsMutable();
|
||||
file_.add(value);
|
||||
onChanged();
|
||||
return this;
|
||||
}
|
||||
|
||||
// @@protoc_insertion_point(builder_scope:org.jetbrains.kotlin.metadata.konan.LinkDataLibrary)
|
||||
}
|
||||
|
||||
@@ -4106,17 +3919,6 @@ public final class DebugKonanProtoBuf {
|
||||
.newFileScopedGeneratedExtension(
|
||||
org.jetbrains.kotlin.metadata.konan.DebugKonanProtoBuf.InlineIrBody.class,
|
||||
org.jetbrains.kotlin.metadata.konan.DebugKonanProtoBuf.InlineIrBody.getDefaultInstance());
|
||||
public static final int FUNCTION_FILE_FIELD_NUMBER = 172;
|
||||
/**
|
||||
* <code>extend .org.jetbrains.kotlin.metadata.Function { ... }</code>
|
||||
*/
|
||||
public static final
|
||||
org.jetbrains.kotlin.protobuf.GeneratedMessage.GeneratedExtension<
|
||||
org.jetbrains.kotlin.metadata.DebugProtoBuf.Function,
|
||||
java.lang.Integer> functionFile = org.jetbrains.kotlin.protobuf.GeneratedMessage
|
||||
.newFileScopedGeneratedExtension(
|
||||
java.lang.Integer.class,
|
||||
null);
|
||||
public static final int PROPERTY_ANNOTATION_FIELD_NUMBER = 170;
|
||||
/**
|
||||
* <code>extend .org.jetbrains.kotlin.metadata.Property { ... }</code>
|
||||
@@ -4128,28 +3930,6 @@ public final class DebugKonanProtoBuf {
|
||||
.newFileScopedGeneratedExtension(
|
||||
org.jetbrains.kotlin.metadata.DebugProtoBuf.Annotation.class,
|
||||
org.jetbrains.kotlin.metadata.DebugProtoBuf.Annotation.getDefaultInstance());
|
||||
public static final int PROPERTY_GETTER_ANNOTATION_FIELD_NUMBER = 177;
|
||||
/**
|
||||
* <code>extend .org.jetbrains.kotlin.metadata.Property { ... }</code>
|
||||
*/
|
||||
public static final
|
||||
org.jetbrains.kotlin.protobuf.GeneratedMessage.GeneratedExtension<
|
||||
org.jetbrains.kotlin.metadata.DebugProtoBuf.Property,
|
||||
java.util.List<org.jetbrains.kotlin.metadata.DebugProtoBuf.Annotation>> propertyGetterAnnotation = org.jetbrains.kotlin.protobuf.GeneratedMessage
|
||||
.newFileScopedGeneratedExtension(
|
||||
org.jetbrains.kotlin.metadata.DebugProtoBuf.Annotation.class,
|
||||
org.jetbrains.kotlin.metadata.DebugProtoBuf.Annotation.getDefaultInstance());
|
||||
public static final int PROPERTY_SETTER_ANNOTATION_FIELD_NUMBER = 178;
|
||||
/**
|
||||
* <code>extend .org.jetbrains.kotlin.metadata.Property { ... }</code>
|
||||
*/
|
||||
public static final
|
||||
org.jetbrains.kotlin.protobuf.GeneratedMessage.GeneratedExtension<
|
||||
org.jetbrains.kotlin.metadata.DebugProtoBuf.Property,
|
||||
java.util.List<org.jetbrains.kotlin.metadata.DebugProtoBuf.Annotation>> propertySetterAnnotation = org.jetbrains.kotlin.protobuf.GeneratedMessage
|
||||
.newFileScopedGeneratedExtension(
|
||||
org.jetbrains.kotlin.metadata.DebugProtoBuf.Annotation.class,
|
||||
org.jetbrains.kotlin.metadata.DebugProtoBuf.Annotation.getDefaultInstance());
|
||||
public static final int HAS_BACKING_FIELD_FIELD_NUMBER = 171;
|
||||
/**
|
||||
* <code>extend .org.jetbrains.kotlin.metadata.Property { ... }</code>
|
||||
@@ -4205,17 +3985,6 @@ public final class DebugKonanProtoBuf {
|
||||
.newFileScopedGeneratedExtension(
|
||||
org.jetbrains.kotlin.metadata.konan.DebugKonanProtoBuf.InlineIrBody.class,
|
||||
org.jetbrains.kotlin.metadata.konan.DebugKonanProtoBuf.InlineIrBody.getDefaultInstance());
|
||||
public static final int PROPERTY_FILE_FIELD_NUMBER = 176;
|
||||
/**
|
||||
* <code>extend .org.jetbrains.kotlin.metadata.Property { ... }</code>
|
||||
*/
|
||||
public static final
|
||||
org.jetbrains.kotlin.protobuf.GeneratedMessage.GeneratedExtension<
|
||||
org.jetbrains.kotlin.metadata.DebugProtoBuf.Property,
|
||||
java.lang.Integer> propertyFile = org.jetbrains.kotlin.protobuf.GeneratedMessage
|
||||
.newFileScopedGeneratedExtension(
|
||||
java.lang.Integer.class,
|
||||
null);
|
||||
public static final int ENUM_ENTRY_ANNOTATION_FIELD_NUMBER = 170;
|
||||
/**
|
||||
* <code>extend .org.jetbrains.kotlin.metadata.EnumEntry { ... }</code>
|
||||
@@ -4329,67 +4098,57 @@ public final class DebugKonanProtoBuf {
|
||||
"\0132*.org.jetbrains.kotlin.metadata.String" +
|
||||
"Table\"\\\n\017LinkDataClasses\022\022\n\nclass_name\030\001" +
|
||||
" \003(\005\0225\n\007classes\030\002 \003(\0132$.org.jetbrains.ko" +
|
||||
"tlin.metadata.Class\"j\n\017LinkDataLibrary\022\023" +
|
||||
"tlin.metadata.Class\"\\\n\017LinkDataLibrary\022\023" +
|
||||
"\n\013module_name\030\001 \002(\t\022\035\n\025package_fragment_" +
|
||||
"name\030\002 \003(\t\022\025\n\rempty_package\030\003 \003(\t\022\014\n\004fil" +
|
||||
"e\030\004 \003(\t:@\n\017package_fq_name\022&.org.jetbrai" +
|
||||
"ns.kotlin.metadata.Package\030\253\001 \001(\005:j\n\020cla" +
|
||||
"ss_annotation\022$.org.jetbrains.kotlin.met",
|
||||
"adata.Class\030\252\001 \003(\0132).org.jetbrains.kotli" +
|
||||
"n.metadata.Annotation:v\n\026constructor_ann" +
|
||||
"otation\022*.org.jetbrains.kotlin.metadata." +
|
||||
"Constructor\030\252\001 \003(\0132).org.jetbrains.kotli" +
|
||||
"n.metadata.Annotation:\202\001\n\032inline_constru" +
|
||||
"ctor_ir_body\022*.org.jetbrains.kotlin.meta" +
|
||||
"data.Constructor\030\253\001 \001(\01321.org.jetbrains." +
|
||||
"kotlin.metadata.konan.InlineIrBody:p\n\023fu" +
|
||||
"nction_annotation\022\'.org.jetbrains.kotlin" +
|
||||
".metadata.Function\030\252\001 \003(\0132).org.jetbrain",
|
||||
"s.kotlin.metadata.Annotation:s\n\016inline_i" +
|
||||
"r_body\022\'.org.jetbrains.kotlin.metadata.F" +
|
||||
"unction\030\253\001 \001(\01321.org.jetbrains.kotlin.me" +
|
||||
"tadata.konan.InlineIrBody:?\n\rfunction_fi" +
|
||||
"le\022\'.org.jetbrains.kotlin.metadata.Funct" +
|
||||
"ion\030\254\001 \001(\005:p\n\023property_annotation\022\'.org." +
|
||||
"jetbrains.kotlin.metadata.Property\030\252\001 \003(" +
|
||||
"\0132).org.jetbrains.kotlin.metadata.Annota" +
|
||||
"tion:w\n\032property_getter_annotation\022\'.org" +
|
||||
".jetbrains.kotlin.metadata.Property\030\261\001 \003",
|
||||
"name\030\002 \003(\t\022\025\n\rempty_package\030\003 \003(\t:@\n\017pac" +
|
||||
"kage_fq_name\022&.org.jetbrains.kotlin.meta" +
|
||||
"data.Package\030\253\001 \001(\005:j\n\020class_annotation\022" +
|
||||
"$.org.jetbrains.kotlin.metadata.Class\030\252\001",
|
||||
" \003(\0132).org.jetbrains.kotlin.metadata.Ann" +
|
||||
"otation:v\n\026constructor_annotation\022*.org." +
|
||||
"jetbrains.kotlin.metadata.Constructor\030\252\001" +
|
||||
" \003(\0132).org.jetbrains.kotlin.metadata.Ann" +
|
||||
"otation:\202\001\n\032inline_constructor_ir_body\022*" +
|
||||
".org.jetbrains.kotlin.metadata.Construct" +
|
||||
"or\030\253\001 \001(\01321.org.jetbrains.kotlin.metadat" +
|
||||
"a.konan.InlineIrBody:p\n\023function_annotat" +
|
||||
"ion\022\'.org.jetbrains.kotlin.metadata.Func" +
|
||||
"tion\030\252\001 \003(\0132).org.jetbrains.kotlin.metad",
|
||||
"ata.Annotation:s\n\016inline_ir_body\022\'.org.j" +
|
||||
"etbrains.kotlin.metadata.Function\030\253\001 \001(\013" +
|
||||
"21.org.jetbrains.kotlin.metadata.konan.I" +
|
||||
"nlineIrBody:p\n\023property_annotation\022\'.org" +
|
||||
".jetbrains.kotlin.metadata.Property\030\252\001 \003" +
|
||||
"(\0132).org.jetbrains.kotlin.metadata.Annot" +
|
||||
"ation:w\n\032property_setter_annotation\022\'.or" +
|
||||
"g.jetbrains.kotlin.metadata.Property\030\262\001 " +
|
||||
"\003(\0132).org.jetbrains.kotlin.metadata.Anno" +
|
||||
"tation:C\n\021has_backing_field\022\'.org.jetbra" +
|
||||
"ins.kotlin.metadata.Property\030\253\001 \001(\010:B\n\020u" +
|
||||
"sed_as_variable\022\'.org.jetbrains.kotlin.m" +
|
||||
"etadata.Property\030\254\001 \001(\010:~\n\022compile_time_" +
|
||||
"value\022\'.org.jetbrains.kotlin.metadata.Pr" +
|
||||
"operty\030\255\001 \001(\01328.org.jetbrains.kotlin.met",
|
||||
"adata.Annotation.Argument.Value:z\n\025inlin" +
|
||||
"e_getter_ir_body\022\'.org.jetbrains.kotlin." +
|
||||
"metadata.Property\030\256\001 \001(\01321.org.jetbrains" +
|
||||
".kotlin.metadata.konan.InlineIrBody:z\n\025i" +
|
||||
"nline_setter_ir_body\022\'.org.jetbrains.kot" +
|
||||
"lin.metadata.Property\030\257\001 \001(\01321.org.jetbr" +
|
||||
"ains.kotlin.metadata.konan.InlineIrBody:" +
|
||||
"?\n\rproperty_file\022\'.org.jetbrains.kotlin." +
|
||||
"metadata.Property\030\260\001 \001(\005:s\n\025enum_entry_a" +
|
||||
"nnotation\022(.org.jetbrains.kotlin.metadat",
|
||||
"a.EnumEntry\030\252\001 \003(\0132).org.jetbrains.kotli" +
|
||||
"n.metadata.Annotation:E\n\022enum_entry_ordi" +
|
||||
"nal\022(.org.jetbrains.kotlin.metadata.Enum" +
|
||||
"Entry\030\253\001 \001(\005:w\n\024parameter_annotation\022-.o" +
|
||||
"rg.jetbrains.kotlin.metadata.ValueParame" +
|
||||
"ter\030\252\001 \003(\0132).org.jetbrains.kotlin.metada" +
|
||||
"ta.Annotation:h\n\017type_annotation\022#.org.j" +
|
||||
"etbrains.kotlin.metadata.Type\030\252\001 \003(\0132).o" +
|
||||
"rg.jetbrains.kotlin.metadata.Annotation:" +
|
||||
"7\n\ttype_text\022#.org.jetbrains.kotlin.meta",
|
||||
"data.Type\030\254\001 \001(\t:{\n\031type_parameter_annot" +
|
||||
"ation\022,.org.jetbrains.kotlin.metadata.Ty" +
|
||||
"peParameter\030\252\001 \003(\0132).org.jetbrains.kotli" +
|
||||
"n.metadata.AnnotationB\024B\022DebugKonanProto" +
|
||||
"Buf"
|
||||
"ation:C\n\021has_backing_field\022\'.org.jetbrai" +
|
||||
"ns.kotlin.metadata.Property\030\253\001 \001(\010:B\n\020us" +
|
||||
"ed_as_variable\022\'.org.jetbrains.kotlin.me" +
|
||||
"tadata.Property\030\254\001 \001(\010:~\n\022compile_time_v",
|
||||
"alue\022\'.org.jetbrains.kotlin.metadata.Pro" +
|
||||
"perty\030\255\001 \001(\01328.org.jetbrains.kotlin.meta" +
|
||||
"data.Annotation.Argument.Value:z\n\025inline" +
|
||||
"_getter_ir_body\022\'.org.jetbrains.kotlin.m" +
|
||||
"etadata.Property\030\256\001 \001(\01321.org.jetbrains." +
|
||||
"kotlin.metadata.konan.InlineIrBody:z\n\025in" +
|
||||
"line_setter_ir_body\022\'.org.jetbrains.kotl" +
|
||||
"in.metadata.Property\030\257\001 \001(\01321.org.jetbra" +
|
||||
"ins.kotlin.metadata.konan.InlineIrBody:s" +
|
||||
"\n\025enum_entry_annotation\022(.org.jetbrains.",
|
||||
"kotlin.metadata.EnumEntry\030\252\001 \003(\0132).org.j" +
|
||||
"etbrains.kotlin.metadata.Annotation:E\n\022e" +
|
||||
"num_entry_ordinal\022(.org.jetbrains.kotlin" +
|
||||
".metadata.EnumEntry\030\253\001 \001(\005:w\n\024parameter_" +
|
||||
"annotation\022-.org.jetbrains.kotlin.metada" +
|
||||
"ta.ValueParameter\030\252\001 \003(\0132).org.jetbrains" +
|
||||
".kotlin.metadata.Annotation:h\n\017type_anno" +
|
||||
"tation\022#.org.jetbrains.kotlin.metadata.T" +
|
||||
"ype\030\252\001 \003(\0132).org.jetbrains.kotlin.metada" +
|
||||
"ta.Annotation:7\n\ttype_text\022#.org.jetbrai",
|
||||
"ns.kotlin.metadata.Type\030\254\001 \001(\t:{\n\031type_p" +
|
||||
"arameter_annotation\022,.org.jetbrains.kotl" +
|
||||
"in.metadata.TypeParameter\030\252\001 \003(\0132).org.j" +
|
||||
"etbrains.kotlin.metadata.AnnotationB\024B\022D" +
|
||||
"ebugKonanProtoBuf"
|
||||
};
|
||||
org.jetbrains.kotlin.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner =
|
||||
new org.jetbrains.kotlin.protobuf.Descriptors.FileDescriptor. InternalDescriptorAssigner() {
|
||||
@@ -4427,29 +4186,25 @@ public final class DebugKonanProtoBuf {
|
||||
internal_static_org_jetbrains_kotlin_metadata_konan_LinkDataLibrary_fieldAccessorTable = new
|
||||
org.jetbrains.kotlin.protobuf.GeneratedMessage.FieldAccessorTable(
|
||||
internal_static_org_jetbrains_kotlin_metadata_konan_LinkDataLibrary_descriptor,
|
||||
new java.lang.String[] { "ModuleName", "PackageFragmentName", "EmptyPackage", "File", });
|
||||
new java.lang.String[] { "ModuleName", "PackageFragmentName", "EmptyPackage", });
|
||||
packageFqName.internalInit(descriptor.getExtensions().get(0));
|
||||
classAnnotation.internalInit(descriptor.getExtensions().get(1));
|
||||
constructorAnnotation.internalInit(descriptor.getExtensions().get(2));
|
||||
inlineConstructorIrBody.internalInit(descriptor.getExtensions().get(3));
|
||||
functionAnnotation.internalInit(descriptor.getExtensions().get(4));
|
||||
inlineIrBody.internalInit(descriptor.getExtensions().get(5));
|
||||
functionFile.internalInit(descriptor.getExtensions().get(6));
|
||||
propertyAnnotation.internalInit(descriptor.getExtensions().get(7));
|
||||
propertyGetterAnnotation.internalInit(descriptor.getExtensions().get(8));
|
||||
propertySetterAnnotation.internalInit(descriptor.getExtensions().get(9));
|
||||
hasBackingField.internalInit(descriptor.getExtensions().get(10));
|
||||
usedAsVariable.internalInit(descriptor.getExtensions().get(11));
|
||||
compileTimeValue.internalInit(descriptor.getExtensions().get(12));
|
||||
inlineGetterIrBody.internalInit(descriptor.getExtensions().get(13));
|
||||
inlineSetterIrBody.internalInit(descriptor.getExtensions().get(14));
|
||||
propertyFile.internalInit(descriptor.getExtensions().get(15));
|
||||
enumEntryAnnotation.internalInit(descriptor.getExtensions().get(16));
|
||||
enumEntryOrdinal.internalInit(descriptor.getExtensions().get(17));
|
||||
parameterAnnotation.internalInit(descriptor.getExtensions().get(18));
|
||||
typeAnnotation.internalInit(descriptor.getExtensions().get(19));
|
||||
typeText.internalInit(descriptor.getExtensions().get(20));
|
||||
typeParameterAnnotation.internalInit(descriptor.getExtensions().get(21));
|
||||
propertyAnnotation.internalInit(descriptor.getExtensions().get(6));
|
||||
hasBackingField.internalInit(descriptor.getExtensions().get(7));
|
||||
usedAsVariable.internalInit(descriptor.getExtensions().get(8));
|
||||
compileTimeValue.internalInit(descriptor.getExtensions().get(9));
|
||||
inlineGetterIrBody.internalInit(descriptor.getExtensions().get(10));
|
||||
inlineSetterIrBody.internalInit(descriptor.getExtensions().get(11));
|
||||
enumEntryAnnotation.internalInit(descriptor.getExtensions().get(12));
|
||||
enumEntryOrdinal.internalInit(descriptor.getExtensions().get(13));
|
||||
parameterAnnotation.internalInit(descriptor.getExtensions().get(14));
|
||||
typeAnnotation.internalInit(descriptor.getExtensions().get(15));
|
||||
typeText.internalInit(descriptor.getExtensions().get(16));
|
||||
typeParameterAnnotation.internalInit(descriptor.getExtensions().get(17));
|
||||
org.jetbrains.kotlin.metadata.DebugProtoBuf.getDescriptor();
|
||||
}
|
||||
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
232
build.gradle.kts
232
build.gradle.kts
@@ -1,21 +1,24 @@
|
||||
|
||||
import com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar
|
||||
import org.gradle.api.Project
|
||||
import java.util.*
|
||||
import java.io.File
|
||||
import org.gradle.api.tasks.bundling.Jar
|
||||
import org.gradle.plugins.ide.idea.model.IdeaModel
|
||||
import org.gradle.api.file.FileCollection
|
||||
import org.jetbrains.kotlin.gradle.tasks.AbstractKotlinCompile
|
||||
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
|
||||
import org.jetbrains.kotlin.gradle.tasks.Kotlin2JsCompile
|
||||
import proguard.gradle.ProGuardTask
|
||||
import org.gradle.kotlin.dsl.*
|
||||
|
||||
buildscript {
|
||||
extra["defaultSnapshotVersion"] = "1.3-SNAPSHOT"
|
||||
|
||||
kotlinBootstrapFrom(BootstrapOption.TeamCity("1.3.30-dev-1945", onlySuccessBootstrap = false))
|
||||
kotlinBootstrapFrom(BootstrapOption.TeamCity("1.3.0-rc-74", projectExtId = "Kotlin_130_Compiler", onlySuccessBootstrap = false))
|
||||
|
||||
repositories.withRedirector(project) {
|
||||
repositories {
|
||||
bootstrapKotlinRepo?.let(::maven)
|
||||
maven("https://plugins.gradle.org/m2")
|
||||
}
|
||||
}
|
||||
|
||||
// a workaround for kotlin compiler classpath in kotlin project: sometimes gradle substitutes
|
||||
// kotlin-stdlib external dependency with local project :kotlin-stdlib in kotlinCompilerClasspath configuration.
|
||||
@@ -27,13 +30,7 @@ buildscript {
|
||||
|
||||
classpath("com.gradle.publish:plugin-publish-plugin:0.9.7")
|
||||
classpath(kotlin("gradle-plugin", bootstrapKotlinVersion))
|
||||
classpath("net.sf.proguard:proguard-gradle:6.0.3")
|
||||
classpath("org.jetbrains.dokka:dokka-gradle-plugin:0.9.17")
|
||||
|
||||
// a workaround to add another one buildSrc with Cidr-specific tools to Gradle classpath
|
||||
if (findProperty("cidrPluginsEnabled")?.toString()?.toBoolean() == true) {
|
||||
classpath("org.jetbrains.kotlin.ultimate:buildSrc:1.0")
|
||||
}
|
||||
classpath("net.sf.proguard:proguard-gradle:5.3.3")
|
||||
}
|
||||
}
|
||||
|
||||
@@ -41,7 +38,6 @@ plugins {
|
||||
`build-scan`
|
||||
idea
|
||||
id("jps-compatible")
|
||||
id("org.jetbrains.gradle.plugin.idea-ext")
|
||||
}
|
||||
|
||||
pill {
|
||||
@@ -78,7 +74,11 @@ allprojects {
|
||||
|
||||
extra["kotlin_root"] = rootDir
|
||||
|
||||
val jpsBootstrap by configurations.creating
|
||||
val cidrKotlinPlugin by configurations.creating
|
||||
|
||||
dependencies {
|
||||
cidrKotlinPlugin(project(":prepare:cidr-plugin", "runtimeJar"))
|
||||
}
|
||||
|
||||
val commonBuildDir = File(rootDir, "build")
|
||||
val distDir by extra("$rootDir/dist")
|
||||
@@ -87,9 +87,9 @@ val distLibDir = "$distKotlinHomeDir/lib"
|
||||
val commonLocalDataDir = "$rootDir/local"
|
||||
val ideaSandboxDir = "$commonLocalDataDir/ideaSandbox"
|
||||
val ideaUltimateSandboxDir = "$commonLocalDataDir/ideaUltimateSandbox"
|
||||
val artifactsDir = "$distDir/artifacts"
|
||||
val ideaPluginDir = "$artifactsDir/ideaPlugin/Kotlin"
|
||||
val ideaUltimatePluginDir = "$artifactsDir/ideaUltimatePlugin/Kotlin"
|
||||
val ideaPluginDir = "$distDir/artifacts/ideaPlugin/Kotlin"
|
||||
val ideaUltimatePluginDir = "$distDir/artifacts/ideaUltimatePlugin/Kotlin"
|
||||
val cidrPluginDir = "$distDir/artifacts/cidrPlugin/Kotlin"
|
||||
|
||||
// TODO: use "by extra()" syntax where possible
|
||||
extra["distLibDir"] = project.file(distLibDir)
|
||||
@@ -99,44 +99,21 @@ extra["ideaSandboxDir"] = project.file(ideaSandboxDir)
|
||||
extra["ideaUltimateSandboxDir"] = project.file(ideaUltimateSandboxDir)
|
||||
extra["ideaPluginDir"] = project.file(ideaPluginDir)
|
||||
extra["ideaUltimatePluginDir"] = project.file(ideaUltimatePluginDir)
|
||||
extra["cidrPluginDir"] = project.file(cidrPluginDir)
|
||||
extra["isSonatypeRelease"] = false
|
||||
|
||||
// Work-around necessary to avoid setting null javaHome. Will be removed after support of lazy task configuration
|
||||
val jdkNotFoundConst = "JDK NOT FOUND"
|
||||
|
||||
extra["JDK_16"] = jdkPath("1.6")
|
||||
extra["JDK_17"] = jdkPath("1.7")
|
||||
extra["JDK_18"] = jdkPath("1.8")
|
||||
extra["JDK_9"] = jdkPath("9")
|
||||
extra["JDK_10"] = jdkPath("10")
|
||||
extra["JDK_11"] = jdkPath("11")
|
||||
|
||||
gradle.taskGraph.beforeTask() {
|
||||
checkJDK()
|
||||
}
|
||||
|
||||
var jdkChecked: Boolean = false
|
||||
fun checkJDK() {
|
||||
if (jdkChecked) {
|
||||
return
|
||||
}
|
||||
var unpresentJdks = JdkMajorVersion.values().filter { it.isMandatory() }.map { it -> it.name }.filter { it == null || extra[it] == jdkNotFoundConst }.toList()
|
||||
if (!unpresentJdks.isEmpty()) {
|
||||
throw GradleException("Please set environment variable${if (unpresentJdks.size > 1) "s" else ""}: ${unpresentJdks.joinToString()} to point to corresponding JDK installation.")
|
||||
}
|
||||
jdkChecked = true
|
||||
}
|
||||
extra["JDK_10"] = jdkPathIfFound("10")
|
||||
|
||||
rootProject.apply {
|
||||
from(rootProject.file("gradle/versions.gradle.kts"))
|
||||
from(rootProject.file("gradle/report.gradle.kts"))
|
||||
from(rootProject.file("gradle/javaInstrumentation.gradle.kts"))
|
||||
from(rootProject.file("gradle/jps.gradle.kts"))
|
||||
from(rootProject.file("versions.gradle.kts"))
|
||||
from(rootProject.file("report.gradle.kts"))
|
||||
}
|
||||
|
||||
IdeVersionConfigurator.setCurrentIde(this)
|
||||
|
||||
extra["versions.protobuf"] = "2.6.1"
|
||||
extra["versions.protobuf-java"] = "2.6.1"
|
||||
extra["versions.javax.inject"] = "1"
|
||||
extra["versions.jsr305"] = "1.3.9"
|
||||
extra["versions.jansi"] = "1.16"
|
||||
@@ -145,8 +122,8 @@ extra["versions.junit"] = "4.12"
|
||||
extra["versions.javaslang"] = "2.0.6"
|
||||
extra["versions.ant"] = "1.8.2"
|
||||
extra["versions.android"] = "2.3.1"
|
||||
extra["versions.kotlinx-coroutines-core"] = "1.0.1"
|
||||
extra["versions.kotlinx-coroutines-jdk8"] = "1.0.1"
|
||||
extra["versions.kotlinx-coroutines-core"] = "0.20"
|
||||
extra["versions.kotlinx-coroutines-jdk8"] = "0.20"
|
||||
extra["versions.json"] = "20160807"
|
||||
extra["versions.native-platform"] = "0.14"
|
||||
extra["versions.ant-launcher"] = "1.8.0"
|
||||
@@ -154,7 +131,6 @@ extra["versions.robolectric"] = "3.1"
|
||||
extra["versions.org.springframework"] = "4.2.0.RELEASE"
|
||||
extra["versions.jflex"] = "1.7.0"
|
||||
extra["versions.markdown"] = "0.1.25"
|
||||
extra["versions.trove4j"] = "1.0.20181211"
|
||||
|
||||
val isTeamcityBuild = project.hasProperty("teamcity") || System.getenv("TEAMCITY_VERSION") != null
|
||||
val intellijUltimateEnabled = project.getBooleanProperty("intellijUltimateEnabled") ?: isTeamcityBuild
|
||||
@@ -167,7 +143,8 @@ extra["intellijUltimateEnabled"] = intellijUltimateEnabled
|
||||
extra["intellijSeparateSdks"] = intellijSeparateSdks
|
||||
|
||||
extra["IntellijCoreDependencies"] =
|
||||
listOf(if (Platform[191].orHigher()) "asm-all-7.0" else "asm-all",
|
||||
listOf("annotations",
|
||||
"asm-all",
|
||||
"guava",
|
||||
"jdom",
|
||||
"jna",
|
||||
@@ -184,18 +161,7 @@ extra["compilerModules"] = arrayOf(
|
||||
":compiler:resolution",
|
||||
":compiler:serialization",
|
||||
":compiler:psi",
|
||||
*if (project.findProperty("fir.enabled") == "true") {
|
||||
arrayOf(
|
||||
":compiler:fir:cones",
|
||||
":compiler:fir:resolve",
|
||||
":compiler:fir:tree",
|
||||
":compiler:fir:psi2fir"
|
||||
)
|
||||
} else {
|
||||
emptyArray()
|
||||
},
|
||||
":compiler:frontend",
|
||||
":compiler:frontend.common",
|
||||
":compiler:frontend.java",
|
||||
":compiler:frontend.script",
|
||||
":compiler:cli-common",
|
||||
@@ -204,7 +170,6 @@ extra["compilerModules"] = arrayOf(
|
||||
":compiler:ir.tree",
|
||||
":compiler:ir.psi2ir",
|
||||
":compiler:ir.backend.common",
|
||||
":compiler:backend.jvm",
|
||||
":compiler:backend.js",
|
||||
":compiler:backend-common",
|
||||
":compiler:backend",
|
||||
@@ -232,6 +197,8 @@ val coreLibProjects = listOf(
|
||||
":kotlin-stdlib",
|
||||
":kotlin-stdlib-common",
|
||||
":kotlin-stdlib-js",
|
||||
":kotlin-stdlib-jre7",
|
||||
":kotlin-stdlib-jre8",
|
||||
":kotlin-stdlib-jdk7",
|
||||
":kotlin-stdlib-jdk8",
|
||||
":kotlin-test:kotlin-test-common",
|
||||
@@ -277,18 +244,13 @@ fun Task.listConfigurationContents(configName: String) {
|
||||
}
|
||||
|
||||
val defaultJvmTarget = "1.8"
|
||||
val defaultJavaHome = jdkPath(defaultJvmTarget)
|
||||
val defaultJavaHome = jdkPath(defaultJvmTarget!!)
|
||||
val ignoreTestFailures by extra(project.findProperty("ignoreTestFailures")?.toString()?.toBoolean() ?: project.hasProperty("teamcity"))
|
||||
|
||||
allprojects {
|
||||
|
||||
jvmTarget = defaultJvmTarget
|
||||
if (defaultJavaHome != null) {
|
||||
javaHome = defaultJavaHome
|
||||
} else {
|
||||
logger.error("Could not find default java home. Please set environment variable JDK_${defaultJavaHome} to point to JDK ${defaultJavaHome} installation.")
|
||||
}
|
||||
|
||||
javaHome = defaultJavaHome
|
||||
|
||||
// There are problems with common build dir:
|
||||
// - some tests (in particular js and binary-compatibility-validator depend on the fixed (default) location
|
||||
@@ -304,16 +266,15 @@ allprojects {
|
||||
mirrorRepo?.let(::maven)
|
||||
bootstrapKotlinRepo?.let(::maven)
|
||||
jcenter()
|
||||
maven(protobufRepo)
|
||||
}
|
||||
}
|
||||
|
||||
configureJvmProject(javaHome!!, jvmTarget!!)
|
||||
|
||||
val commonCompilerArgs = listOfNotNull(
|
||||
"-Xallow-kotlin-package",
|
||||
"-Xread-deserialized-contracts",
|
||||
"-Xjvm-default=compatibility",
|
||||
"-Xprogressive".takeIf { hasProperty("test.progressive.mode") } // TODO: change to "-progressive" after bootstrap
|
||||
"-Xprogressive".takeIf { hasProperty("test.progressive.mode") }, // TODO: change to "-progressive" after bootstrap
|
||||
"-XXLanguage:-ReleaseCoroutines"
|
||||
)
|
||||
|
||||
tasks.withType<org.jetbrains.kotlin.gradle.dsl.KotlinCompile<*>> {
|
||||
@@ -338,6 +299,10 @@ allprojects {
|
||||
enabled = false
|
||||
}
|
||||
|
||||
task<Jar>("javadocJar") {
|
||||
classifier = "javadoc"
|
||||
}
|
||||
|
||||
tasks.withType<Jar> {
|
||||
duplicatesStrategy = DuplicatesStrategy.EXCLUDE
|
||||
}
|
||||
@@ -349,10 +314,10 @@ allprojects {
|
||||
task("listDistJar") { listConfigurationContents("distJar") }
|
||||
|
||||
afterEvaluate {
|
||||
logger.info("configuring project $name to compile to the target jvm version $jvmTarget using jdk: $javaHome")
|
||||
if (javaHome != defaultJavaHome || jvmTarget != defaultJvmTarget) {
|
||||
logger.info("configuring project $name to compile to the target jvm version $jvmTarget using jdk: $javaHome")
|
||||
configureJvmProject(javaHome!!, jvmTarget!!)
|
||||
} // else we will actually fail during the first task execution. We could not fail before configuration is done due to impact on import in IDE
|
||||
}
|
||||
|
||||
fun File.toProjectRootRelativePathOrSelf() = (relativeToOrNull(rootDir)?.takeUnless { it.startsWith("..") } ?: this).path
|
||||
|
||||
@@ -418,26 +383,22 @@ val ideaPlugin by task<Task> {
|
||||
}
|
||||
|
||||
tasks {
|
||||
create("clean") {
|
||||
"clean" {
|
||||
doLast {
|
||||
delete("$buildDir/repo")
|
||||
delete(distDir)
|
||||
}
|
||||
}
|
||||
|
||||
create("cleanupArtifacts") {
|
||||
"cleanupArtifacts" {
|
||||
doLast {
|
||||
delete(artifactsDir)
|
||||
delete(ideaPluginDir)
|
||||
delete(ideaUltimatePluginDir)
|
||||
delete(cidrPluginDir)
|
||||
}
|
||||
}
|
||||
|
||||
listOf("clean", "assemble", "install", "dist").forEach { taskName ->
|
||||
create("coreLibs${taskName.capitalize()}") {
|
||||
coreLibProjects.forEach { projectName -> dependsOn("$projectName:$taskName") }
|
||||
}
|
||||
}
|
||||
|
||||
create("coreLibsTest") {
|
||||
"coreLibsTest" {
|
||||
(coreLibProjects + listOf(
|
||||
":kotlin-stdlib:samples",
|
||||
":kotlin-test:kotlin-test-js:kotlin-test-js-it",
|
||||
@@ -448,106 +409,101 @@ tasks {
|
||||
}
|
||||
}
|
||||
|
||||
create("gradlePluginTest") {
|
||||
"gradlePluginTest" {
|
||||
gradlePluginProjects.forEach {
|
||||
dependsOn(it + ":check")
|
||||
}
|
||||
}
|
||||
|
||||
create("gradlePluginIntegrationTest") {
|
||||
"gradlePluginIntegrationTest" {
|
||||
dependsOn(":kotlin-gradle-plugin-integration-tests:check")
|
||||
}
|
||||
|
||||
create("jvmCompilerTest") {
|
||||
"jvmCompilerTest" {
|
||||
dependsOn("dist")
|
||||
dependsOn(":compiler:test",
|
||||
":compiler:container:test",
|
||||
":compiler:tests-java8:test",
|
||||
":compiler:tests-spec:remoteRunTests")
|
||||
dependsOn(":plugins:jvm-abi-gen:test")
|
||||
":compiler:tests-java8:test")
|
||||
}
|
||||
|
||||
create("jsCompilerTest") {
|
||||
"jsCompilerTest" {
|
||||
dependsOn(":js:js.tests:test")
|
||||
dependsOn(":js:js.tests:runMocha")
|
||||
}
|
||||
|
||||
create("scriptingTest") {
|
||||
"scriptingTest" {
|
||||
dependsOn("dist")
|
||||
dependsOn(":kotlin-script-util:test")
|
||||
dependsOn(":kotlin-scripting-jvm-host:test")
|
||||
}
|
||||
|
||||
create("compilerTest") {
|
||||
"compilerTest" {
|
||||
dependsOn("jvmCompilerTest")
|
||||
dependsOn("jsCompilerTest")
|
||||
|
||||
dependsOn("scriptingTest")
|
||||
dependsOn(":kotlin-build-common:test")
|
||||
dependsOn(":compiler:incremental-compilation-impl:test")
|
||||
dependsOn(":core:descriptors.runtime:test")
|
||||
}
|
||||
|
||||
create("toolsTest") {
|
||||
"toolsTest" {
|
||||
dependsOn(":tools:kotlinp:test")
|
||||
}
|
||||
|
||||
create("examplesTest") {
|
||||
"examplesTest" {
|
||||
dependsOn("dist")
|
||||
(project(":examples").subprojects + project(":kotlin-gradle-subplugin-example")).forEach { p ->
|
||||
dependsOn("${p.path}:check")
|
||||
}
|
||||
}
|
||||
|
||||
create("distTest") {
|
||||
"distTest" {
|
||||
dependsOn("compilerTest")
|
||||
dependsOn("toolsTest")
|
||||
dependsOn("gradlePluginTest")
|
||||
dependsOn("examplesTest")
|
||||
}
|
||||
|
||||
create("specTest") {
|
||||
"specTest" {
|
||||
dependsOn("dist")
|
||||
dependsOn(":compiler:tests-spec:test")
|
||||
}
|
||||
|
||||
create("androidCodegenTest") {
|
||||
"androidCodegenTest" {
|
||||
dependsOn(":compiler:android-tests:test")
|
||||
}
|
||||
|
||||
create("jps-tests") {
|
||||
"jps-tests" {
|
||||
dependsOn("dist")
|
||||
dependsOn(":jps-plugin:test")
|
||||
}
|
||||
|
||||
create("idea-plugin-main-tests") {
|
||||
"idea-plugin-main-tests" {
|
||||
dependsOn("dist")
|
||||
dependsOn(":idea:test")
|
||||
}
|
||||
|
||||
create("idea-plugin-additional-tests") {
|
||||
"idea-plugin-additional-tests" {
|
||||
dependsOn("dist")
|
||||
dependsOn(":idea:idea-gradle:test",
|
||||
":idea:idea-gradle-native:test",
|
||||
":idea:idea-maven:test",
|
||||
":j2k:test",
|
||||
":eval4j:test")
|
||||
}
|
||||
|
||||
create("idea-plugin-tests") {
|
||||
"idea-plugin-tests" {
|
||||
dependsOn("dist")
|
||||
dependsOn("idea-plugin-main-tests",
|
||||
"idea-plugin-additional-tests")
|
||||
}
|
||||
|
||||
create("android-ide-tests") {
|
||||
"android-ide-tests" {
|
||||
dependsOn("dist")
|
||||
dependsOn(":plugins:android-extensions-ide:test",
|
||||
":idea:idea-android:test",
|
||||
":kotlin-annotation-processing:test")
|
||||
}
|
||||
|
||||
create("plugins-tests") {
|
||||
"plugins-tests" {
|
||||
dependsOn("dist")
|
||||
dependsOn(":kotlin-annotation-processing:test",
|
||||
":kotlin-source-sections-compiler-plugin:test",
|
||||
@@ -560,7 +516,7 @@ tasks {
|
||||
}
|
||||
|
||||
|
||||
create("ideaPluginTest") {
|
||||
"ideaPluginTest" {
|
||||
dependsOn(
|
||||
"idea-plugin-tests",
|
||||
"jps-tests",
|
||||
@@ -571,15 +527,12 @@ tasks {
|
||||
}
|
||||
|
||||
|
||||
create("test") {
|
||||
"test" {
|
||||
doLast {
|
||||
throw GradleException("Don't use directly, use aggregate tasks *-check instead")
|
||||
}
|
||||
}
|
||||
|
||||
create("check") {
|
||||
dependsOn("test")
|
||||
}
|
||||
"check" { dependsOn("test") }
|
||||
}
|
||||
|
||||
fun CopySpec.setExecutablePermissions() {
|
||||
@@ -638,6 +591,43 @@ val zipPlugin by task<Zip> {
|
||||
}
|
||||
}
|
||||
|
||||
val cidrPlugin by task<Copy> {
|
||||
dependsOn(ideaPlugin)
|
||||
into(cidrPluginDir)
|
||||
from(ideaPluginDir) {
|
||||
exclude("lib/kotlin-plugin.jar")
|
||||
|
||||
exclude("lib/android-lint.jar")
|
||||
exclude("lib/android-ide.jar")
|
||||
exclude("lib/android-output-parser-ide.jar")
|
||||
exclude("lib/android-extensions-ide.jar")
|
||||
exclude("lib/android-extensions-compiler.jar")
|
||||
exclude("lib/kapt3-idea.jar")
|
||||
exclude("lib/jps-ide.jar")
|
||||
exclude("lib/jps/**")
|
||||
exclude("kotlinc/**")
|
||||
exclude("lib/maven-ide.jar")
|
||||
}
|
||||
from(cidrKotlinPlugin) { into("lib") }
|
||||
}
|
||||
|
||||
val zipCidrPlugin by task<Zip> {
|
||||
val destPath = project.findProperty("pluginZipPath") as String?
|
||||
?: "$distDir/artifacts/kotlin-plugin-$kotlinVersion-CIDR.zip"
|
||||
val destFile = File(destPath)
|
||||
|
||||
destinationDir = destFile.parentFile
|
||||
archiveName = destFile.name
|
||||
|
||||
from(cidrPlugin)
|
||||
into("Kotlin")
|
||||
setExecutablePermissions()
|
||||
|
||||
doLast {
|
||||
logger.lifecycle("Plugin artifacts packed to $archivePath")
|
||||
}
|
||||
}
|
||||
|
||||
configure<IdeaModel> {
|
||||
module {
|
||||
excludeDirs = files(
|
||||
@@ -650,12 +640,14 @@ configure<IdeaModel> {
|
||||
}
|
||||
}
|
||||
|
||||
fun jdkPath(version: String): String {
|
||||
fun jdkPathIfFound(version: String): String? {
|
||||
val jdkName = "JDK_${version.replace(".", "")}"
|
||||
val jdkMajorVersion = JdkMajorVersion.valueOf(jdkName)
|
||||
return configuredJdks.find { it.majorVersion == jdkMajorVersion }?.homeDir?.canonicalPath?:jdkNotFoundConst
|
||||
return configuredJdks.find { it.majorVersion == jdkMajorVersion }?.homeDir?.canonicalPath
|
||||
}
|
||||
|
||||
fun jdkPath(version: String): String = jdkPathIfFound(version)
|
||||
?: throw GradleException ("Please set environment variable JDK_${version.replace(".", "")} to point to JDK $version installation")
|
||||
|
||||
fun Project.configureJvmProject(javaHome: String, javaVersion: String) {
|
||||
tasks.withType<JavaCompile> {
|
||||
@@ -670,7 +662,6 @@ fun Project.configureJvmProject(javaHome: String, javaVersion: String) {
|
||||
tasks.withType<KotlinCompile> {
|
||||
kotlinOptions.jdkHome = javaHome
|
||||
kotlinOptions.jvmTarget = javaVersion
|
||||
kotlinOptions.freeCompilerArgs += "-Xjvm-default=compatibility"
|
||||
}
|
||||
|
||||
tasks.withType<Test> {
|
||||
@@ -715,12 +706,3 @@ tasks.create("findShadowJarsInClasspath").doLast {
|
||||
project.checkConfig("testCompileClasspath")
|
||||
}
|
||||
}
|
||||
|
||||
allprojects {
|
||||
afterEvaluate {
|
||||
if (cacheRedirectorEnabled()) {
|
||||
logger.info("Redirecting repositories for $displayName")
|
||||
repositories.redirect()
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,17 +1,11 @@
|
||||
|
||||
buildscript {
|
||||
val cacheRedirectorEnabled = findProperty("cacheRedirectorEnabled")?.toString()?.toBoolean() == true
|
||||
|
||||
val buildSrcKotlinVersion: String by extra(findProperty("buildSrc.kotlin.version")?.toString() ?: embeddedKotlinVersion)
|
||||
val buildSrcKotlinRepo: String? by extra(findProperty("buildSrc.kotlin.repo") as String?)
|
||||
extra["versions.shadow"] = "4.0.3"
|
||||
extra["versions.shadow"] = "2.0.2"
|
||||
extra["versions.native-platform"] = "0.14"
|
||||
|
||||
repositories {
|
||||
if (cacheRedirectorEnabled) {
|
||||
maven("https://cache-redirector.jetbrains.com/jcenter.bintray.com")
|
||||
}
|
||||
|
||||
buildSrcKotlinRepo?.let {
|
||||
maven(url = it)
|
||||
}
|
||||
@@ -23,8 +17,6 @@ buildscript {
|
||||
}
|
||||
}
|
||||
|
||||
val cacheRedirectorEnabled = findProperty("cacheRedirectorEnabled")?.toString()?.toBoolean() == true
|
||||
|
||||
logger.info("buildSrcKotlinVersion: " + extra["buildSrcKotlinVersion"])
|
||||
logger.info("buildSrc kotlin compiler version: " + org.jetbrains.kotlin.config.KotlinCompilerVersion.VERSION)
|
||||
logger.info("buildSrc stdlib version: " + KotlinVersion.CURRENT)
|
||||
@@ -40,12 +32,12 @@ plugins {
|
||||
}
|
||||
|
||||
gradlePlugin {
|
||||
plugins {
|
||||
register("pill-configurable") {
|
||||
(plugins) {
|
||||
"pill-configurable" {
|
||||
id = "pill-configurable"
|
||||
implementationClass = "org.jetbrains.kotlin.pill.PillConfigurablePlugin"
|
||||
}
|
||||
register("jps-compatible") {
|
||||
"jps-compatible" {
|
||||
id = "jps-compatible"
|
||||
implementationClass = "org.jetbrains.kotlin.pill.JpsCompatiblePlugin"
|
||||
}
|
||||
@@ -59,13 +51,15 @@ fun Project.getBooleanProperty(name: String): Boolean? = this.findProperty(name)
|
||||
}
|
||||
|
||||
rootProject.apply {
|
||||
from(rootProject.file("../gradle/versions.gradle.kts"))
|
||||
from(rootProject.file("../versions.gradle.kts"))
|
||||
}
|
||||
|
||||
val isTeamcityBuild = project.hasProperty("teamcity") || System.getenv("TEAMCITY_VERSION") != null
|
||||
val intellijUltimateEnabled by extra(project.getBooleanProperty("intellijUltimateEnabled") ?: isTeamcityBuild)
|
||||
val intellijSeparateSdks by extra(project.getBooleanProperty("intellijSeparateSdks") ?: false)
|
||||
|
||||
extra["intellijRepo"] = "https://www.jetbrains.com/intellij-repository"
|
||||
|
||||
extra["intellijReleaseType"] = if (extra["versions.intellijSdk"]?.toString()?.endsWith("SNAPSHOT") == true)
|
||||
"snapshots"
|
||||
else
|
||||
@@ -76,18 +70,11 @@ extra["versions.androidDxSources"] = "5.0.0_r2"
|
||||
extra["customDepsOrg"] = "kotlin.build.custom.deps"
|
||||
|
||||
repositories {
|
||||
if (cacheRedirectorEnabled) {
|
||||
maven("https://cache-redirector.jetbrains.com/jcenter.bintray.com")
|
||||
maven("https://cache-redirector.jetbrains.com/jetbrains.bintray.com/intellij-third-party-dependencies/")
|
||||
}
|
||||
|
||||
extra["buildSrcKotlinRepo"]?.let {
|
||||
maven(url = it)
|
||||
}
|
||||
|
||||
maven(url = "https://repo.gradle.org/gradle/ext-releases-local") // for native-platform
|
||||
jcenter()
|
||||
maven("https://jetbrains.bintray.com/intellij-third-party-dependencies/")
|
||||
maven("https://plugins.gradle.org/m2/")
|
||||
}
|
||||
|
||||
dependencies {
|
||||
@@ -95,11 +82,11 @@ dependencies {
|
||||
compile("net.rubygrapefruit:native-platform-windows-amd64:${property("versions.native-platform")}")
|
||||
compile("net.rubygrapefruit:native-platform-windows-i386:${property("versions.native-platform")}")
|
||||
compile("com.jakewharton.dex:dex-method-list:3.0.0")
|
||||
|
||||
// TODO: adding the dep to the plugin breaks the build unexpectedly, resolve and uncomment
|
||||
// compile("org.jetbrains.kotlin:kotlin-gradle-plugin:${rootProject.extra["bootstrap_kotlin_version"]}")
|
||||
// Shadow plugin is used in many projects of the main build. Once it's no longer used in buildSrc, please move this dependency to the root project
|
||||
compile("com.github.jengelman.gradle.plugins:shadow:${property("versions.shadow")}")
|
||||
compile("org.jetbrains.intellij.deps:asm-all:7.0")
|
||||
|
||||
compile("gradle.plugin.org.jetbrains.gradle.plugin.idea-ext:gradle-idea-ext:0.4.2")
|
||||
compile("org.ow2.asm:asm-all:6.0_BETA")
|
||||
}
|
||||
|
||||
samWithReceiver {
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
org.gradle.jvmargs=-Duser.country=US -Dkotlin.daemon.jvm.options=-Xmx1600m -Dfile.encoding=UTF-8
|
||||
|
||||
cacheRedirectorEnabled=true
|
||||
org.gradle.daemon=true
|
||||
org.gradle.parallel=false
|
||||
org.gradle.configureondemand=false
|
||||
org.gradle.jvmargs=-Duser.country=US -Dkotlin.daemon.jvm.options=-Xmx1600m
|
||||
|
||||
#buildSrc.kotlin.repo=https://jcenter.bintray.com
|
||||
#buildSrc.kotlin.version=1.1.50
|
||||
|
||||
9
buildSrc/gradle.properties.as31
Normal file
9
buildSrc/gradle.properties.as31
Normal file
@@ -0,0 +1,9 @@
|
||||
org.gradle.daemon=true
|
||||
org.gradle.parallel=false
|
||||
org.gradle.configureondemand=false
|
||||
org.gradle.jvmargs=-Duser.country=US -Dkotlin.daemon.jvm.options=-Xmx1600m
|
||||
|
||||
#buildSrc.kotlin.repo=https://jcenter.bintray.com
|
||||
#buildSrc.kotlin.version=1.1.50
|
||||
|
||||
intellijUltimateEnabled=false
|
||||
@@ -1,6 +1,7 @@
|
||||
org.gradle.jvmargs=-Duser.country=US -Dkotlin.daemon.jvm.options=-Xmx1600m -Dfile.encoding=UTF-8
|
||||
|
||||
cacheRedirectorEnabled=true
|
||||
org.gradle.daemon=true
|
||||
org.gradle.parallel=false
|
||||
org.gradle.configureondemand=false
|
||||
org.gradle.jvmargs=-Duser.country=US -Dkotlin.daemon.jvm.options=-Xmx1600m
|
||||
|
||||
#buildSrc.kotlin.repo=https://jcenter.bintray.com
|
||||
#buildSrc.kotlin.version=1.1.50
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
org.gradle.jvmargs=-Duser.country=US -Dkotlin.daemon.jvm.options=-Xmx1600m -Dfile.encoding=UTF-8
|
||||
|
||||
cacheRedirectorEnabled=true
|
||||
org.gradle.daemon=true
|
||||
org.gradle.parallel=false
|
||||
org.gradle.configureondemand=false
|
||||
org.gradle.jvmargs=-Duser.country=US -Dkotlin.daemon.jvm.options=-Xmx1600m
|
||||
|
||||
#buildSrc.kotlin.repo=https://jcenter.bintray.com
|
||||
#buildSrc.kotlin.version=1.1.50
|
||||
|
||||
@@ -1,8 +0,0 @@
|
||||
org.gradle.jvmargs=-Duser.country=US -Dkotlin.daemon.jvm.options=-Xmx1600m -Dfile.encoding=UTF-8
|
||||
|
||||
cacheRedirectorEnabled=true
|
||||
|
||||
#buildSrc.kotlin.repo=https://jcenter.bintray.com
|
||||
#buildSrc.kotlin.version=1.1.50
|
||||
|
||||
intellijUltimateEnabled=false
|
||||
@@ -1,5 +1,5 @@
|
||||
|
||||
import org.gradle.api.publish.ivy.internal.artifact.FileBasedIvyArtifact
|
||||
import org.gradle.api.publish.ivy.internal.artifact.DefaultIvyArtifact
|
||||
import org.gradle.api.publish.ivy.internal.publication.DefaultIvyConfiguration
|
||||
import org.gradle.api.publish.ivy.internal.publication.DefaultIvyPublicationIdentity
|
||||
import org.gradle.api.publish.ivy.internal.publisher.IvyDescriptorFileGenerator
|
||||
@@ -24,7 +24,7 @@ val dxSourcesVersion = rootProject.extra["versions.androidDxSources"] as String
|
||||
|
||||
repositories {
|
||||
ivy {
|
||||
artifactPattern("https://dl.google.com/android/repository/[artifact]_[revision](-[classifier]).[ext]")
|
||||
artifactPattern("https://dl-ssl.google.com/android/repository/[artifact]_[revision](-[classifier]).[ext]")
|
||||
artifactPattern("https://android.googlesource.com/platform/dalvik/+archive/android-$dxSourcesVersion/[artifact].[ext]")
|
||||
metadataSources {
|
||||
artifact()
|
||||
@@ -92,23 +92,8 @@ val prepareIvyXml by tasks.creating {
|
||||
with(IvyDescriptorFileGenerator(DefaultIvyPublicationIdentity(customDepsOrg, dxModuleName, dxRevision))) {
|
||||
addConfiguration(DefaultIvyConfiguration("default"))
|
||||
addConfiguration(DefaultIvyConfiguration("sources"))
|
||||
addArtifact(
|
||||
FileBasedIvyArtifact(
|
||||
File(dxRepoModuleDir, "dx.jar"),
|
||||
DefaultIvyPublicationIdentity(customDepsOrg, "dx", dxRevision)
|
||||
).also {
|
||||
it.conf = "default"
|
||||
})
|
||||
|
||||
addArtifact(
|
||||
FileBasedIvyArtifact(
|
||||
File(dxRepoModuleDir, "dx-sources.jar"),
|
||||
DefaultIvyPublicationIdentity(customDepsOrg, "dx", dxRevision)
|
||||
).also {
|
||||
it.conf = "sources"
|
||||
it.classifier = "sources"
|
||||
})
|
||||
|
||||
addArtifact(DefaultIvyArtifact(File(dxRepoModuleDir, "dx.jar"), "dx", "jar", "jar", null).also { it.conf = "default" })
|
||||
addArtifact(DefaultIvyArtifact(File(dxRepoModuleDir, "dx-sources.jar"), "dx", "jar", "sources", "sources").also { it.conf = "sources" })
|
||||
writeTo(ivyFile)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,17 +1,27 @@
|
||||
|
||||
@file:Suppress("PropertyName")
|
||||
|
||||
import org.gradle.api.publish.ivy.internal.artifact.FileBasedIvyArtifact
|
||||
import org.gradle.api.publish.ivy.internal.artifact.DefaultIvyArtifact
|
||||
import org.gradle.api.publish.ivy.internal.publication.DefaultIvyConfiguration
|
||||
import org.gradle.api.publish.ivy.internal.publication.DefaultIvyPublicationIdentity
|
||||
import org.gradle.api.publish.ivy.internal.publisher.IvyDescriptorFileGenerator
|
||||
import java.io.File
|
||||
import org.gradle.internal.os.OperatingSystem
|
||||
import com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar
|
||||
|
||||
val cacheRedirectorEnabled = findProperty("cacheRedirectorEnabled")?.toString()?.toBoolean() == true
|
||||
buildscript {
|
||||
repositories {
|
||||
jcenter()
|
||||
}
|
||||
dependencies {
|
||||
classpath("com.github.jengelman.gradle.plugins:shadow:${property("versions.shadow")}")
|
||||
}
|
||||
}
|
||||
|
||||
val intellijUltimateEnabled: Boolean by rootProject.extra
|
||||
val intellijRepo: String by rootProject.extra
|
||||
val intellijReleaseType: String by rootProject.extra
|
||||
val intellijVersion = rootProject.extra["versions.intellijSdk"] as String
|
||||
val asmVersion = rootProject.findProperty("versions.jar.asm-all") as String?
|
||||
val androidStudioRelease = rootProject.findProperty("versions.androidStudioRelease") as String?
|
||||
val androidStudioBuild = rootProject.findProperty("versions.androidStudioBuild") as String?
|
||||
val intellijSeparateSdks: Boolean by rootProject.extra
|
||||
@@ -50,26 +60,14 @@ val studioOs by lazy {
|
||||
repositories {
|
||||
if (androidStudioRelease != null) {
|
||||
ivy {
|
||||
if (cacheRedirectorEnabled) {
|
||||
artifactPattern("https://cache-redirector.jetbrains.com/dl.google.com/dl/android/studio/ide-zips/$androidStudioRelease/[artifact]-[revision]-$studioOs.zip")
|
||||
}
|
||||
|
||||
artifactPattern("https://dl.google.com/dl/android/studio/ide-zips/$androidStudioRelease/[artifact]-[revision]-$studioOs.zip")
|
||||
metadataSources {
|
||||
artifact()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (cacheRedirectorEnabled) {
|
||||
maven("https://cache-redirector.jetbrains.com/www.jetbrains.com/intellij-repository/$intellijReleaseType")
|
||||
maven("https://cache-redirector.jetbrains.com/plugins.jetbrains.com/maven")
|
||||
maven("https://cache-redirector.jetbrains.com/jetbrains.bintray.com/intellij-third-party-dependencies/")
|
||||
}
|
||||
|
||||
maven("https://www.jetbrains.com/intellij-repository/$intellijReleaseType")
|
||||
maven("https://plugins.jetbrains.com/maven")
|
||||
maven("https://jetbrains.bintray.com/intellij-third-party-dependencies/")
|
||||
maven { setUrl("$intellijRepo/$intellijReleaseType") }
|
||||
maven { setUrl("https://plugins.jetbrains.com/maven") }
|
||||
}
|
||||
|
||||
val intellij by configurations.creating
|
||||
@@ -80,13 +78,6 @@ val `jps-build-test` by configurations.creating
|
||||
val `intellij-core` by configurations.creating
|
||||
val `plugins-NodeJS` by configurations.creating
|
||||
|
||||
/**
|
||||
* Special repository for annotations.jar required for idea runtime only.
|
||||
*
|
||||
* See IntellijDependenciesKt.intellijRuntimeAnnotations for more details.
|
||||
*/
|
||||
val intellijRuntimeAnnotations = "intellij-runtime-annotations"
|
||||
|
||||
val customDepsRepoDir = File(buildDir, "repo")
|
||||
val customDepsOrg: String by rootProject.extra
|
||||
val customDepsRevision = intellijVersion
|
||||
@@ -104,11 +95,6 @@ dependencies {
|
||||
intellijUltimate("com.jetbrains.intellij.idea:ideaIU:$intellijVersion")
|
||||
}
|
||||
}
|
||||
|
||||
if (asmVersion != null) {
|
||||
sources("org.jetbrains.intellij.deps:asm-all:$asmVersion:sources@jar")
|
||||
}
|
||||
|
||||
sources("com.jetbrains.intellij.idea:ideaIC:$intellijVersion:sources@jar")
|
||||
`jps-standalone`("com.jetbrains.intellij.idea:jps-standalone:$intellijVersion")
|
||||
`jps-build-test`("com.jetbrains.intellij.idea:jps-build-test:$intellijVersion")
|
||||
@@ -164,67 +150,40 @@ val unzipIntellijUltimateSdk by tasks.creating {
|
||||
|
||||
val unzipIntellijCore by tasks.creating { configureExtractFromConfigurationTask(`intellij-core`) { zipTree(it.singleFile) } }
|
||||
|
||||
val makeIntellijAnnotations by tasks.creating(Copy::class.java) {
|
||||
dependsOn(unzipIntellijCore)
|
||||
from(repoDir.resolve(`intellij-core`.name).resolve("annotations.jar"))
|
||||
into(repoDir.resolve(intellijRuntimeAnnotations))
|
||||
}
|
||||
|
||||
val unzipJpsStandalone by tasks.creating { configureExtractFromConfigurationTask(`jps-standalone`) { zipTree(it.singleFile) } }
|
||||
|
||||
val mergeSources by tasks.creating(Jar::class.java) {
|
||||
dependsOn(sources)
|
||||
from(provider { sources.map(::zipTree) })
|
||||
destinationDir = File(repoDir, sources.name)
|
||||
baseName = "intellij"
|
||||
classifier = "sources"
|
||||
val copyIntellijSdkSources by tasks.creating(ShadowJar::class.java) {
|
||||
from(sources)
|
||||
baseName = "ideaIC"
|
||||
version = intellijVersion
|
||||
classifier = "sources"
|
||||
destinationDir = File(repoDir, sources.name)
|
||||
}
|
||||
|
||||
val copyJpsBuildTest by tasks.creating { configureExtractFromConfigurationTask(`jps-build-test`) { it.singleFile } }
|
||||
|
||||
val unzipNodeJSPlugin by tasks.creating { configureExtractFromConfigurationTask(`plugins-NodeJS`) { zipTree(it.singleFile) } }
|
||||
|
||||
fun writeIvyXml(
|
||||
moduleName: String,
|
||||
fileName: String,
|
||||
baseDir: File,
|
||||
vararg sourcesJar: File,
|
||||
allowAnnotations: Boolean = false
|
||||
) {
|
||||
fun shouldIncludeIntellijJar(jar: File) =
|
||||
jar.isFile
|
||||
&& jar.extension == "jar"
|
||||
&& !jar.name.startsWith("kotlin-")
|
||||
&& (allowAnnotations || jar.name != "annotations.jar") // see comments for [intellijAnnotations] above
|
||||
|
||||
fun writeIvyXml(moduleName: String, fileName: String, jarFiles: FileCollection, baseDir: File, sourcesJar: File?) {
|
||||
with(IvyDescriptorFileGenerator(DefaultIvyPublicationIdentity(customDepsOrg, moduleName, intellijVersion))) {
|
||||
addConfiguration(DefaultIvyConfiguration("default"))
|
||||
addConfiguration(DefaultIvyConfiguration("sources"))
|
||||
baseDir.listFiles()?.forEach { jarFile ->
|
||||
if (shouldIncludeIntellijJar(jarFile)) {
|
||||
addArtifact(
|
||||
FileBasedIvyArtifact(jarFile, DefaultIvyPublicationIdentity(customDepsOrg, jarFile.nameWithoutExtension, intellijVersion)).also {
|
||||
it.conf = "default"
|
||||
}
|
||||
)
|
||||
jarFiles.asFileTree.files.forEach {
|
||||
if (it.isFile && it.extension == "jar") {
|
||||
val relativeName = it.toRelativeString(baseDir).removeSuffix(".jar")
|
||||
addArtifact(DefaultIvyArtifact(it, relativeName, "jar", "jar", null).also { it.conf = "default" })
|
||||
}
|
||||
}
|
||||
sourcesJar.forEach {
|
||||
val sourcesArtifactName = it.name.substringBeforeLast("-").substringBeforeLast("-")
|
||||
addArtifact(
|
||||
FileBasedIvyArtifact(it, DefaultIvyPublicationIdentity(customDepsOrg, sourcesArtifactName, intellijVersion)).also { artifact ->
|
||||
artifact.conf = "sources"
|
||||
artifact.classifier = "sources"
|
||||
}
|
||||
)
|
||||
if (sourcesJar != null) {
|
||||
val sourcesArtifactName = sourcesJar.name.removeSuffix(".jar").substringBefore("-")
|
||||
addArtifact(DefaultIvyArtifact(sourcesJar, sourcesArtifactName, "jar", "sources", "sources").also { it.conf = "sources" })
|
||||
}
|
||||
writeTo(File(customDepsRepoModulesDir, "$fileName.ivy.xml"))
|
||||
}
|
||||
}
|
||||
|
||||
val prepareIvyXmls by tasks.creating {
|
||||
dependsOn(unzipIntellijCore, makeIntellijAnnotations, unzipJpsStandalone, mergeSources, copyJpsBuildTest)
|
||||
dependsOn(unzipIntellijCore, unzipJpsStandalone, copyIntellijSdkSources, copyJpsBuildTest)
|
||||
|
||||
val intellijSdkDir = File(repoDir, intellij.name)
|
||||
val intellijUltimateSdkDir = File(repoDir, intellijUltimate.name)
|
||||
@@ -255,51 +214,46 @@ val prepareIvyXmls by tasks.creating {
|
||||
}
|
||||
|
||||
doFirst {
|
||||
val sources = File(repoDir, sources.name).listFiles()
|
||||
val sourcesFile = if (sources.isEmpty) null else File(repoDir, "${sources.name}/${sources.singleFile.name}")
|
||||
|
||||
if (installIntellijCommunity) {
|
||||
val libDir = File(intellijSdkDir, "lib")
|
||||
writeIvyXml(
|
||||
intellij.name,
|
||||
intellij.name,
|
||||
libDir,
|
||||
*sources
|
||||
)
|
||||
writeIvyXml(intellij.name,
|
||||
intellij.name,
|
||||
fileTree(libDir).filter {
|
||||
it.parentFile == libDir && !it.name.startsWith("kotlin-")
|
||||
},
|
||||
libDir,
|
||||
sourcesFile)
|
||||
|
||||
File(intellijSdkDir, "plugins").listFiles { file: File -> file.isDirectory }.forEach {
|
||||
writeIvyXml(it.name, "intellij.plugin.${it.name}", File(it, "lib"), *sources)
|
||||
File(intellijSdkDir, "plugins").listFiles { it: File -> it.isDirectory }.forEach {
|
||||
writeIvyXml(it.name, "intellij.plugin.${it.name}", files("$it/lib/"), File(it, "lib"), sourcesFile)
|
||||
}
|
||||
}
|
||||
|
||||
if (installIntellijUltimate) {
|
||||
val libDir = File(intellijUltimateSdkDir, "lib")
|
||||
writeIvyXml(
|
||||
intellij.name, // important! the module name should be "intellij"
|
||||
intellijUltimate.name,
|
||||
libDir,
|
||||
*sources
|
||||
)
|
||||
writeIvyXml(intellij.name, // important! the module name should be "intellij"
|
||||
intellijUltimate.name,
|
||||
fileTree(libDir).filter {
|
||||
it.parentFile == libDir && !it.name.startsWith("kotlin-")
|
||||
},
|
||||
libDir,
|
||||
sourcesFile)
|
||||
|
||||
File(intellijUltimateSdkDir, "plugins").listFiles { it: File -> it.isDirectory }.forEach {
|
||||
writeIvyXml(it.name, "intellijUltimate.plugin.${it.name}", File(it, "lib"), *sources)
|
||||
writeIvyXml(it.name, "intellijUltimate.plugin.${it.name}", files("$it/lib/"), File(it, "lib"), sourcesFile)
|
||||
}
|
||||
}
|
||||
|
||||
flatDeps.forEach {
|
||||
writeIvyXml(it.name, it.name, File(repoDir, it.name), *sources)
|
||||
writeIvyXml(it.name, it.name, files("$repoDir/${it.name}"), File(repoDir, it.name), sourcesFile)
|
||||
}
|
||||
|
||||
if (intellijUltimateEnabled) {
|
||||
val nodeJsBaseDir = "${`plugins-NodeJS`.name}/NodeJS/lib"
|
||||
writeIvyXml("NodeJS", `plugins-NodeJS`.name, File(repoDir, nodeJsBaseDir), *sources)
|
||||
writeIvyXml("NodeJS", `plugins-NodeJS`.name, files("$repoDir/$nodeJsBaseDir"), File(repoDir, nodeJsBaseDir), sourcesFile)
|
||||
}
|
||||
|
||||
val intellijAnnotationsDir = File(repoDir, intellijRuntimeAnnotations)
|
||||
writeIvyXml(
|
||||
intellijRuntimeAnnotations, intellijRuntimeAnnotations,
|
||||
intellijAnnotationsDir, *sources,
|
||||
allowAnnotations = true
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
267
buildSrc/prepare-deps/intellij-sdk/build.gradle.kts.as33
Normal file
267
buildSrc/prepare-deps/intellij-sdk/build.gradle.kts.as33
Normal file
@@ -0,0 +1,267 @@
|
||||
|
||||
@file:Suppress("PropertyName")
|
||||
|
||||
import org.gradle.api.publish.ivy.internal.artifact.DefaultIvyArtifact
|
||||
import org.gradle.api.publish.ivy.internal.publication.DefaultIvyConfiguration
|
||||
import org.gradle.api.publish.ivy.internal.publication.DefaultIvyPublicationIdentity
|
||||
import org.gradle.api.publish.ivy.internal.publisher.IvyDescriptorFileGenerator
|
||||
import java.io.File
|
||||
import org.gradle.internal.os.OperatingSystem
|
||||
import com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar
|
||||
|
||||
buildscript {
|
||||
repositories {
|
||||
jcenter()
|
||||
}
|
||||
dependencies {
|
||||
classpath("com.github.jengelman.gradle.plugins:shadow:${property("versions.shadow")}")
|
||||
}
|
||||
}
|
||||
|
||||
val intellijUltimateEnabled: Boolean by rootProject.extra
|
||||
val intellijRepo: String by rootProject.extra
|
||||
val intellijReleaseType: String by rootProject.extra
|
||||
val intellijVersion = rootProject.extra["versions.intellijSdk"] as String
|
||||
val androidStudioRelease = rootProject.findProperty("versions.androidStudioRelease") as String?
|
||||
val androidStudioBuild = rootProject.findProperty("versions.androidStudioBuild") as String?
|
||||
val intellijSeparateSdks: Boolean by rootProject.extra
|
||||
val installIntellijCommunity = !intellijUltimateEnabled || intellijSeparateSdks
|
||||
val installIntellijUltimate = intellijUltimateEnabled
|
||||
|
||||
val intellijVersionDelimiterIndex = intellijVersion.indexOfAny(charArrayOf('.', '-'))
|
||||
if (intellijVersionDelimiterIndex == -1) {
|
||||
error("Invalid IDEA version $intellijVersion")
|
||||
}
|
||||
|
||||
val platformBaseVersion = intellijVersion.substring(0, intellijVersionDelimiterIndex)
|
||||
|
||||
logger.info("intellijUltimateEnabled: $intellijUltimateEnabled")
|
||||
|
||||
logger.info("intellijVersion: $intellijVersion")
|
||||
logger.info("androidStudioRelease: $androidStudioRelease")
|
||||
logger.info("androidStudioBuild: $androidStudioBuild")
|
||||
|
||||
logger.info("intellijSeparateSdks: $intellijSeparateSdks")
|
||||
logger.info("installIntellijCommunity: $installIntellijCommunity")
|
||||
logger.info("installIntellijUltimate: $installIntellijUltimate")
|
||||
|
||||
val studioOs by lazy {
|
||||
when {
|
||||
OperatingSystem.current().isWindows -> "windows"
|
||||
OperatingSystem.current().isMacOsX -> "mac"
|
||||
OperatingSystem.current().isLinux -> "linux"
|
||||
else -> {
|
||||
logger.error("Unknown operating system for android tools: ${OperatingSystem.current().name}")
|
||||
""
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
repositories {
|
||||
if (androidStudioRelease != null) {
|
||||
ivy {
|
||||
artifactPattern("https://dl.google.com/dl/android/studio/ide-zips/$androidStudioRelease/[artifact]-[revision]-$studioOs.zip")
|
||||
metadataSources {
|
||||
artifact()
|
||||
}
|
||||
}
|
||||
}
|
||||
maven { setUrl("$intellijRepo/$intellijReleaseType") }
|
||||
maven { setUrl("https://plugins.jetbrains.com/maven") }
|
||||
}
|
||||
|
||||
val intellij by configurations.creating
|
||||
val intellijUltimate by configurations.creating
|
||||
val sources by configurations.creating
|
||||
val `jps-standalone` by configurations.creating
|
||||
val `jps-build-test` by configurations.creating
|
||||
val `intellij-core` by configurations.creating
|
||||
val `plugins-NodeJS` by configurations.creating
|
||||
|
||||
val customDepsRepoDir = File(buildDir, "repo")
|
||||
val customDepsOrg: String by rootProject.extra
|
||||
val customDepsRevision = intellijVersion
|
||||
val customDepsRepoModulesDir = File(customDepsRepoDir, "$customDepsOrg/$customDepsRevision")
|
||||
val repoDir = customDepsRepoModulesDir
|
||||
|
||||
dependencies {
|
||||
if (androidStudioRelease != null) {
|
||||
intellij("google:android-studio-ide:$androidStudioBuild")
|
||||
} else {
|
||||
if (installIntellijCommunity) {
|
||||
intellij("com.jetbrains.intellij.idea:ideaIC:$intellijVersion")
|
||||
}
|
||||
if (installIntellijUltimate) {
|
||||
intellijUltimate("com.jetbrains.intellij.idea:ideaIU:$intellijVersion")
|
||||
}
|
||||
}
|
||||
sources("com.jetbrains.intellij.idea:ideaIC:$intellijVersion:sources@jar")
|
||||
`jps-standalone`("com.jetbrains.intellij.idea:jps-standalone:$intellijVersion")
|
||||
`jps-build-test`("com.jetbrains.intellij.idea:jps-build-test:$intellijVersion")
|
||||
`intellij-core`("com.jetbrains.intellij.idea:intellij-core:$intellijVersion")
|
||||
if (intellijUltimateEnabled) {
|
||||
`plugins-NodeJS`("com.jetbrains.plugins:NodeJS:${rootProject.extra["versions.idea.NodeJS"]}@zip")
|
||||
}
|
||||
}
|
||||
|
||||
fun Task.configureExtractFromConfigurationTask(sourceConfig: Configuration,
|
||||
pathRemap: (String) -> String = { it },
|
||||
extractor: (Configuration) -> Any) {
|
||||
dependsOn(sourceConfig)
|
||||
inputs.files(sourceConfig)
|
||||
val targetDir = File(repoDir, sourceConfig.name)
|
||||
outputs.dirs(targetDir)
|
||||
doFirst {
|
||||
project.copy {
|
||||
from(extractor(sourceConfig))
|
||||
into(targetDir)
|
||||
eachFile {
|
||||
path = pathRemap(path)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
fun removePathPrefix(path: String): String {
|
||||
if (androidStudioRelease == null) return path
|
||||
val slashes = if (studioOs == "mac") 2 else 1
|
||||
var result = path
|
||||
repeat(slashes) {
|
||||
result = result.substringAfter('/')
|
||||
}
|
||||
return result
|
||||
}
|
||||
|
||||
val unzipIntellijSdk by tasks.creating {
|
||||
configureExtractFromConfigurationTask(intellij, pathRemap = { removePathPrefix(it) }) {
|
||||
zipTree(it.singleFile).matching {
|
||||
exclude("**/plugins/Kotlin/**")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
val unzipIntellijUltimateSdk by tasks.creating {
|
||||
configureExtractFromConfigurationTask(intellijUltimate) {
|
||||
zipTree(it.singleFile).matching {
|
||||
exclude("plugins/Kotlin/**")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
val unzipIntellijCore by tasks.creating { configureExtractFromConfigurationTask(`intellij-core`) { zipTree(it.singleFile) } }
|
||||
|
||||
val unzipJpsStandalone by tasks.creating { configureExtractFromConfigurationTask(`jps-standalone`) { zipTree(it.singleFile) } }
|
||||
|
||||
val copyIntellijSdkSources by tasks.creating(ShadowJar::class.java) {
|
||||
from(sources)
|
||||
baseName = "ideaIC"
|
||||
version = intellijVersion
|
||||
classifier = "sources"
|
||||
destinationDir = File(repoDir, sources.name)
|
||||
}
|
||||
|
||||
val copyJpsBuildTest by tasks.creating { configureExtractFromConfigurationTask(`jps-build-test`) { it.singleFile } }
|
||||
|
||||
val unzipNodeJSPlugin by tasks.creating { configureExtractFromConfigurationTask(`plugins-NodeJS`) { zipTree(it.singleFile) } }
|
||||
|
||||
fun writeIvyXml(moduleName: String, fileName: String, jarFiles: FileCollection, baseDir: File, sourcesJar: File?) {
|
||||
with(IvyDescriptorFileGenerator(DefaultIvyPublicationIdentity(customDepsOrg, moduleName, intellijVersion))) {
|
||||
addConfiguration(DefaultIvyConfiguration("default"))
|
||||
addConfiguration(DefaultIvyConfiguration("sources"))
|
||||
jarFiles.asFileTree.files.forEach {
|
||||
if (it.isFile && it.extension == "jar") {
|
||||
val relativeName = it.toRelativeString(baseDir).removeSuffix(".jar")
|
||||
addArtifact(DefaultIvyArtifact(it, relativeName, "jar", "jar", null).also { it.conf = "default" })
|
||||
}
|
||||
}
|
||||
if (sourcesJar != null) {
|
||||
val sourcesArtifactName = sourcesJar.name.removeSuffix(".jar").substringBefore("-")
|
||||
addArtifact(DefaultIvyArtifact(sourcesJar, sourcesArtifactName, "jar", "sources", "sources").also { it.conf = "sources" })
|
||||
}
|
||||
writeTo(File(customDepsRepoModulesDir, "$fileName.ivy.xml"))
|
||||
}
|
||||
}
|
||||
|
||||
val prepareIvyXmls by tasks.creating {
|
||||
dependsOn(unzipIntellijCore, unzipJpsStandalone, copyIntellijSdkSources, copyJpsBuildTest)
|
||||
|
||||
val intellijSdkDir = File(repoDir, intellij.name)
|
||||
val intellijUltimateSdkDir = File(repoDir, intellijUltimate.name)
|
||||
|
||||
if (installIntellijCommunity) {
|
||||
dependsOn(unzipIntellijSdk)
|
||||
inputs.dir(intellijSdkDir)
|
||||
outputs.file(File(repoDir, "${intellij.name}.ivy.xml"))
|
||||
}
|
||||
|
||||
if (installIntellijUltimate) {
|
||||
dependsOn(unzipIntellijUltimateSdk)
|
||||
inputs.dir(intellijUltimateSdkDir)
|
||||
outputs.file(File(repoDir, "${intellijUltimate.name}.ivy.xml"))
|
||||
}
|
||||
|
||||
val flatDeps = listOf(`intellij-core`, `jps-standalone`, `jps-build-test`)
|
||||
flatDeps.forEach {
|
||||
inputs.dir(File(repoDir, it.name))
|
||||
outputs.file(File(repoDir, "${it.name}.ivy.xml"))
|
||||
}
|
||||
inputs.dir(File(repoDir, sources.name))
|
||||
|
||||
if (intellijUltimateEnabled) {
|
||||
dependsOn(unzipNodeJSPlugin)
|
||||
inputs.dir(File(repoDir, `plugins-NodeJS`.name))
|
||||
outputs.file(File(repoDir, "${`plugins-NodeJS`.name}.ivy.xml"))
|
||||
}
|
||||
|
||||
doFirst {
|
||||
val sourcesFile = if (sources.isEmpty) null else File(repoDir, "${sources.name}/${sources.singleFile.name}")
|
||||
|
||||
if (installIntellijCommunity) {
|
||||
val libDir = File(intellijSdkDir, "lib")
|
||||
writeIvyXml(intellij.name,
|
||||
intellij.name,
|
||||
fileTree(libDir).filter {
|
||||
it.parentFile == libDir && !it.name.startsWith("kotlin-")
|
||||
},
|
||||
libDir,
|
||||
sourcesFile)
|
||||
|
||||
File(intellijSdkDir, "plugins").listFiles { it: File -> it.isDirectory }.forEach {
|
||||
writeIvyXml(it.name, "intellij.plugin.${it.name}", files("$it/lib/"), File(it, "lib"), sourcesFile)
|
||||
}
|
||||
}
|
||||
|
||||
if (installIntellijUltimate) {
|
||||
val libDir = File(intellijUltimateSdkDir, "lib")
|
||||
writeIvyXml(intellij.name, // important! the module name should be "intellij"
|
||||
intellijUltimate.name,
|
||||
fileTree(libDir).filter {
|
||||
it.parentFile == libDir && !it.name.startsWith("kotlin-")
|
||||
},
|
||||
libDir,
|
||||
sourcesFile)
|
||||
|
||||
File(intellijUltimateSdkDir, "plugins").listFiles { it: File -> it.isDirectory }.forEach {
|
||||
writeIvyXml(it.name, "intellijUltimate.plugin.${it.name}", files("$it/lib/"), File(it, "lib"), sourcesFile)
|
||||
}
|
||||
}
|
||||
|
||||
flatDeps.forEach {
|
||||
writeIvyXml(it.name, it.name, files("$repoDir/${it.name}"), File(repoDir, it.name), sourcesFile)
|
||||
}
|
||||
|
||||
if (intellijUltimateEnabled) {
|
||||
val nodeJsBaseDir = "${`plugins-NodeJS`.name}/NodeJS/lib"
|
||||
writeIvyXml("NodeJS", `plugins-NodeJS`.name, files("$repoDir/$nodeJsBaseDir"), File(repoDir, nodeJsBaseDir), sourcesFile)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
val build by tasks.creating {
|
||||
dependsOn(prepareIvyXmls)
|
||||
}
|
||||
|
||||
val clean by tasks.creating(Delete::class) {
|
||||
delete(customDepsRepoModulesDir)
|
||||
delete(buildDir)
|
||||
}
|
||||
@@ -1,15 +1,3 @@
|
||||
|
||||
pluginManagement {
|
||||
repositories {
|
||||
if (cacheRedirectorEnabled == 'true') {
|
||||
maven {
|
||||
url "https://cache-redirector.jetbrains.com/plugins.gradle.org/m2"
|
||||
}
|
||||
}
|
||||
|
||||
gradlePluginPortal()
|
||||
}
|
||||
}
|
||||
|
||||
include "prepare-deps:android-dx",
|
||||
"prepare-deps:intellij-sdk"
|
||||
|
||||
@@ -1,97 +0,0 @@
|
||||
/*
|
||||
* Copyright 2010-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license
|
||||
* that can be found in the license/LICENSE.txt file.
|
||||
*/
|
||||
|
||||
import org.gradle.api.Project
|
||||
|
||||
interface CompatibilityPredicate {
|
||||
fun matches(ide: Ide): Boolean
|
||||
|
||||
operator fun invoke(): Boolean = matches(IdeVersionConfigurator.currentIde)
|
||||
|
||||
operator fun invoke(block: () -> Unit): Unit {
|
||||
if (matches(IdeVersionConfigurator.currentIde)) {
|
||||
block()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
val CompatibilityPredicate.not: CompatibilityPredicate get() = object : CompatibilityPredicate {
|
||||
override fun matches(ide: Ide) = !this@not.matches(ide)
|
||||
}
|
||||
|
||||
fun CompatibilityPredicate.or(other: CompatibilityPredicate): CompatibilityPredicate = object : CompatibilityPredicate {
|
||||
override fun matches(ide: Ide) = this@or.matches(ide) || other.matches(ide)
|
||||
}
|
||||
|
||||
enum class Platform : CompatibilityPredicate {
|
||||
P181, P182, P183, P191;
|
||||
|
||||
val version: Int = name.drop(1).toInt()
|
||||
|
||||
override fun matches(ide: Ide) = ide.platform == this
|
||||
|
||||
companion object {
|
||||
operator fun get(version: Int): Platform {
|
||||
return Platform.values().firstOrNull { it.version == version }
|
||||
?: error("Can't find platform $version")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
enum class Ide(val platform: Platform) : CompatibilityPredicate {
|
||||
IJ181(Platform.P181),
|
||||
IJ182(Platform.P182),
|
||||
IJ183(Platform.P183),
|
||||
IJ191(Platform.P191),
|
||||
|
||||
AS32(Platform.P181),
|
||||
AS33(Platform.P182),
|
||||
AS34(Platform.P183),
|
||||
AS35(Platform.P183);
|
||||
|
||||
val kind = Kind.values().first { it.shortName == name.take(2) }
|
||||
val version = name.dropWhile { !it.isDigit() }.toInt()
|
||||
|
||||
override fun matches(ide: Ide) = ide == this
|
||||
|
||||
enum class Kind(val shortName: String) {
|
||||
AndroidStudio("AS"), IntelliJ("IJ")
|
||||
}
|
||||
|
||||
companion object {
|
||||
val IJ: CompatibilityPredicate = IdeKindPredicate(Kind.IntelliJ)
|
||||
val AS: CompatibilityPredicate = IdeKindPredicate(Kind.AndroidStudio)
|
||||
}
|
||||
}
|
||||
|
||||
val Platform.orHigher get() = object : CompatibilityPredicate {
|
||||
override fun matches(ide: Ide) = ide.platform.version >= version
|
||||
}
|
||||
|
||||
val Platform.orLower get() = object : CompatibilityPredicate {
|
||||
override fun matches(ide: Ide) = ide.platform.version <= version
|
||||
}
|
||||
|
||||
val Ide.orHigher get() = object : CompatibilityPredicate {
|
||||
override fun matches(ide: Ide) = ide.kind == kind && ide.version >= version
|
||||
}
|
||||
|
||||
val Ide.orLower get() = object : CompatibilityPredicate {
|
||||
override fun matches(ide: Ide) = ide.kind == kind && ide.version <= version
|
||||
}
|
||||
|
||||
object IdeVersionConfigurator {
|
||||
lateinit var currentIde: Ide
|
||||
|
||||
fun setCurrentIde(project: Project) {
|
||||
val platformVersion = project.rootProject.extensions.extraProperties["versions.platform"].toString()
|
||||
val ideName = if (platformVersion.startsWith("AS")) platformVersion else "IJ$platformVersion"
|
||||
currentIde = Ide.valueOf(ideName)
|
||||
}
|
||||
}
|
||||
|
||||
private class IdeKindPredicate(val kind: Ide.Kind) : CompatibilityPredicate {
|
||||
override fun matches(ide: Ide) = ide.kind == kind
|
||||
}
|
||||
@@ -1,19 +0,0 @@
|
||||
/*
|
||||
* Copyright 2010-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license
|
||||
* that can be found in the license/LICENSE.txt file.
|
||||
*/
|
||||
|
||||
import org.gradle.api.tasks.JavaExec
|
||||
|
||||
/**
|
||||
* Workaround for IDEA-200192:
|
||||
* IDEA makes all JavaExec tasks not up-to-date and attaches debugger making our breakpoints trigger during irrelevant task execution
|
||||
*/
|
||||
open class NoDebugJavaExec : JavaExec() {
|
||||
private fun String.isDebuggerArgument(): Boolean =
|
||||
startsWith("-agentlib:jdwp=transport=dt_socket,server=n,suspend=y,address=")
|
||||
|
||||
override fun setJvmArgs(arguments: MutableList<String>?) {
|
||||
super.setJvmArgs(arguments?.filterNot { it.isDebuggerArgument() })
|
||||
}
|
||||
}
|
||||
@@ -15,7 +15,6 @@ fun Project.smartJavaExec(configure: JavaExec.() -> Unit) = task<JavaExec> javaE
|
||||
val classpath = classpath
|
||||
val main = main
|
||||
dependsOn(classpath)
|
||||
inputs.files(classpath)
|
||||
inputs.property("main", main)
|
||||
doFirst {
|
||||
val classPathString = classpath.joinToString(" ") { project.file(it).toURI().toString() }
|
||||
|
||||
@@ -1,23 +1,40 @@
|
||||
@file:Suppress("unused") // usages in build scripts are not tracked properly
|
||||
|
||||
import org.gradle.api.GradleException
|
||||
import org.gradle.api.Project
|
||||
import org.gradle.api.Task
|
||||
import org.gradle.api.UnknownDomainObjectException
|
||||
import org.gradle.api.artifacts.ConfigurablePublishArtifact
|
||||
import org.gradle.api.artifacts.Configuration
|
||||
import org.gradle.api.artifacts.ConfigurationContainer
|
||||
import org.gradle.api.*
|
||||
import org.gradle.api.artifacts.*
|
||||
import org.gradle.api.tasks.*
|
||||
import org.gradle.kotlin.dsl.*
|
||||
import org.gradle.api.file.DuplicatesStrategy
|
||||
import org.gradle.api.file.FileCollection
|
||||
import org.gradle.api.internal.artifacts.publish.ArchivePublishArtifact
|
||||
import org.gradle.api.plugins.BasePluginConvention
|
||||
import org.gradle.api.tasks.AbstractCopyTask
|
||||
import org.gradle.api.tasks.Copy
|
||||
import org.gradle.api.tasks.Upload
|
||||
import org.gradle.api.plugins.JavaPluginConvention
|
||||
import org.gradle.api.tasks.javadoc.Javadoc
|
||||
import org.gradle.jvm.tasks.Jar
|
||||
import org.gradle.kotlin.dsl.*
|
||||
import java.io.File
|
||||
|
||||
// can be used now only for the non-published projects, due to conflicts in the "archives" config
|
||||
// TODO: fix the problem above
|
||||
fun Project.classesDirsArtifact(): FileCollection {
|
||||
|
||||
task("uploadArchives") {
|
||||
// hides rule-based task with the same name, which appears to be broken in this project
|
||||
}
|
||||
|
||||
val classesDirsCfg = configurations.getOrCreate("classes-dirs")
|
||||
|
||||
val classesDirs = mainSourceSet.output.classesDirs
|
||||
|
||||
val classesTask = tasks["classes"]
|
||||
|
||||
afterEvaluate {
|
||||
classesDirs.files.forEach {
|
||||
addArtifact(classesDirsCfg, classesTask, it)
|
||||
}
|
||||
}
|
||||
|
||||
return classesDirs
|
||||
}
|
||||
|
||||
private const val MAGIC_DO_NOT_CHANGE_TEST_JAR_TASK_NAME = "testJar"
|
||||
|
||||
@@ -35,31 +52,20 @@ fun Project.testsJar(body: Jar.() -> Unit = {}): Jar {
|
||||
}
|
||||
}
|
||||
|
||||
var Project.artifactsRemovedDiagnosticFlag: Boolean
|
||||
get() = extra.has("artifactsRemovedDiagnosticFlag") && extra["artifactsRemovedDiagnosticFlag"] == true
|
||||
set(value) {
|
||||
extra["artifactsRemovedDiagnosticFlag"] = value
|
||||
}
|
||||
|
||||
fun Project.removeArtifacts(configuration: Configuration, task: Task) {
|
||||
configuration.artifacts.removeAll { artifact ->
|
||||
artifact.file in task.outputs.files
|
||||
}
|
||||
|
||||
artifactsRemovedDiagnosticFlag = true
|
||||
}
|
||||
|
||||
fun Project.noDefaultJar() {
|
||||
tasks.findByName("jar")?.let { defaultJarTask ->
|
||||
defaultJarTask.enabled = false
|
||||
defaultJarTask.actions = emptyList()
|
||||
configurations.forEach { cfg ->
|
||||
removeArtifacts(cfg, defaultJarTask)
|
||||
cfg.artifacts.removeAll {
|
||||
(it as? ArchivePublishArtifact)?.archiveTask?.let { it == defaultJarTask } ?: false
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
fun Project.runtimeJarArtifactBy(task: Task, artifactRef: Any, body: ConfigurablePublishArtifact.() -> Unit = {}) {
|
||||
fun<T> Project.runtimeJarArtifactBy(task: Task, artifactRef: T, body: ConfigurablePublishArtifact.() -> Unit = {}) {
|
||||
addArtifact("archives", task, artifactRef, body)
|
||||
addArtifact("runtimeJar", task, artifactRef, body)
|
||||
configurations.findByName("runtime")?.let {
|
||||
@@ -67,51 +73,52 @@ fun Project.runtimeJarArtifactBy(task: Task, artifactRef: Any, body: Configurabl
|
||||
}
|
||||
}
|
||||
|
||||
fun <T : Jar> Project.runtimeJar(task: T, body: T.() -> Unit = {}): T {
|
||||
fun<T: Jar> Project.runtimeJar(task: T, body: T.() -> Unit = {}): T {
|
||||
extra["runtimeJarTask"] = task
|
||||
tasks.findByName("jar")?.let { defaultJarTask ->
|
||||
removeArtifacts(configurations.getOrCreate("archives"), defaultJarTask)
|
||||
configurations.getOrCreate("archives").artifacts.removeAll { (it as? ArchivePublishArtifact)?.archiveTask?.let { it == defaultJarTask } ?: false }
|
||||
}
|
||||
return task.apply {
|
||||
setupPublicJar(project.the<BasePluginConvention>().archivesBaseName)
|
||||
setDuplicatesStrategy(DuplicatesStrategy.EXCLUDE)
|
||||
duplicatesStrategy = DuplicatesStrategy.EXCLUDE
|
||||
body()
|
||||
project.runtimeJarArtifactBy(this, this)
|
||||
}
|
||||
}
|
||||
|
||||
fun Project.runtimeJar(body: Jar.() -> Unit = {}): Jar = runtimeJar(getOrCreateTask("jar", body), { })
|
||||
fun Project.runtimeJar(taskName: String = "jar", body: Jar.() -> Unit = {}): Jar = runtimeJar(getOrCreateTask(taskName, body))
|
||||
|
||||
fun Project.sourcesJar(sourceSet: String? = "main", body: Jar.() -> Unit = {}): Jar =
|
||||
getOrCreateTask("sourcesJar") {
|
||||
setDuplicatesStrategy(DuplicatesStrategy.EXCLUDE)
|
||||
classifier = "sources"
|
||||
try {
|
||||
if (sourceSet != null) {
|
||||
project.pluginManager.withPlugin("java-base") {
|
||||
from(project.javaPluginConvention().sourceSets[sourceSet].allSource)
|
||||
getOrCreateTask("sourcesJar") {
|
||||
duplicatesStrategy = DuplicatesStrategy.EXCLUDE
|
||||
classifier = "sources"
|
||||
try {
|
||||
if (sourceSet != null) {
|
||||
project.pluginManager.withPlugin("java-base") {
|
||||
from(project.javaPluginConvention().sourceSets[sourceSet].allSource)
|
||||
}
|
||||
}
|
||||
} catch (e: UnknownDomainObjectException) {
|
||||
// skip default sources location
|
||||
}
|
||||
} catch (e: UnknownDomainObjectException) {
|
||||
// skip default sources location
|
||||
body()
|
||||
project.addArtifact("archives", this, this)
|
||||
}
|
||||
body()
|
||||
project.addArtifact("archives", this, this)
|
||||
}
|
||||
|
||||
fun Project.javadocJar(body: Jar.() -> Unit = {}): Jar = getOrCreateTask("javadocJar") {
|
||||
duplicatesStrategy = DuplicatesStrategy.EXCLUDE
|
||||
classifier = "javadoc"
|
||||
tasks.findByName("javadoc")?.let { it as Javadoc }?.takeIf { it.enabled }?.let {
|
||||
dependsOn(it)
|
||||
from(it.destinationDir)
|
||||
}
|
||||
body()
|
||||
project.addArtifact("archives", this, this)
|
||||
}
|
||||
fun Project.javadocJar(body: Jar.() -> Unit = {}): Jar =
|
||||
getOrCreateTask("javadocJar") {
|
||||
duplicatesStrategy = DuplicatesStrategy.EXCLUDE
|
||||
classifier = "javadoc"
|
||||
tasks.findByName("javadoc")?.let{ it as Javadoc }?.takeIf { it.enabled }?.let {
|
||||
dependsOn(it)
|
||||
from(it.destinationDir)
|
||||
}
|
||||
body()
|
||||
project.addArtifact("archives", this, this)
|
||||
}
|
||||
|
||||
|
||||
fun Project.standardPublicJars() {
|
||||
fun Project.standardPublicJars(): Unit {
|
||||
runtimeJar()
|
||||
sourcesJar()
|
||||
javadocJar()
|
||||
@@ -120,10 +127,6 @@ fun Project.standardPublicJars() {
|
||||
fun Project.publish(body: Upload.() -> Unit = {}): Upload {
|
||||
apply<plugins.PublishedKotlinModule>()
|
||||
|
||||
if (artifactsRemovedDiagnosticFlag) {
|
||||
error("`publish()` should be called before removing artifacts typically done in `noDefaultJar()` of `runtimeJar()` calls")
|
||||
}
|
||||
|
||||
afterEvaluate {
|
||||
if (configurations.findByName("classes-dirs") != null)
|
||||
throw GradleException("classesDirsArtifact() is incompatible with publish(), see sources comments for details")
|
||||
@@ -155,12 +158,10 @@ fun Project.ideaPlugin(subdir: String = "lib"): Copy = ideaPlugin(subdir) {
|
||||
}
|
||||
}
|
||||
|
||||
fun Project.dist(
|
||||
targetDir: File? = null,
|
||||
targetName: String? = null,
|
||||
fromTask: Task? = null,
|
||||
body: AbstractCopyTask.() -> Unit = {}
|
||||
): AbstractCopyTask {
|
||||
fun Project.dist(targetDir: File? = null,
|
||||
targetName: String? = null,
|
||||
fromTask: Task? = null,
|
||||
body: AbstractCopyTask.() -> Unit = {}): AbstractCopyTask {
|
||||
val distJarCfg = configurations.getOrCreate("distJar")
|
||||
val distLibDir: File by rootProject.extra
|
||||
val distJarName = targetName ?: (the<BasePluginConvention>().archivesBaseName + ".jar")
|
||||
@@ -190,24 +191,26 @@ fun ConfigurationContainer.getOrCreate(name: String): Configuration = findByName
|
||||
fun Jar.setupPublicJar(baseName: String, classifier: String = "") {
|
||||
val buildNumber = project.rootProject.extra["buildNumber"] as String
|
||||
this.baseName = baseName
|
||||
this.version = buildNumber
|
||||
this.classifier = classifier
|
||||
manifest.attributes.apply {
|
||||
put("Implementation-Vendor", "JetBrains")
|
||||
put("Implementation-Title", baseName)
|
||||
put("Implementation-Version", buildNumber)
|
||||
put("Build-Jdk", System.getProperty("java.version"))
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
fun Project.addArtifact(configuration: Configuration, task: Task, artifactRef: Any, body: ConfigurablePublishArtifact.() -> Unit = {}) {
|
||||
fun<T> Project.addArtifact(configuration: Configuration, task: Task, artifactRef: T, body: ConfigurablePublishArtifact.() -> Unit = {}) {
|
||||
artifacts.add(configuration.name, artifactRef) {
|
||||
builtBy(task)
|
||||
body()
|
||||
}
|
||||
}
|
||||
|
||||
fun Project.addArtifact(configurationName: String, task: Task, artifactRef: Any, body: ConfigurablePublishArtifact.() -> Unit = {}) =
|
||||
addArtifact(configurations.getOrCreate(configurationName), task, artifactRef, body)
|
||||
fun<T> Project.addArtifact(configurationName: String, task: Task, artifactRef: T, body: ConfigurablePublishArtifact.() -> Unit = {}) =
|
||||
addArtifact(configurations.getOrCreate(configurationName), task, artifactRef, body)
|
||||
|
||||
fun Project.cleanArtifacts() {
|
||||
configurations["archives"].artifacts.let { artifacts ->
|
||||
|
||||
@@ -1,65 +0,0 @@
|
||||
/*
|
||||
* Copyright 2000-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license
|
||||
* that can be found in the license/LICENSE.txt file.
|
||||
*/
|
||||
|
||||
package tasks
|
||||
|
||||
import groovy.util.Node
|
||||
import groovy.util.XmlParser
|
||||
import org.gradle.api.DefaultTask
|
||||
import org.gradle.api.Project
|
||||
import org.gradle.api.tasks.Input
|
||||
import org.gradle.api.tasks.InputFile
|
||||
import org.gradle.api.tasks.OutputFile
|
||||
import org.gradle.api.tasks.TaskAction
|
||||
import java.io.File
|
||||
import java.util.*
|
||||
|
||||
|
||||
|
||||
|
||||
open class WriteCopyrightToFile : DefaultTask() {
|
||||
|
||||
@InputFile
|
||||
var path = project.file("${project.rootDir}/.idea/copyright/apache.xml")
|
||||
|
||||
@OutputFile
|
||||
var outputFile: File? = null
|
||||
|
||||
@Input
|
||||
var commented: Boolean = true
|
||||
|
||||
@TaskAction
|
||||
fun write() {
|
||||
if (commented) {
|
||||
outputFile!!.writeText(project.readCopyrightCommented())
|
||||
} else {
|
||||
outputFile!!.writeText(project.readCopyright())
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
fun Project.readCopyright(): String {
|
||||
val file = rootDir.resolve(".idea/copyright/apache.xml")
|
||||
|
||||
assert(file.exists()) {
|
||||
"File $file with copyright not found"
|
||||
}
|
||||
|
||||
|
||||
val xmlParser = XmlParser()
|
||||
val node = xmlParser.parse(file)
|
||||
assert(node.attribute("name") == "CopyrightManager") {
|
||||
"Format changed occasionally?"
|
||||
}
|
||||
|
||||
val copyrightBlock = node.children().filterIsInstance<Node>().single()
|
||||
val noticeNode = copyrightBlock.children().filterIsInstance<Node>().single { it.attribute("name") == "notice" }
|
||||
return noticeNode.attribute("value").toString().replace("$today.year", GregorianCalendar()[Calendar.YEAR].toString())
|
||||
}
|
||||
|
||||
fun Project.readCopyrightCommented(): String {
|
||||
return "/*\n" + readCopyright().prependIndent(" * ") + "\n */"
|
||||
}
|
||||
}
|
||||
@@ -28,18 +28,13 @@ fun Project.commonDep(group: String, artifact: String, vararg suffixesAndClassif
|
||||
}
|
||||
|
||||
fun Project.commonVer(group: String, artifact: String) =
|
||||
when {
|
||||
rootProject.extra.has("versions.$artifact") -> rootProject.extra["versions.$artifact"]
|
||||
rootProject.extra.has("versions.$group") -> rootProject.extra["versions.$group"]
|
||||
else -> throw GradleException("Neither versions.$artifact nor versions.$group is defined in the root project's extra")
|
||||
}
|
||||
when {
|
||||
rootProject.extra.has("versions.$artifact") -> rootProject.extra["versions.$artifact"]
|
||||
rootProject.extra.has("versions.$group") -> rootProject.extra["versions.$group"]
|
||||
else -> throw GradleException("Neither versions.$artifact nor versions.$group is defined in the root project's extra")
|
||||
}
|
||||
|
||||
fun Project.preloadedDeps(
|
||||
vararg artifactBaseNames: String,
|
||||
baseDir: File = File(rootDir, "dependencies"),
|
||||
subdir: String? = null,
|
||||
optional: Boolean = false
|
||||
): ConfigurableFileCollection {
|
||||
fun Project.preloadedDeps(vararg artifactBaseNames: String, baseDir: File = File(rootDir, "dependencies"), subdir: String? = null, optional: Boolean = false): ConfigurableFileCollection {
|
||||
val dir = if (subdir != null) File(baseDir, subdir) else baseDir
|
||||
if (!dir.exists() || !dir.isDirectory) {
|
||||
if (optional) return files()
|
||||
@@ -47,17 +42,9 @@ fun Project.preloadedDeps(
|
||||
}
|
||||
val matchingFiles = dir.listFiles { file -> artifactBaseNames.any { file.matchMaybeVersionedArtifact(it) } }
|
||||
if (matchingFiles == null || matchingFiles.size < artifactBaseNames.size) {
|
||||
throw GradleException(
|
||||
"Not all matching artifacts '${artifactBaseNames.joinToString()}' found in the '$dir' " +
|
||||
"(missing: ${artifactBaseNames.filterNot { request ->
|
||||
matchingFiles.any {
|
||||
it.matchMaybeVersionedArtifact(
|
||||
request
|
||||
)
|
||||
}
|
||||
}.joinToString()};" +
|
||||
" found: ${matchingFiles?.joinToString { it.name }})"
|
||||
)
|
||||
throw GradleException("Not all matching artifacts '${artifactBaseNames.joinToString()}' found in the '$dir' " +
|
||||
"(missing: ${artifactBaseNames.filterNot { request -> matchingFiles.any { it.matchMaybeVersionedArtifact(request) } }.joinToString()};" +
|
||||
" found: ${matchingFiles?.joinToString { it.name }})")
|
||||
}
|
||||
return files(*matchingFiles.map { it.canonicalPath }.toTypedArray())
|
||||
}
|
||||
@@ -70,28 +57,21 @@ fun Project.ideaUltimatePreloadedDeps(vararg artifactBaseNames: String, subdir:
|
||||
|
||||
fun Project.kotlinDep(artifactBaseName: String, version: String): String = "org.jetbrains.kotlin:kotlin-$artifactBaseName:$version"
|
||||
|
||||
val Project.useBootstrapStdlib: Boolean get() =
|
||||
findProperty("jpsBuild")?.toString() == "true"
|
||||
|
||||
fun Project.kotlinStdlib(suffix: String? = null): Any {
|
||||
return if (useBootstrapStdlib)
|
||||
kotlinDep(listOfNotNull("stdlib", suffix).joinToString("-"), bootstrapKotlinVersion)
|
||||
else
|
||||
dependencies.project(listOfNotNull(":kotlin-stdlib", suffix).joinToString("-"))
|
||||
}
|
||||
|
||||
@Deprecated("Depend on the default configuration instead", ReplaceWith("project(name)"))
|
||||
fun DependencyHandler.projectDist(name: String): ProjectDependency = project(name)
|
||||
fun DependencyHandler.projectTests(name: String): ProjectDependency = project(name, configuration = "tests-jar")
|
||||
fun DependencyHandler.projectRuntimeJar(name: String): ProjectDependency = project(name, configuration = "runtimeJar")
|
||||
fun DependencyHandler.projectArchives(name: String): ProjectDependency = project(name, configuration = "archives")
|
||||
fun DependencyHandler.projectClasses(name: String): ProjectDependency = project(name, configuration = "classes-dirs")
|
||||
|
||||
val Project.protobufVersion: String get() = findProperty("versions.protobuf") as String
|
||||
val protobufLiteProject = ":custom-dependencies:protobuf-lite"
|
||||
val protobufRelocatedProject = ":custom-dependencies:protobuf-relocated"
|
||||
fun DependencyHandler.protobufLite(): ProjectDependency =
|
||||
project(protobufLiteProject, configuration = "default").apply { isTransitive = false }
|
||||
val protobufLiteTask = "$protobufLiteProject:prepare"
|
||||
|
||||
val Project.protobufRepo: String
|
||||
get() =
|
||||
"https://teamcity.jetbrains.com/guestAuth/app/rest/builds/buildType:(id:Kotlin_Protobuf),status:SUCCESS,pinned:true,tag:$protobufVersion/artifacts/content/internal/repo/"
|
||||
|
||||
fun Project.protobufLite(): String = "org.jetbrains.kotlin:protobuf-lite:$protobufVersion"
|
||||
fun Project.protobufFull(): String = "org.jetbrains.kotlin:protobuf-relocated:$protobufVersion"
|
||||
fun DependencyHandler.protobufFull(): ProjectDependency =
|
||||
project(protobufRelocatedProject, configuration = "default").apply { isTransitive = false }
|
||||
|
||||
fun File.matchMaybeVersionedArtifact(baseName: String) = name.matches(baseName.toMaybeVersionedJarRegex())
|
||||
|
||||
@@ -114,6 +94,7 @@ private fun String.toMaybeVersionedJarRegex(): Regex {
|
||||
}
|
||||
|
||||
|
||||
|
||||
fun Project.firstFromJavaHomeThatExists(vararg paths: String, jdkHome: File = File(this.property("JDK_18") as String)): File? =
|
||||
paths.map { File(jdkHome, it) }.firstOrNull { it.exists() }.also {
|
||||
if (it == null)
|
||||
@@ -123,9 +104,6 @@ fun Project.firstFromJavaHomeThatExists(vararg paths: String, jdkHome: File = Fi
|
||||
fun Project.toolsJar(jdkHome: File = File(this.property("JDK_18") as String)): File? =
|
||||
firstFromJavaHomeThatExists("lib/tools.jar", jdkHome = jdkHome)
|
||||
|
||||
val compilerManifestClassPath
|
||||
get() = "annotations-13.0.jar kotlin-stdlib.jar kotlin-reflect.jar kotlin-script-runtime.jar trove4j.jar"
|
||||
|
||||
object EmbeddedComponents {
|
||||
val CONFIGURATION_NAME = "embeddedComponents"
|
||||
}
|
||||
@@ -145,4 +123,4 @@ fun AbstractCopyTask.fromEmbeddedComponents() {
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -18,6 +18,7 @@ val packagesToRelocate =
|
||||
"org.jdom",
|
||||
"org.picocontainer",
|
||||
"org.jline",
|
||||
"gnu",
|
||||
"org.fusesource",
|
||||
"kotlinx.coroutines")
|
||||
|
||||
@@ -64,7 +65,7 @@ private fun Project.compilerShadowJar(taskName: String, body: ShadowJar.() -> Un
|
||||
|
||||
return task<ShadowJar>(taskName) {
|
||||
destinationDir = File(buildDir, "libs")
|
||||
setDuplicatesStrategy(DuplicatesStrategy.EXCLUDE)
|
||||
duplicatesStrategy = DuplicatesStrategy.EXCLUDE
|
||||
from(compilerJar)
|
||||
body()
|
||||
}
|
||||
@@ -96,7 +97,7 @@ fun Project.embeddableCompilerDummyForDependenciesRewriting(taskName: String = "
|
||||
|
||||
return task<ShadowJar>(taskName) {
|
||||
destinationDir = File(buildDir, "libs")
|
||||
setDuplicatesStrategy(DuplicatesStrategy.EXCLUDE)
|
||||
duplicatesStrategy = DuplicatesStrategy.EXCLUDE
|
||||
from(compilerDummyJar)
|
||||
configureEmbeddableCompilerRelocation(withJavaxInject = false)
|
||||
body()
|
||||
@@ -118,7 +119,7 @@ fun Project.rewriteDepsToShadedJar(originalJarTask: Jar, shadowJarTask: Jar, bod
|
||||
// which leads to the content of that JAR being excluded as well:
|
||||
exclude { it.file == compilerDummyJarFile }
|
||||
|
||||
classifier = ""
|
||||
classifier = null
|
||||
body()
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,136 +0,0 @@
|
||||
/*
|
||||
* Copyright 2010-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license
|
||||
* that can be found in the license/LICENSE.txt file.
|
||||
*/
|
||||
|
||||
package idea
|
||||
|
||||
import groovy.lang.Closure
|
||||
import org.gradle.api.Action
|
||||
import org.gradle.api.Transformer
|
||||
import org.gradle.api.file.ContentFilterable
|
||||
import org.gradle.api.file.DuplicatesStrategy
|
||||
import org.gradle.api.file.FileCopyDetails
|
||||
import org.gradle.api.file.RelativePath
|
||||
import java.io.File
|
||||
import java.io.FilterReader
|
||||
import java.io.InputStream
|
||||
import java.io.OutputStream
|
||||
|
||||
class DistCopyDetailsMock(val context: DistModelBuildContext, srcName: String) : FileCopyDetails {
|
||||
private var relativePath = RelativePath(true, srcName)
|
||||
lateinit var lastAction: Action<in FileCopyDetails>
|
||||
|
||||
class E : Exception() {
|
||||
// skip stack trace filling
|
||||
override fun fillInStackTrace(): Throwable = this
|
||||
}
|
||||
|
||||
fun logUnsupported(methodName: String): Nothing {
|
||||
context.logUnsupported("COPY ACTION FileCopyDetails mock: $methodName", lastAction)
|
||||
throw E()
|
||||
}
|
||||
|
||||
override fun setDuplicatesStrategy(strategy: DuplicatesStrategy) {
|
||||
logUnsupported("setDuplicatesStrategy")
|
||||
}
|
||||
|
||||
override fun getSourcePath(): String {
|
||||
logUnsupported("getSourcePath")
|
||||
}
|
||||
|
||||
override fun getName(): String {
|
||||
logUnsupported("getName")
|
||||
}
|
||||
|
||||
override fun getSize(): Long {
|
||||
logUnsupported("getSize")
|
||||
}
|
||||
|
||||
override fun getRelativePath(): RelativePath = relativePath
|
||||
|
||||
override fun getRelativeSourcePath(): RelativePath {
|
||||
logUnsupported("getRelativeSourcePath")
|
||||
}
|
||||
|
||||
override fun expand(properties: MutableMap<String, *>): ContentFilterable {
|
||||
logUnsupported("expand")
|
||||
}
|
||||
|
||||
override fun getMode(): Int {
|
||||
logUnsupported("getMode")
|
||||
}
|
||||
|
||||
override fun getSourceName(): String {
|
||||
logUnsupported("getSourceName")
|
||||
}
|
||||
|
||||
override fun filter(properties: MutableMap<String, *>, filterType: Class<out FilterReader>): ContentFilterable {
|
||||
logUnsupported("filter")
|
||||
}
|
||||
|
||||
override fun filter(filterType: Class<out FilterReader>): ContentFilterable {
|
||||
logUnsupported("filter")
|
||||
}
|
||||
|
||||
override fun filter(closure: Closure<*>): ContentFilterable {
|
||||
logUnsupported("filter")
|
||||
}
|
||||
|
||||
override fun filter(transformer: Transformer<String, String>): ContentFilterable {
|
||||
logUnsupported("filter")
|
||||
}
|
||||
|
||||
override fun getFile(): File {
|
||||
logUnsupported("getFile")
|
||||
}
|
||||
|
||||
override fun setMode(mode: Int) {
|
||||
logUnsupported("setMode")
|
||||
}
|
||||
|
||||
override fun copyTo(output: OutputStream) {
|
||||
logUnsupported("copyTo")
|
||||
}
|
||||
|
||||
override fun copyTo(target: File): Boolean {
|
||||
logUnsupported("copyTo")
|
||||
}
|
||||
|
||||
override fun open(): InputStream {
|
||||
logUnsupported("open")
|
||||
}
|
||||
|
||||
override fun setRelativePath(path: RelativePath) {
|
||||
relativePath = path
|
||||
}
|
||||
|
||||
override fun getPath(): String {
|
||||
logUnsupported("getPath")
|
||||
}
|
||||
|
||||
override fun isDirectory(): Boolean {
|
||||
logUnsupported("isDirectory")
|
||||
}
|
||||
|
||||
override fun getDuplicatesStrategy(): DuplicatesStrategy {
|
||||
logUnsupported("getDuplicatesStrategy")
|
||||
}
|
||||
|
||||
override fun setName(name: String) {
|
||||
logUnsupported("setName")
|
||||
}
|
||||
|
||||
override fun getLastModified(): Long {
|
||||
logUnsupported("getLastModified")
|
||||
}
|
||||
|
||||
override fun setPath(path: String) {
|
||||
logUnsupported("setPath")
|
||||
}
|
||||
|
||||
override fun exclude() {
|
||||
logUnsupported("exclude")
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,96 +0,0 @@
|
||||
package org.jetbrains.kotlin.buildUtils.idea
|
||||
|
||||
import org.gradle.api.Action
|
||||
import org.gradle.api.file.FileCopyDetails
|
||||
import java.io.File
|
||||
import java.io.PrintWriter
|
||||
|
||||
|
||||
class DistVFile(
|
||||
val parent: DistVFile?,
|
||||
val name: String,
|
||||
val file: File = File(parent!!.file, name)
|
||||
) {
|
||||
val child = mutableMapOf<String, DistVFile>()
|
||||
|
||||
val contents = mutableSetOf<DistContentElement>()
|
||||
|
||||
override fun toString(): String = name
|
||||
|
||||
val hasContents: Boolean = file.exists() || contents.isNotEmpty()
|
||||
|
||||
fun relativePath(path: String): DistVFile {
|
||||
val pathComponents = path.split(File.separatorChar)
|
||||
return pathComponents.fold(this) { parent: DistVFile, childName: String ->
|
||||
try {
|
||||
parent.getOrCreateChild(childName)
|
||||
} catch (t: Throwable) {
|
||||
throw Exception("Error while processing path `$path`, components: `$pathComponents`, element: `$childName`", t)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
fun getOrCreateChild(name: String): DistVFile = child.getOrPut(name) {
|
||||
DistVFile(this, name)
|
||||
}
|
||||
|
||||
fun addContents(contents: DistContentElement) {
|
||||
this.contents.add(contents)
|
||||
}
|
||||
|
||||
fun removeAll(matcher: (String) -> Boolean) {
|
||||
child.keys.filter(matcher).forEach {
|
||||
child.remove(it)
|
||||
}
|
||||
}
|
||||
|
||||
fun printTree(p: PrintWriter, depth: String = "") {
|
||||
p.println("$depth${file.path} ${if (file.exists()) "EXISTED" else ""}:")
|
||||
contents.forEach {
|
||||
p.println("$depth $it")
|
||||
}
|
||||
child.values.forEach {
|
||||
it.printTree(p, "$depth ")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
sealed class DistContentElement()
|
||||
|
||||
class DistCopy(
|
||||
target: DistVFile,
|
||||
val src: DistVFile,
|
||||
val customTargetName: String? = null,
|
||||
val copyActions: Collection<Action<in FileCopyDetails>> = listOf()
|
||||
) : DistContentElement() {
|
||||
init {
|
||||
target.addContents(this)
|
||||
}
|
||||
|
||||
override fun toString(): String =
|
||||
"COPY OF ${src.file}" +
|
||||
if (customTargetName != null) " -> $customTargetName" else ""
|
||||
}
|
||||
|
||||
class DistModuleOutput(parent: DistVFile, val projectId: String) : DistContentElement() {
|
||||
init {
|
||||
parent.addContents(this)
|
||||
}
|
||||
|
||||
override fun toString(): String = "COMPILE OUTPUT $projectId"
|
||||
|
||||
override fun equals(other: Any?): Boolean {
|
||||
if (this === other) return true
|
||||
if (javaClass != other?.javaClass) return false
|
||||
|
||||
other as DistModuleOutput
|
||||
|
||||
if (projectId != other.projectId) return false
|
||||
|
||||
return true
|
||||
}
|
||||
|
||||
override fun hashCode(): Int {
|
||||
return projectId.hashCode()
|
||||
}
|
||||
}
|
||||
@@ -1,76 +0,0 @@
|
||||
package idea
|
||||
|
||||
import org.gradle.api.Action
|
||||
import org.gradle.api.file.FileCopyDetails
|
||||
import org.jetbrains.kotlin.buildUtils.idea.DistVFile
|
||||
import org.jetbrains.kotlin.buildUtils.idea.logger
|
||||
|
||||
/**
|
||||
* Used for logging and nesting properties
|
||||
*/
|
||||
class DistModelBuildContext(
|
||||
val parent: DistModelBuildContext?,
|
||||
val kind: String,
|
||||
val title: String,
|
||||
val report: Appendable? = parent?.report,
|
||||
val shade: Boolean = parent?.shade ?: false
|
||||
) {
|
||||
val logEnabled = false
|
||||
val allCopyActions = mutableSetOf<Action<in FileCopyDetails>>()
|
||||
|
||||
var destination: DistVFile? = parent?.destination // todo: don't nest destination between tasks visiting
|
||||
val logPrefix: String = if (parent != null) "${parent.logPrefix}-" else ""
|
||||
|
||||
init {
|
||||
report?.appendln(toString())
|
||||
if (parent != null) {
|
||||
allCopyActions.addAll(parent.allCopyActions)
|
||||
}
|
||||
}
|
||||
|
||||
fun log(kind: String, title: String = "", print: Boolean = false) {
|
||||
if (logEnabled) {
|
||||
report?.appendln("$logPrefix- $kind $title")
|
||||
if (print) {
|
||||
logger.error("$kind $title, while visiting:")
|
||||
var p = this
|
||||
while (p.parent != null) {
|
||||
logger.error(" - ${p.kind} ${p.title}")
|
||||
p = p.parent!!
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
fun logUnsupported(kind: String, obj: Any? = null) {
|
||||
val objInfo = if (obj != null) {
|
||||
val javaClass = obj.javaClass
|
||||
val superclass = javaClass.superclass as Class<*>
|
||||
"$obj [$javaClass extends $superclass implements ${javaClass.interfaces.map { it.canonicalName }}]"
|
||||
} else ""
|
||||
|
||||
log("UNSUPPORTED $kind", objInfo, true)
|
||||
}
|
||||
|
||||
override fun toString() = "$logPrefix $kind $title"
|
||||
|
||||
inline fun child(
|
||||
kind: String,
|
||||
title: String = "",
|
||||
shade: Boolean = false,
|
||||
body: (DistModelBuildContext) -> Unit = {}
|
||||
): DistModelBuildContext {
|
||||
val result = DistModelBuildContext(this, kind, title, shade = shade)
|
||||
body(result)
|
||||
return result
|
||||
}
|
||||
|
||||
fun addCopyActions(allCopyActions: Collection<Action<in FileCopyDetails>>) {
|
||||
allCopyActions.forEach {
|
||||
log("COPY ACTION", "$it")
|
||||
}
|
||||
|
||||
this.allCopyActions.addAll(allCopyActions)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,315 +0,0 @@
|
||||
/*
|
||||
* Copyright 2010-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license
|
||||
* that can be found in the license/LICENSE.txt file.
|
||||
*/
|
||||
|
||||
package org.jetbrains.kotlin.buildUtils.idea
|
||||
|
||||
import IntelliJInstrumentCodeTask
|
||||
import com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar
|
||||
import idea.DistCopyDetailsMock
|
||||
import idea.DistModelBuildContext
|
||||
import org.codehaus.groovy.runtime.GStringImpl
|
||||
import org.gradle.api.Project
|
||||
import org.gradle.api.Task
|
||||
import org.gradle.api.artifacts.Configuration
|
||||
import org.gradle.api.file.FileCollection
|
||||
import org.gradle.api.file.FileVisitDetails
|
||||
import org.gradle.api.file.FileVisitor
|
||||
import org.gradle.api.file.SourceDirectorySet
|
||||
import org.gradle.api.internal.file.*
|
||||
import org.gradle.api.internal.file.archive.ZipFileTree
|
||||
import org.gradle.api.internal.file.collections.*
|
||||
import org.gradle.api.internal.file.copy.CopySpecInternal
|
||||
import org.gradle.api.internal.file.copy.DefaultCopySpec
|
||||
import org.gradle.api.internal.file.copy.DestinationRootCopySpec
|
||||
import org.gradle.api.internal.file.copy.SingleParentCopySpec
|
||||
import org.gradle.api.tasks.AbstractCopyTask
|
||||
import org.gradle.api.tasks.Copy
|
||||
import org.gradle.api.tasks.SourceSetOutput
|
||||
import org.gradle.api.tasks.Sync
|
||||
import org.gradle.api.tasks.bundling.AbstractArchiveTask
|
||||
import org.gradle.api.tasks.compile.AbstractCompile
|
||||
import org.gradle.api.tasks.util.PatternSet
|
||||
import org.gradle.internal.file.PathToFileResolver
|
||||
import org.gradle.jvm.tasks.Jar
|
||||
import java.io.File
|
||||
import java.io.PrintWriter
|
||||
import java.util.concurrent.Callable
|
||||
|
||||
open class DistModelBuilder(val rootProject: Project, pw: PrintWriter) {
|
||||
val rootCtx = DistModelBuildContext(null, "ROOT", "dist", pw)
|
||||
val visited = mutableMapOf<Task, DistModelBuildContext>()
|
||||
val vfsRoot = DistVFile(null, "<root>", File(""))
|
||||
val refs = mutableSetOf<DistVFile>()
|
||||
|
||||
fun visitInstrumentTask(it: IntelliJInstrumentCodeTask): DistModelBuildContext = visited.getOrPut(it) {
|
||||
val ctx = rootCtx.child("INSTRUMENT", it.path)
|
||||
ctx.setDest(it.output!!.path)
|
||||
processSourcePath(it.originalClassesDirs, ctx)
|
||||
val dest = ctx.destination
|
||||
if (dest != null) {
|
||||
DistModuleOutput(dest, it.project.path)
|
||||
}
|
||||
|
||||
ctx
|
||||
}
|
||||
|
||||
fun visitCompileTask(it: AbstractCompile): DistModelBuildContext = visited.getOrPut(it) {
|
||||
val ctx = rootCtx.child("COMPILE", it.path)
|
||||
ctx.setDest(it.destinationDir.path)
|
||||
val dest = ctx.destination
|
||||
if (dest != null) DistModuleOutput(dest, it.project.path)
|
||||
else ctx.logUnsupported("Cannot add contents: destination is unknown", it)
|
||||
|
||||
ctx
|
||||
}
|
||||
|
||||
fun visitCopyTask(
|
||||
copy: AbstractCopyTask,
|
||||
shade: Boolean = false
|
||||
): DistModelBuildContext = visited.getOrPut(copy) {
|
||||
val context = rootCtx.child("COPY", copy.path, shade)
|
||||
|
||||
|
||||
val rootSpec = copy.rootSpec
|
||||
|
||||
when (copy) {
|
||||
is Copy -> context.setDest(copy.destinationDir.path)
|
||||
is Sync -> context.setDest(copy.destinationDir.path)
|
||||
is AbstractArchiveTask -> context.setDest(copy.archivePath.path)
|
||||
}
|
||||
|
||||
when (copy) {
|
||||
is ShadowJar -> copy.configurations.forEach {
|
||||
processSourcePath(it, context)
|
||||
}
|
||||
}
|
||||
|
||||
processCopySpec(rootSpec, context)
|
||||
|
||||
|
||||
context
|
||||
}
|
||||
|
||||
fun processCopySpec(spec: CopySpecInternal, ctx: DistModelBuildContext) {
|
||||
spec.children.forEach {
|
||||
when (it) {
|
||||
is DestinationRootCopySpec -> ctx.child("DESTINATION ROOT COPY SPEC") { newCtx ->
|
||||
newCtx.setDest(getRelativePath(it.destinationDir.path))
|
||||
processCopySpec(it, newCtx)
|
||||
}
|
||||
is DefaultCopySpec -> ctx.child("DEFAULT COPY SPEC") { newCtx ->
|
||||
val buildRootResolver = it.buildRootResolver()
|
||||
ctx.addCopyActions(buildRootResolver.allCopyActions)
|
||||
newCtx.setDest(buildRootResolver.destPath.getFile(ctx.destination!!.file).path)
|
||||
processCopySpec(it, newCtx)
|
||||
it.includes
|
||||
|
||||
newCtx.child("SINGE PARENT COPY SPEC") { child ->
|
||||
it.sourcePaths.forEach {
|
||||
processSourcePath(it, child)
|
||||
}
|
||||
}
|
||||
}
|
||||
is SingleParentCopySpec -> ctx.child("OTHER SINGE PARENT COPY SPEC") { child ->
|
||||
it.sourcePaths.forEach {
|
||||
processSourcePath(it, child)
|
||||
}
|
||||
}
|
||||
is CopySpecInternal -> processCopySpec(it, ctx)
|
||||
else -> ctx.logUnsupported("CopySpec", spec)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
fun processSourcePath(sourcePath: Any?, ctx: DistModelBuildContext) {
|
||||
when {
|
||||
sourcePath == null -> Unit
|
||||
sourcePath is Jar -> ctx.child("JAR") { child ->
|
||||
child.addCopyOf(sourcePath.archivePath.path)
|
||||
}
|
||||
sourcePath is SourceSetOutput -> ctx.child("COMPILE") { child ->
|
||||
sourcePath.classesDirs.files.forEach {
|
||||
child.addCopyOf(it.path)
|
||||
}
|
||||
}
|
||||
sourcePath is Configuration -> {
|
||||
ctx.child("CONFIGURATION") { child ->
|
||||
sourcePath.resolve().forEach {
|
||||
child.addCopyOf(it.path)
|
||||
}
|
||||
}
|
||||
}
|
||||
sourcePath is SourceDirectorySet -> {
|
||||
ctx.child("SOURCES") { child ->
|
||||
sourcePath.srcDirs.forEach {
|
||||
child.addCopyOf(it.path)
|
||||
}
|
||||
}
|
||||
}
|
||||
sourcePath is MinimalFileSet -> ctx.child("MINIMAL FILE SET (${sourcePath.javaClass.simpleName})") { child ->
|
||||
sourcePath.files.forEach {
|
||||
processSourcePath(it, child)
|
||||
}
|
||||
}
|
||||
sourcePath is MinimalFileTree -> ctx.child("MINIMAL FILE TREE (${sourcePath.javaClass.simpleName})") { child ->
|
||||
sourcePath.visit(object : FileVisitor {
|
||||
override fun visitDir(dirDetails: FileVisitDetails) {
|
||||
processSourcePath(dirDetails.file, child)
|
||||
}
|
||||
|
||||
override fun visitFile(fileDetails: FileVisitDetails) {
|
||||
processSourcePath(fileDetails.file, child)
|
||||
}
|
||||
})
|
||||
}
|
||||
sourcePath is FileTreeAdapter && sourcePath.tree is GeneratedSingletonFileTree -> ctx.child("FILE TREE ADAPTER OF MAP FILE TREE (${sourcePath.javaClass.simpleName})") { child ->
|
||||
sourcePath.visitContents(object : FileCollectionResolveContext {
|
||||
override fun add(element: Any): FileCollectionResolveContext {
|
||||
processSourcePath(element, child)
|
||||
return this
|
||||
}
|
||||
|
||||
override fun newContext(): ResolvableFileCollectionResolveContext {
|
||||
error("not supported")
|
||||
}
|
||||
|
||||
override fun push(fileResolver: PathToFileResolver): FileCollectionResolveContext {
|
||||
return this
|
||||
}
|
||||
})
|
||||
}
|
||||
sourcePath is CompositeFileCollection -> ctx.child("COMPOSITE FILE COLLECTION") { child ->
|
||||
sourcePath.visitLeafCollections(object : FileCollectionLeafVisitor {
|
||||
override fun visitFileTree(file: File, patternSet: PatternSet) {
|
||||
child.child("FILE TREE") {
|
||||
it.addCopyOf(file.path)
|
||||
}
|
||||
}
|
||||
|
||||
override fun visitGenericFileTree(fileTree: FileTreeInternal) {
|
||||
child.child("TREE") {
|
||||
processSourcePath(fileTree, it)
|
||||
}
|
||||
}
|
||||
|
||||
override fun visitCollection(fileCollection: FileCollectionInternal) {
|
||||
processSourcePath(fileCollection, child)
|
||||
}
|
||||
})
|
||||
}
|
||||
sourcePath is FileTreeAdapter && sourcePath.tree is ZipFileTree -> ctx.child("ZIP FILE TREE ADAPTER") { child ->
|
||||
val tree = sourcePath.tree
|
||||
val field = tree.javaClass.declaredFields.find { it.name == "zipFile" }!!
|
||||
field.isAccessible = true
|
||||
val zipFile = field.get(tree) as File
|
||||
|
||||
child.addCopyOf(zipFile.path)
|
||||
}
|
||||
sourcePath is FileTreeInternal -> ctx.child("FILE TREE INTERNAL") { child ->
|
||||
// todo: preserve or warn about filtering
|
||||
sourcePath.visitTreeOrBackingFile(object : FileVisitor {
|
||||
override fun visitFile(fileDetails: FileVisitDetails) {
|
||||
child.addCopyOf(fileDetails.file.path)
|
||||
}
|
||||
|
||||
override fun visitDir(dirDetails: FileVisitDetails) {
|
||||
child.addCopyOf(dirDetails.file.path)
|
||||
}
|
||||
})
|
||||
}
|
||||
sourcePath is FileCollection -> ctx.child("OTHER FILE COLLECTION (${sourcePath.javaClass})") { child ->
|
||||
try {
|
||||
sourcePath.files.forEach {
|
||||
child.addCopyOf(it.path)
|
||||
}
|
||||
} catch (t: Throwable) {
|
||||
child.logUnsupported("FILE COLLECTION (${t.message})", sourcePath)
|
||||
}
|
||||
}
|
||||
sourcePath is String || sourcePath is GStringImpl -> ctx.child("STRING") { child ->
|
||||
child.addCopyOf(sourcePath.toString())
|
||||
}
|
||||
sourcePath is Callable<*> -> ctx.child("CALLABLE") { child ->
|
||||
processSourcePath(sourcePath.call(), child)
|
||||
}
|
||||
sourcePath is Collection<*> -> ctx.child("COLLECTION") { child ->
|
||||
sourcePath.forEach {
|
||||
processSourcePath(it, child)
|
||||
}
|
||||
}
|
||||
sourcePath is Copy -> ctx.child("COPY OUTPUT") { child ->
|
||||
val src = visitCopyTask(sourcePath).destination
|
||||
if (src != null) child.addCopyOf(src)
|
||||
// else it is added to `it`, because destination is inhereted by context
|
||||
}
|
||||
sourcePath is File -> ctx.child("FILE ${sourcePath.path}") { child ->
|
||||
child.addCopyOf(sourcePath.path)
|
||||
}
|
||||
else -> ctx.logUnsupported("SOURCE PATH", sourcePath)
|
||||
}
|
||||
}
|
||||
|
||||
inline fun DistModelBuildContext.addCopyOf(
|
||||
src: String,
|
||||
body: (src: DistVFile, target: DistVFile) -> Unit = { _, _ -> Unit }
|
||||
) {
|
||||
addCopyOf(requirePath(src), body)
|
||||
}
|
||||
|
||||
fun DistModelBuildContext.transformName(srcName: String): String? {
|
||||
val detailsMock = DistCopyDetailsMock(this, srcName)
|
||||
allCopyActions.forEach {
|
||||
detailsMock.lastAction = it
|
||||
try {
|
||||
it.execute(detailsMock)
|
||||
} catch (t: DistCopyDetailsMock.E) {
|
||||
// skip
|
||||
}
|
||||
}
|
||||
val name1 = detailsMock.relativePath.lastName
|
||||
return if (name1.endsWith(".jar")) transformJarName(name1) else name1
|
||||
}
|
||||
|
||||
// todo: investigate why allCopyActions not working
|
||||
open fun transformJarName(name: String): String = name
|
||||
|
||||
inline fun DistModelBuildContext.addCopyOf(
|
||||
src: DistVFile,
|
||||
body: (src: DistVFile, target: DistVFile) -> Unit = { _, _ -> Unit }
|
||||
) {
|
||||
|
||||
val destination = destination
|
||||
if (destination != null) {
|
||||
body(src, destination)
|
||||
val customTargetName = transformName(src.name)
|
||||
DistCopy(destination, src, customTargetName)
|
||||
log("+DistCopy", "${getRelativePath(src.file.path)} -> ${getRelativePath(destination.file.path)}/$customTargetName")
|
||||
} else logUnsupported("Cannot add copy of `$src`: destination is unknown")
|
||||
}
|
||||
|
||||
fun DistModelBuildContext.setDest(path: String) {
|
||||
destination = vfsRoot.relativePath(path)
|
||||
log("INTO", getRelativePath(path))
|
||||
}
|
||||
|
||||
fun checkRefs() {
|
||||
refs.forEach {
|
||||
if (!it.hasContents && it.contents.isEmpty() && it.file.path.contains("${File.pathSeparator}build${File.pathSeparator}")) {
|
||||
logger.error("UNRESOLVED ${it.file}")
|
||||
it.contents.forEach {
|
||||
logger.error("+ ${it}")
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
fun getRelativePath(path: String) = path.replace(rootProject.projectDir.path, "$")
|
||||
|
||||
fun requirePath(targetPath: String): DistVFile {
|
||||
val target = vfsRoot.relativePath(targetPath)
|
||||
if (!File(targetPath).exists()) refs.add(target)
|
||||
return target
|
||||
}
|
||||
}
|
||||
@@ -1,67 +0,0 @@
|
||||
/*
|
||||
* Copyright 2010-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license
|
||||
* that can be found in the license/LICENSE.txt file.
|
||||
*/
|
||||
|
||||
package org.jetbrains.kotlin.buildUtils.idea
|
||||
|
||||
class DistModelFlattener() {
|
||||
val stack = mutableSetOf<DistVFile>()
|
||||
val common = mutableSetOf<DistVFile>()
|
||||
|
||||
fun DistVFile.flatten(): DistVFile {
|
||||
val new = DistVFile(parent, name, file)
|
||||
copyFlattenedContentsTo(new)
|
||||
return new
|
||||
}
|
||||
|
||||
private fun DistVFile.copyFlattenedContentsTo(new: DistVFile, inJar: Boolean = false) {
|
||||
if (!stack.add(this)) {
|
||||
return
|
||||
}
|
||||
|
||||
try {
|
||||
contents.forEach {
|
||||
if (!shouldSkip(new, it)) {
|
||||
when (it) {
|
||||
is DistCopy -> {
|
||||
val srcName = it.customTargetName ?: it.src.name
|
||||
if (it.src.file.exists()) {
|
||||
DistCopy(new, it.src, srcName)
|
||||
}
|
||||
|
||||
if (!inJar && srcName.endsWith(".jar")) {
|
||||
val newChild = new.getOrCreateChild(srcName)
|
||||
it.src.copyFlattenedContentsTo(newChild, inJar = true)
|
||||
} else {
|
||||
it.src.copyFlattenedContentsTo(new, inJar)
|
||||
}
|
||||
}
|
||||
is DistModuleOutput -> DistModuleOutput(new, it.projectId)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
child.values.forEach { oldChild ->
|
||||
if (inJar) {
|
||||
val newChild =
|
||||
if (oldChild.name.endsWith(".jar")) new
|
||||
else new.getOrCreateChild(oldChild.name)
|
||||
oldChild.copyFlattenedContentsTo(newChild, inJar = true)
|
||||
} else {
|
||||
val newChild = new.getOrCreateChild(oldChild.name)
|
||||
oldChild.copyFlattenedContentsTo(newChild)
|
||||
}
|
||||
}
|
||||
} finally {
|
||||
stack.remove(this)
|
||||
}
|
||||
}
|
||||
|
||||
private fun shouldSkip(
|
||||
new: DistVFile,
|
||||
content: DistContentElement
|
||||
) =
|
||||
new.name == "kotlin-jps-plugin.jar" && content is DistCopy && content.customTargetName == "kotlin-compiler-runner.jar"
|
||||
}
|
||||
|
||||
@@ -1,61 +0,0 @@
|
||||
/*
|
||||
* Copyright 2010-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license
|
||||
* that can be found in the license/LICENSE.txt file.
|
||||
*/
|
||||
|
||||
package org.jetbrains.kotlin.buildUtils.idea
|
||||
|
||||
import org.gradle.api.Project
|
||||
import org.gradle.plugins.ide.idea.model.IdeaModel
|
||||
import org.jetbrains.gradle.ext.ArtifactType
|
||||
import org.jetbrains.gradle.ext.RecursiveArtifact
|
||||
|
||||
class DistModelIdeaArtifactBuilder(val rootProject: Project) {
|
||||
fun RecursiveArtifact.addFiles(vFile: DistVFile, inJar: Boolean = false) {
|
||||
val files = mutableSetOf<String>()
|
||||
|
||||
vFile.contents.forEach {
|
||||
when (it) {
|
||||
is DistCopy -> {
|
||||
val file = it.src.file
|
||||
when {
|
||||
inJar && file.name.endsWith(".jar") -> extractedDirectory(file.path)
|
||||
file.isDirectory -> {
|
||||
files.add(file.name)
|
||||
directoryContent(file.path)
|
||||
}
|
||||
else -> {
|
||||
files.add(file.name)
|
||||
file(file.path)
|
||||
}
|
||||
}
|
||||
}
|
||||
is DistModuleOutput -> {
|
||||
val name = it.ideaModuleName
|
||||
|
||||
if (name.result != null) moduleOutput(name.result + "_main")
|
||||
else logger.warn("Cannot find idea module name for project `${it.projectId}`: ${name.error}")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
vFile.child.values.forEach {
|
||||
if (it.name !in files) {
|
||||
when {
|
||||
it.name.endsWith(".jar") -> archive(it.name).addFiles(it, true)
|
||||
else -> directory(it.name).addFiles(it, inJar)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
class Result<T: Any>(val result: T? = null, val error: String? = null)
|
||||
|
||||
val DistModuleOutput.ideaModuleName: Result<String>
|
||||
get() {
|
||||
val findProject = rootProject.findProject(projectId) ?: return Result(error = "cannot find gradle project $projectId")
|
||||
val idea = findProject.extensions?.findByName("idea") as? IdeaModel ?: return Result(error = "cannot find idea model for gradle project $projectId")
|
||||
val name = idea.module?.name ?: return Result(error = "idea model for project $projectId has no module name")
|
||||
return Result(name)
|
||||
}
|
||||
}
|
||||
@@ -1,130 +0,0 @@
|
||||
/*
|
||||
* Copyright 2010-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license
|
||||
* that can be found in the license/LICENSE.txt file.
|
||||
*/
|
||||
|
||||
package org.jetbrains.kotlin.buildUtils.idea
|
||||
|
||||
import IntelliJInstrumentCodeTask
|
||||
import org.gradle.api.NamedDomainObjectContainer
|
||||
import org.gradle.api.Project
|
||||
import org.gradle.api.tasks.AbstractCopyTask
|
||||
import org.gradle.api.tasks.compile.AbstractCompile
|
||||
import org.jetbrains.gradle.ext.TopLevelArtifact
|
||||
import org.slf4j.LoggerFactory
|
||||
import java.io.File
|
||||
|
||||
/**
|
||||
* Temporary solution for configuring IDEA artifacts based on Gradle copy tasks configurations.
|
||||
* This should be replaced with DSL that produces both Gradle copy tasks and IDEA artifacts configuration.
|
||||
*
|
||||
* TODO: remove this package when DSL described above will be implemented
|
||||
*/
|
||||
fun generateIdeArtifacts(rootProject: Project, artifactsFactory: NamedDomainObjectContainer<TopLevelArtifact>) {
|
||||
val reportsDir = File(path(rootProject.buildDir.path, "reports", "idea-artifacts-cfg"))
|
||||
reportsDir.mkdirs()
|
||||
val projectDir = rootProject.projectDir
|
||||
|
||||
File(reportsDir, "01-visitor.report.txt").printWriter().use { visitorReport ->
|
||||
val modelBuilder = object : DistModelBuilder(rootProject, visitorReport) {
|
||||
// todo: investigate why allCopyActions not working
|
||||
override fun transformJarName(name: String): String {
|
||||
val name1 = name.replace(Regex("-${java.util.regex.Pattern.quote(rootProject.version.toString())}"), "")
|
||||
|
||||
val name2 = when (name1) {
|
||||
"kotlin-runtime-common.jar" -> "kotlin-runtime.jar"
|
||||
"kotlin-compiler-before-proguard.jar" -> "kotlin-compiler.jar"
|
||||
"kotlin-main-kts-before-proguard.jar" -> "kotlin-main-kts.jar"
|
||||
"kotlin-allopen-compiler-plugin.jar" -> "allopen-compiler-plugin.jar"
|
||||
"kotlin-noarg-compiler-plugin.jar" -> "noarg-compiler-plugin.jar"
|
||||
"kotlin-sam-with-receiver-compiler-plugin.jar" -> "sam-with-receiver-compiler-plugin.jar"
|
||||
"kotlin-android-extensions-runtime.jar" -> "android-extensions-runtime.jar"
|
||||
else -> name1
|
||||
}
|
||||
|
||||
val name3 = name2.removePrefix("dist-")
|
||||
|
||||
return name3
|
||||
}
|
||||
}
|
||||
|
||||
fun visitAllTasks(project: Project) {
|
||||
project.tasks.forEach {
|
||||
try {
|
||||
when {
|
||||
it is AbstractCopyTask -> modelBuilder.visitCopyTask(it)
|
||||
it is AbstractCompile -> modelBuilder.visitCompileTask(it)
|
||||
it is IntelliJInstrumentCodeTask -> modelBuilder.visitInstrumentTask(it)
|
||||
it.name == "stripMetadata" -> {
|
||||
modelBuilder.rootCtx.log(
|
||||
"STRIP METADATA",
|
||||
"${it.inputs.files.singleFile} -> ${it.outputs.files.singleFile}"
|
||||
)
|
||||
|
||||
DistCopy(
|
||||
modelBuilder.requirePath(it.outputs.files.singleFile.path),
|
||||
modelBuilder.requirePath(it.inputs.files.singleFile.path)
|
||||
)
|
||||
}
|
||||
}
|
||||
} catch (t: Throwable) {
|
||||
logger.error("Error while visiting `$it`", t)
|
||||
}
|
||||
}
|
||||
|
||||
project.subprojects.forEach {
|
||||
visitAllTasks(it)
|
||||
}
|
||||
}
|
||||
|
||||
visitAllTasks(rootProject)
|
||||
|
||||
// proguard
|
||||
DistCopy(
|
||||
target = modelBuilder.requirePath(
|
||||
path(
|
||||
projectDir.path,
|
||||
"libraries",
|
||||
"reflect",
|
||||
"build",
|
||||
"libs",
|
||||
"kotlin-reflect-proguard.jar"
|
||||
)
|
||||
),
|
||||
src = modelBuilder.requirePath(path(projectDir.path, "libraries", "reflect", "build", "libs", "kotlin-reflect-shadow.jar"))
|
||||
)
|
||||
|
||||
File(reportsDir, "02-vfs.txt").printWriter().use {
|
||||
modelBuilder.vfsRoot.printTree(it)
|
||||
}
|
||||
modelBuilder.checkRefs()
|
||||
|
||||
with(DistModelFlattener()) {
|
||||
with(DistModelIdeaArtifactBuilder(rootProject)) {
|
||||
File(reportsDir, "03-flattened-vfs.txt").printWriter().use { report ->
|
||||
fun getFlattenned(vfsPath: String): DistVFile =
|
||||
modelBuilder.vfsRoot.relativePath(path(projectDir.path, vfsPath))
|
||||
.flatten()
|
||||
|
||||
val all = getFlattenned("dist")
|
||||
all.child["artifacts"]
|
||||
?.removeAll { it != "ideaPlugin" }
|
||||
all.child["artifacts"]
|
||||
?.child?.get("ideaPlugin")
|
||||
?.child?.get("Kotlin")
|
||||
?.removeAll { it != "kotlinc" && it != "lib" }
|
||||
all.removeAll { it.endsWith(".zip") }
|
||||
all.printTree(report)
|
||||
|
||||
val dist = artifactsFactory.create("dist_auto_reference_dont_use")
|
||||
dist.addFiles(all)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private fun path(vararg components: String) = components.joinToString(File.separator)
|
||||
|
||||
internal val logger = LoggerFactory.getLogger("ide-artifacts")
|
||||
|
||||
@@ -1,40 +0,0 @@
|
||||
@file:Suppress("PackageDirectoryMismatch")
|
||||
package org.jetbrains.kotlin.ideaExt
|
||||
|
||||
import org.gradle.api.NamedDomainObjectContainer
|
||||
import org.gradle.api.plugins.ExtensionAware
|
||||
import org.gradle.kotlin.dsl.configure
|
||||
import org.gradle.plugins.ide.idea.model.IdeaProject
|
||||
import org.jetbrains.gradle.ext.*
|
||||
|
||||
/*
|
||||
* Copyright 2010-2019 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license
|
||||
* that can be found in the license/LICENSE.txt file.
|
||||
*/
|
||||
|
||||
fun org.gradle.api.Project.idea(configure: org.gradle.plugins.ide.idea.model.IdeaModel.() -> Unit): Unit =
|
||||
(this as org.gradle.api.plugins.ExtensionAware).extensions.configure("idea", configure)
|
||||
|
||||
fun IdeaProject.settings(block: ProjectSettings.() -> Unit) =
|
||||
(this@settings as ExtensionAware).extensions.configure(block)
|
||||
|
||||
fun ProjectSettings.compiler(block: IdeaCompilerConfiguration.() -> Unit) =
|
||||
(this@compiler as ExtensionAware).extensions.configure(block)
|
||||
|
||||
fun ProjectSettings.delegateActions(block: ActionDelegationConfig.() -> Unit) =
|
||||
(this@delegateActions as ExtensionAware).extensions.configure(block)
|
||||
|
||||
fun ProjectSettings.runConfigurations(block: DefaultRunConfigurationContainer.() -> Unit) =
|
||||
(this@runConfigurations as ExtensionAware).extensions.configure("runConfigurations", block)
|
||||
|
||||
inline fun <reified T: RunConfiguration> DefaultRunConfigurationContainer.defaults(noinline block: T.() -> Unit) =
|
||||
defaults(T::class.java, block)
|
||||
|
||||
fun DefaultRunConfigurationContainer.junit(name: String, block: JUnit.() -> Unit) =
|
||||
create(name, JUnit::class.java, block)
|
||||
|
||||
fun DefaultRunConfigurationContainer.application(name: String, block: Application.() -> Unit) =
|
||||
create(name, Application::class.java, block)
|
||||
|
||||
fun ProjectSettings.ideArtifacts(block: NamedDomainObjectContainer<org.jetbrains.gradle.ext.TopLevelArtifact>.() -> Unit) =
|
||||
(this@ideArtifacts as ExtensionAware).extensions.configure("ideArtifacts", block)
|
||||
@@ -1,4 +1,4 @@
|
||||
@file:Suppress("unused")
|
||||
@file:Suppress("unused") // usages in build scripts are not tracked properly
|
||||
|
||||
/*
|
||||
* Copyright 2010-2017 JetBrains s.r.o.
|
||||
@@ -23,12 +23,13 @@ import org.gradle.api.file.ConfigurableFileCollection
|
||||
import org.gradle.api.file.FileCollection
|
||||
import org.gradle.api.internal.ConventionTask
|
||||
import org.gradle.api.plugins.ExtensionAware
|
||||
import org.gradle.api.plugins.JavaPluginConvention
|
||||
import org.gradle.api.tasks.*
|
||||
import org.gradle.api.tasks.compile.AbstractCompile
|
||||
import org.gradle.kotlin.dsl.*
|
||||
import java.io.File
|
||||
|
||||
fun Project.configureFormInstrumentation() {
|
||||
fun Project.configureInstrumentation() {
|
||||
plugins.matching { it::class.java.canonicalName.startsWith("org.jetbrains.kotlin.gradle.plugin") }.all {
|
||||
// When we change the output classes directory, Gradle will automatically configure
|
||||
// the test compile tasks to use the instrumented classes. Normally this is fine,
|
||||
@@ -45,15 +46,15 @@ fun Project.configureFormInstrumentation() {
|
||||
val testCompile = tasks.findByName("compileTestKotlin") as AbstractCompile?
|
||||
testCompile?.doFirst {
|
||||
testCompile.classpath = (testCompile.classpath
|
||||
- mainSourceSet.output.classesDirs
|
||||
+ files((mainSourceSet as ExtensionAware).extra.get("classesDirsCopy")))
|
||||
- mainSourceSet.output.classesDirs
|
||||
+ files((mainSourceSet as ExtensionAware).extra.get("classesDirsCopy")))
|
||||
}
|
||||
}
|
||||
|
||||
val instrumentationClasspathCfg = configurations.create("instrumentationClasspath")
|
||||
|
||||
dependencies {
|
||||
instrumentationClasspathCfg(intellijDep()) { includeJars("javac2", "jdom", "asm-all", rootProject = rootProject) }
|
||||
instrumentationClasspathCfg(intellijDep()) { includeJars("javac2", "jdom", "asm-all") }
|
||||
}
|
||||
|
||||
afterEvaluate {
|
||||
@@ -67,8 +68,7 @@ fun Project.configureFormInstrumentation() {
|
||||
logger.info("Saving old sources dir for project ${project.name}")
|
||||
val instrumentedClassesDir = File(project.buildDir, "classes/${sourceSetParam.name}-instrumented")
|
||||
(sourceSetParam.output.classesDirs as ConfigurableFileCollection).setFrom(instrumentedClassesDir)
|
||||
val instrumentTask =
|
||||
project.tasks.create(sourceSetParam.getTaskName("instrument", "classes"), IntelliJInstrumentCodeTask::class.java)
|
||||
val instrumentTask = project.tasks.create(sourceSetParam.getTaskName("instrument", "classes"), IntelliJInstrumentCodeTask::class.java)
|
||||
instrumentTask.apply {
|
||||
dependsOn(sourceSetParam.classesTaskName).onlyIf { !classesDirsCopy.isEmpty }
|
||||
sourceSet = sourceSetParam
|
||||
@@ -100,42 +100,30 @@ open class IntelliJInstrumentCodeTask : ConventionTask() {
|
||||
@Input
|
||||
var originalClassesDirs: FileCollection? = null
|
||||
|
||||
@get:Input
|
||||
var instrumentNotNull: Boolean = false
|
||||
|
||||
@get:InputFiles
|
||||
val sourceDirs: FileCollection
|
||||
get() = project.files(sourceSet!!.allSource.srcDirs.filter { !sourceSet!!.resources.contains(it) && it.exists() })
|
||||
|
||||
@get:OutputDirectory
|
||||
lateinit var output: File
|
||||
var output: File? = null
|
||||
|
||||
@TaskAction
|
||||
fun instrumentClasses() {
|
||||
logger.info(
|
||||
"input files are: ${originalClassesDirs?.joinToString(
|
||||
"; ",
|
||||
transform = { "'${it.name}'${if (it.exists()) "" else " (does not exists)"}" })}"
|
||||
)
|
||||
output.deleteRecursively()
|
||||
logger.info("input files are: ${originalClassesDirs?.joinToString("; ", transform = { "'${it.name}'${if (it.exists()) "" else " (does not exists)" }"})}")
|
||||
output?.deleteRecursively()
|
||||
copyOriginalClasses()
|
||||
|
||||
val classpath = instrumentationClasspath!!
|
||||
|
||||
ant.withGroovyBuilder {
|
||||
"taskdef"(
|
||||
"name" to "instrumentIdeaExtensions",
|
||||
"classpath" to classpath.asPath,
|
||||
"loaderref" to LOADER_REF,
|
||||
"classname" to "com.intellij.ant.InstrumentIdeaExtensions"
|
||||
)
|
||||
"taskdef"("name" to "instrumentIdeaExtensions",
|
||||
"classpath" to classpath.asPath,
|
||||
"loaderref" to LOADER_REF,
|
||||
"classname" to "com.intellij.ant.InstrumentIdeaExtensions")
|
||||
}
|
||||
|
||||
logger.info("Compiling forms and instrumenting code with nullability preconditions")
|
||||
if (instrumentNotNull) {
|
||||
prepareNotNullInstrumenting(classpath.asPath)
|
||||
}
|
||||
|
||||
val instrumentNotNull = prepareNotNullInstrumenting(classpath.asPath)
|
||||
instrumentCode(sourceDirs, instrumentNotNull)
|
||||
}
|
||||
|
||||
@@ -146,15 +134,14 @@ open class IntelliJInstrumentCodeTask : ConventionTask() {
|
||||
}
|
||||
}
|
||||
|
||||
private fun prepareNotNullInstrumenting(classpath: String) {
|
||||
private fun prepareNotNullInstrumenting(classpath: String): Boolean {
|
||||
ant.withGroovyBuilder {
|
||||
"typedef"(
|
||||
"name" to "skip",
|
||||
"classpath" to classpath,
|
||||
"loaderref" to LOADER_REF,
|
||||
"classname" to FILTER_ANNOTATION_REGEXP_CLASS
|
||||
)
|
||||
"typedef"("name" to "skip",
|
||||
"classpath" to classpath,
|
||||
"loaderref" to LOADER_REF,
|
||||
"classname" to FILTER_ANNOTATION_REGEXP_CLASS)
|
||||
}
|
||||
return true
|
||||
}
|
||||
|
||||
private fun instrumentCode(srcDirs: FileCollection, instrumentNotNull: Boolean) {
|
||||
@@ -162,22 +149,20 @@ open class IntelliJInstrumentCodeTask : ConventionTask() {
|
||||
|
||||
// Instrumentation needs to have access to sources of forms for inclusion
|
||||
val depSourceDirectorySets = project.configurations["compile"].dependencies.withType(ProjectDependency::class.java)
|
||||
.map { p -> p.dependencyProject.mainSourceSet.allSource.sourceDirectories }
|
||||
.map { p -> p.dependencyProject.mainSourceSet.allSource.sourceDirectories }
|
||||
val instrumentationClasspath =
|
||||
depSourceDirectorySets.fold(sourceSet!!.compileClasspath) { acc, v -> acc + v }.asPath.also {
|
||||
logger.info("Using following dependency source dirs: $it")
|
||||
}
|
||||
depSourceDirectorySets.fold(sourceSet!!.compileClasspath) { acc, v -> acc + v }.asPath.also {
|
||||
logger.info("Using following dependency source dirs: $it")
|
||||
}
|
||||
|
||||
logger.info("Running instrumentIdeaExtensions with srcdir=${srcDirs.asPath}}, destdir=$output and classpath=$instrumentationClasspath")
|
||||
|
||||
ant.withGroovyBuilder {
|
||||
"instrumentIdeaExtensions"(
|
||||
"srcdir" to srcDirs.asPath,
|
||||
"destdir" to output,
|
||||
"classpath" to instrumentationClasspath,
|
||||
"includeantruntime" to false,
|
||||
"instrumentNotNull" to instrumentNotNull
|
||||
) {
|
||||
"instrumentIdeaExtensions"("srcdir" to srcDirs.asPath,
|
||||
"destdir" to output,
|
||||
"classpath" to instrumentationClasspath,
|
||||
"includeantruntime" to false,
|
||||
"instrumentNotNull" to instrumentNotNull) {
|
||||
if (instrumentNotNull) {
|
||||
ant.withGroovyBuilder {
|
||||
"skip"("pattern" to "kotlin/Metadata")
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
@file:Suppress("unused")
|
||||
@file:Suppress("unused") // usages in build scripts are not tracked properly
|
||||
|
||||
/*
|
||||
* Copyright 2010-2017 JetBrains s.r.o.
|
||||
@@ -23,12 +23,13 @@ import org.gradle.api.file.ConfigurableFileCollection
|
||||
import org.gradle.api.file.FileCollection
|
||||
import org.gradle.api.internal.ConventionTask
|
||||
import org.gradle.api.plugins.ExtensionAware
|
||||
import org.gradle.api.plugins.JavaPluginConvention
|
||||
import org.gradle.api.tasks.*
|
||||
import org.gradle.api.tasks.compile.AbstractCompile
|
||||
import org.gradle.kotlin.dsl.*
|
||||
import java.io.File
|
||||
|
||||
fun Project.configureFormInstrumentation() {
|
||||
fun Project.configureInstrumentation() {
|
||||
plugins.matching { it::class.java.canonicalName.startsWith("org.jetbrains.kotlin.gradle.plugin") }.all {
|
||||
// When we change the output classes directory, Gradle will automatically configure
|
||||
// the test compile tasks to use the instrumented classes. Normally this is fine,
|
||||
@@ -45,15 +46,15 @@ fun Project.configureFormInstrumentation() {
|
||||
val testCompile = tasks.findByName("compileTestKotlin") as AbstractCompile?
|
||||
testCompile?.doFirst {
|
||||
testCompile.classpath = (testCompile.classpath
|
||||
- mainSourceSet.output.classesDirs
|
||||
+ files((mainSourceSet as ExtensionAware).extra.get("classesDirsCopy")))
|
||||
- mainSourceSet.output.classesDirs
|
||||
+ files((mainSourceSet as ExtensionAware).extra.get("classesDirsCopy")))
|
||||
}
|
||||
}
|
||||
|
||||
val instrumentationClasspathCfg = configurations.create("instrumentationClasspath")
|
||||
|
||||
dependencies {
|
||||
instrumentationClasspathCfg(intellijDep()) { includeJars("javac2", "jdom", "asm-all", "jgoodies-forms", rootProject = rootProject) }
|
||||
instrumentationClasspathCfg(intellijDep()) { includeJars("javac2", "jdom", "asm-all", "jgoodies-forms") }
|
||||
}
|
||||
|
||||
afterEvaluate {
|
||||
@@ -67,8 +68,7 @@ fun Project.configureFormInstrumentation() {
|
||||
logger.info("Saving old sources dir for project ${project.name}")
|
||||
val instrumentedClassesDir = File(project.buildDir, "classes/${sourceSetParam.name}-instrumented")
|
||||
(sourceSetParam.output.classesDirs as ConfigurableFileCollection).setFrom(instrumentedClassesDir)
|
||||
val instrumentTask =
|
||||
project.tasks.create(sourceSetParam.getTaskName("instrument", "classes"), IntelliJInstrumentCodeTask::class.java)
|
||||
val instrumentTask = project.tasks.create(sourceSetParam.getTaskName("instrument", "classes"), IntelliJInstrumentCodeTask::class.java)
|
||||
instrumentTask.apply {
|
||||
dependsOn(sourceSetParam.classesTaskName).onlyIf { !classesDirsCopy.isEmpty }
|
||||
sourceSet = sourceSetParam
|
||||
@@ -100,42 +100,30 @@ open class IntelliJInstrumentCodeTask : ConventionTask() {
|
||||
@Input
|
||||
var originalClassesDirs: FileCollection? = null
|
||||
|
||||
@get:Input
|
||||
var instrumentNotNull: Boolean = false
|
||||
|
||||
@get:InputFiles
|
||||
val sourceDirs: FileCollection
|
||||
get() = project.files(sourceSet!!.allSource.srcDirs.filter { !sourceSet!!.resources.contains(it) && it.exists() })
|
||||
|
||||
@get:OutputDirectory
|
||||
lateinit var output: File
|
||||
var output: File? = null
|
||||
|
||||
@TaskAction
|
||||
fun instrumentClasses() {
|
||||
logger.info(
|
||||
"input files are: ${originalClassesDirs?.joinToString(
|
||||
"; ",
|
||||
transform = { "'${it.name}'${if (it.exists()) "" else " (does not exists)"}" })}"
|
||||
)
|
||||
output.deleteRecursively()
|
||||
logger.info("input files are: ${originalClassesDirs?.joinToString("; ", transform = { "'${it.name}'${if (it.exists()) "" else " (does not exists)" }"})}")
|
||||
output?.deleteRecursively()
|
||||
copyOriginalClasses()
|
||||
|
||||
val classpath = instrumentationClasspath!!
|
||||
|
||||
ant.withGroovyBuilder {
|
||||
"taskdef"(
|
||||
"name" to "instrumentIdeaExtensions",
|
||||
"classpath" to classpath.asPath,
|
||||
"loaderref" to LOADER_REF,
|
||||
"classname" to "com.intellij.ant.InstrumentIdeaExtensions"
|
||||
)
|
||||
"taskdef"("name" to "instrumentIdeaExtensions",
|
||||
"classpath" to classpath.asPath,
|
||||
"loaderref" to LOADER_REF,
|
||||
"classname" to "com.intellij.ant.InstrumentIdeaExtensions")
|
||||
}
|
||||
|
||||
logger.info("Compiling forms and instrumenting code with nullability preconditions")
|
||||
if (instrumentNotNull) {
|
||||
prepareNotNullInstrumenting(classpath.asPath)
|
||||
}
|
||||
|
||||
val instrumentNotNull = prepareNotNullInstrumenting(classpath.asPath)
|
||||
instrumentCode(sourceDirs, instrumentNotNull)
|
||||
}
|
||||
|
||||
@@ -146,15 +134,14 @@ open class IntelliJInstrumentCodeTask : ConventionTask() {
|
||||
}
|
||||
}
|
||||
|
||||
private fun prepareNotNullInstrumenting(classpath: String) {
|
||||
private fun prepareNotNullInstrumenting(classpath: String): Boolean {
|
||||
ant.withGroovyBuilder {
|
||||
"typedef"(
|
||||
"name" to "skip",
|
||||
"classpath" to classpath,
|
||||
"loaderref" to LOADER_REF,
|
||||
"classname" to FILTER_ANNOTATION_REGEXP_CLASS
|
||||
)
|
||||
"typedef"("name" to "skip",
|
||||
"classpath" to classpath,
|
||||
"loaderref" to LOADER_REF,
|
||||
"classname" to FILTER_ANNOTATION_REGEXP_CLASS)
|
||||
}
|
||||
return true
|
||||
}
|
||||
|
||||
private fun instrumentCode(srcDirs: FileCollection, instrumentNotNull: Boolean) {
|
||||
@@ -162,22 +149,20 @@ open class IntelliJInstrumentCodeTask : ConventionTask() {
|
||||
|
||||
// Instrumentation needs to have access to sources of forms for inclusion
|
||||
val depSourceDirectorySets = project.configurations["compile"].dependencies.withType(ProjectDependency::class.java)
|
||||
.map { p -> p.dependencyProject.mainSourceSet.allSource.sourceDirectories }
|
||||
.map { p -> p.dependencyProject.mainSourceSet.allSource.sourceDirectories }
|
||||
val instrumentationClasspath =
|
||||
depSourceDirectorySets.fold(sourceSet!!.compileClasspath) { acc, v -> acc + v }.asPath.also {
|
||||
logger.info("Using following dependency source dirs: $it")
|
||||
}
|
||||
depSourceDirectorySets.fold(sourceSet!!.compileClasspath) { acc, v -> acc + v }.asPath.also {
|
||||
logger.info("Using following dependency source dirs: $it")
|
||||
}
|
||||
|
||||
logger.info("Running instrumentIdeaExtensions with srcdir=${srcDirs.asPath}}, destdir=$output and classpath=$instrumentationClasspath")
|
||||
|
||||
ant.withGroovyBuilder {
|
||||
"instrumentIdeaExtensions"(
|
||||
"srcdir" to srcDirs.asPath,
|
||||
"destdir" to output,
|
||||
"classpath" to instrumentationClasspath,
|
||||
"includeantruntime" to false,
|
||||
"instrumentNotNull" to instrumentNotNull
|
||||
) {
|
||||
"instrumentIdeaExtensions"("srcdir" to srcDirs.asPath,
|
||||
"destdir" to output,
|
||||
"classpath" to instrumentationClasspath,
|
||||
"includeantruntime" to false,
|
||||
"instrumentNotNull" to instrumentNotNull) {
|
||||
if (instrumentNotNull) {
|
||||
ant.withGroovyBuilder {
|
||||
"skip"("pattern" to "kotlin/Metadata")
|
||||
|
||||
@@ -60,19 +60,6 @@ fun Project.intellijDep(module: String = "intellij") = "kotlin.build.custom.deps
|
||||
|
||||
fun Project.intellijCoreDep() = intellijDep("intellij-core")
|
||||
|
||||
/**
|
||||
* Runtime version of annotations that are already in Kotlin stdlib (historically Kotlin has older version of this one).
|
||||
*
|
||||
* SHOULD NOT BE USED IN COMPILE CLASSPATH!
|
||||
*
|
||||
* `@NonNull`, `@Nullabe` from `idea/annotations.jar` has `TYPE` target which leads to different types treatment in Kotlin compiler.
|
||||
* On the other hand, `idea/annotations.jar` contains org/jetbrains/annotations/Async annations which is required for IDEA debugger.
|
||||
*
|
||||
* So, we are excluding `annotaions.jar` from all other `kotlin.build.custom.deps` and using this one for runtime only
|
||||
* to avoid accidentally including `annotations.jar` by calling `intellijDep()`.
|
||||
*/
|
||||
fun Project.intellijRuntimeAnnotations() = intellijDep("intellij-runtime-annotations")
|
||||
|
||||
fun Project.intellijPluginDep(plugin: String) = intellijDep(plugin)
|
||||
|
||||
fun Project.intellijUltimateDep() = intellijDep("intellij")
|
||||
|
||||
@@ -1,63 +0,0 @@
|
||||
/*
|
||||
* Copyright 2010-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license
|
||||
* that can be found in the license/LICENSE.txt file.
|
||||
*/
|
||||
|
||||
import org.gradle.api.Project
|
||||
import org.gradle.api.artifacts.dsl.RepositoryHandler
|
||||
import org.gradle.api.artifacts.repositories.MavenArtifactRepository
|
||||
import java.net.URI
|
||||
|
||||
// https://youtrack.jetbrains.com/issue/ADM-23180
|
||||
val mirroredUrls = listOf(
|
||||
"https://dl.bintray.com/groovy/maven",
|
||||
"https://dl.bintray.com/kotlin/kotlin-dev",
|
||||
"https://dl.bintray.com/kotlin/kotlin-eap",
|
||||
"https://dl.google.com/dl/android/maven2",
|
||||
"https://dl.google.com/go",
|
||||
"https://download.jetbrains.com",
|
||||
"https://jcenter.bintray.com",
|
||||
"https://jetbrains.bintray.com/dekaf",
|
||||
"https://jetbrains.bintray.com/intellij-jdk",
|
||||
"https://jetbrains.bintray.com/intellij-plugin-service",
|
||||
"https://jetbrains.bintray.com/intellij-third-party-dependencies",
|
||||
"https://jetbrains.bintray.com/markdown",
|
||||
"https://jetbrains.bintray.com/teamcity-rest-client",
|
||||
"https://jetbrains.bintray.com/test-discovery",
|
||||
"https://jetbrains.bintray.com/jediterm",
|
||||
"https://jitpack.io",
|
||||
"https://maven.exasol.com/artifactory/exasol-releases",
|
||||
"https://plugins.gradle.org/m2",
|
||||
"https://plugins.jetbrains.com/maven",
|
||||
"https://repo.grails.org/grails/core",
|
||||
"https://repo.jenkins-ci.org/releases",
|
||||
"https://repo.spring.io/milestone",
|
||||
"https://repo1.maven.org/maven2",
|
||||
"https://services.gradle.org",
|
||||
"https://www.jetbrains.com/intellij-repository",
|
||||
"https://www.myget.org/F/intellij-go-snapshots/maven",
|
||||
"https://www.myget.org/F/rd-snapshots/maven",
|
||||
"https://www.myget.org/F/rd-model-snapshots/maven",
|
||||
"https://www.python.org/ftp",
|
||||
"https://dl.google.com/dl/android/studio/ide-zips",
|
||||
"https://dl.bintray.com/kotlin/ktor",
|
||||
"https://cdn.azul.com/zulu/bin"
|
||||
)
|
||||
|
||||
fun URI.toCacheRedirectorUri() = URI("https://cache-redirector.jetbrains.com/$host/$path")
|
||||
|
||||
fun RepositoryHandler.redirect() = filterIsInstance<MavenArtifactRepository>().forEach { repository ->
|
||||
val uri = repository.url
|
||||
if (uri.toString().trimEnd('/') in mirroredUrls) {
|
||||
repository.url = uri.toCacheRedirectorUri()
|
||||
}
|
||||
}
|
||||
|
||||
fun Project.cacheRedirectorEnabled(): Boolean = findProperty("cacheRedirectorEnabled")?.toString()?.toBoolean() == true
|
||||
|
||||
fun RepositoryHandler.withRedirector(project: Project, configuration: RepositoryHandler.() -> Unit) {
|
||||
configuration()
|
||||
if (project.cacheRedirectorEnabled()) {
|
||||
redirect()
|
||||
}
|
||||
}
|
||||
@@ -8,10 +8,8 @@ import java.io.File
|
||||
import net.rubygrapefruit.platform.WindowsRegistry.Key.HKEY_LOCAL_MACHINE
|
||||
import org.gradle.internal.os.OperatingSystem
|
||||
|
||||
enum class JdkMajorVersion(private val mandatory: Boolean = true) {
|
||||
JDK_16, JDK_17, JDK_18, JDK_9, JDK_10(false), JDK_11(false);
|
||||
|
||||
fun isMandatory(): Boolean = mandatory
|
||||
enum class JdkMajorVersion {
|
||||
JDK_16, JDK_17, JDK_18, JDK_9, JDK_10
|
||||
}
|
||||
|
||||
val jdkAlternativeVarNames = mapOf(JdkMajorVersion.JDK_9 to listOf("JDK_19"))
|
||||
|
||||
@@ -173,7 +173,7 @@ fun generateKotlinPluginArtifactFile(rootProject: Project): PFile {
|
||||
for (dependencyInfo in listOf(configuration).collectDependencies()) {
|
||||
val dependency = (dependencyInfo as? DependencyInfo.ResolvedDependencyInfo)?.dependency ?: continue
|
||||
|
||||
if (dependency.isModuleDependency) {
|
||||
if (dependency.configuration == "runtimeElements") {
|
||||
archiveForJar.add(ModuleOutput(dependency.moduleName + ".src"))
|
||||
} else if (dependency.configuration == "tests-jar" || dependency.configuration == "jpsTest") {
|
||||
error("Test configurations are not allowed here")
|
||||
|
||||
@@ -235,9 +235,8 @@ private fun parseSourceRoots(project: Project): List<PSourceRoot> {
|
||||
return emptyList()
|
||||
}
|
||||
|
||||
val kotlinTasksBySourceSet = project.tasks.names
|
||||
.filter { it.startsWith("compile") && it.endsWith("Kotlin") }
|
||||
.map { project.tasks.getByName(it) }
|
||||
val kotlinTasksBySourceSet = project.tasks
|
||||
.filter { it.name.startsWith("compile") && it.name.endsWith("Kotlin") }
|
||||
.associateBy { it.invokeInternal("getSourceSetName") }
|
||||
|
||||
val sourceRoots = mutableListOf<PSourceRoot>()
|
||||
@@ -414,7 +413,7 @@ private fun ParserContext.parseDependencies(project: Project, forTests: Boolean)
|
||||
}
|
||||
}
|
||||
|
||||
mainRoots += if (dependency.isModuleDependency && scope != Scope.TEST) {
|
||||
mainRoots += if (dependency.configuration == "runtimeElements" && scope != Scope.TEST) {
|
||||
POrderRoot(PDependency.Module(dependency.moduleName + ".src"), scope)
|
||||
} else if (dependency.configuration == "tests-jar" || dependency.configuration == "jpsTest") {
|
||||
POrderRoot(
|
||||
@@ -490,9 +489,6 @@ sealed class DependencyInfo(val scope: Scope) {
|
||||
class CustomDependencyInfo(scope: Scope, val files: List<File>) : DependencyInfo(scope)
|
||||
}
|
||||
|
||||
val ResolvedDependency.isModuleDependency
|
||||
get() = configuration in JpsCompatiblePlugin.MODULE_CONFIGURATIONS
|
||||
|
||||
fun List<CollectedConfiguration>.collectDependencies(): List<DependencyInfo> {
|
||||
val dependencies = mutableListOf<DependencyInfo>()
|
||||
|
||||
@@ -535,4 +531,4 @@ private val Project.sourceSets: SourceSetContainer
|
||||
lateinit var result: SourceSetContainer
|
||||
project.configure<JavaPluginConvention> { result = sourceSets }
|
||||
return result
|
||||
}
|
||||
}
|
||||
@@ -20,8 +20,6 @@ class PillConfigurablePlugin : Plugin<Project> {
|
||||
|
||||
class JpsCompatiblePlugin : Plugin<Project> {
|
||||
companion object {
|
||||
val MODULE_CONFIGURATIONS = arrayOf("apiElements", "runtimeElements")
|
||||
|
||||
private fun mapper(module: String, vararg configurations: String): DependencyMapper {
|
||||
return DependencyMapper("org.jetbrains.kotlin", module, *configurations) { MappedDependency(PDependency.Library(module)) }
|
||||
}
|
||||
@@ -29,28 +27,28 @@ class JpsCompatiblePlugin : Plugin<Project> {
|
||||
private fun getDependencyMappers(projectLibraries: List<PLibrary>): List<DependencyMapper> {
|
||||
val mappersForKotlinLibrariesExeptStdlib = projectLibraries
|
||||
.filter { it.name != "kotlin-stdlib" }
|
||||
.mapTo(mutableListOf()) { mapper(it.name, "default", "distJar", *MODULE_CONFIGURATIONS) }
|
||||
.mapTo(mutableListOf()) { mapper(it.name, "default", "distJar", "runtimeElements") }
|
||||
|
||||
return mappersForKotlinLibrariesExeptStdlib + listOf(
|
||||
DependencyMapper("org.jetbrains.kotlin", "kotlin-stdlib", "distJar", *MODULE_CONFIGURATIONS) {
|
||||
DependencyMapper("org.jetbrains.kotlin", "kotlin-stdlib", "distJar", "runtimeElements") {
|
||||
MappedDependency(
|
||||
PDependency.Library("kotlin-stdlib"),
|
||||
listOf(PDependency.Library("annotations-13.0"))
|
||||
)
|
||||
},
|
||||
DependencyMapper("org.jetbrains", "annotations", "default", "runtime", version = "13.0") {
|
||||
DependencyMapper("org.jetbrains", "annotations", "default", version = "13.0") {
|
||||
MappedDependency(
|
||||
null,
|
||||
listOf(PDependency.Library("annotations-13.0"))
|
||||
)
|
||||
},
|
||||
DependencyMapper("org.jetbrains.kotlin", "kotlin-reflect-api", *MODULE_CONFIGURATIONS) {
|
||||
DependencyMapper("org.jetbrains.kotlin", "kotlin-reflect-api", "runtimeElements") {
|
||||
MappedDependency(PDependency.Library("kotlin-reflect"))
|
||||
},
|
||||
DependencyMapper("org.jetbrains.kotlin", "kotlin-compiler-embeddable", "runtimeJar") { null },
|
||||
DependencyMapper("org.jetbrains.kotlin", "kotlin-stdlib-js", "distJar") { null },
|
||||
DependencyMapper("org.jetbrains.kotlin", "kotlin-compiler", "runtimeJar") { null },
|
||||
DependencyMapper("org.jetbrains.kotlin", "compiler", *MODULE_CONFIGURATIONS) { null },
|
||||
DependencyMapper("org.jetbrains.kotlin", "compiler", "runtimeElements") { null },
|
||||
DependencyMapper("kotlin.build.custom.deps", "android", "default") { dep ->
|
||||
val (sdkCommon, otherJars) = dep.moduleArtifacts.map { it.file }.partition { it.name == "sdk-common.jar" }
|
||||
val mainLibrary = PDependency.ModuleLibrary(PLibrary(dep.moduleName, otherJars))
|
||||
@@ -146,13 +144,12 @@ class JpsCompatiblePlugin : Plugin<Project> {
|
||||
val jpsProject = parse(rootProject, projectLibraries, parserContext)
|
||||
.mapLibraries(this::attachPlatformSources, this::attachAsmSources)
|
||||
|
||||
generateKotlinPluginArtifactFile(rootProject).write()
|
||||
|
||||
val files = render(jpsProject)
|
||||
|
||||
removeExistingIdeaLibrariesAndModules()
|
||||
removeJpsAndPillRunConfigurations()
|
||||
removeAllArtifactConfigurations()
|
||||
|
||||
generateKotlinPluginArtifactFile(rootProject).write()
|
||||
removeJpsRunConfigurations()
|
||||
|
||||
copyRunConfigurations()
|
||||
setOptionsForDefaultJunitRunConfiguration(rootProject)
|
||||
@@ -164,8 +161,7 @@ class JpsCompatiblePlugin : Plugin<Project> {
|
||||
initEnvironment(project)
|
||||
|
||||
removeExistingIdeaLibrariesAndModules()
|
||||
removeJpsAndPillRunConfigurations()
|
||||
removeAllArtifactConfigurations()
|
||||
removeJpsRunConfigurations()
|
||||
}
|
||||
|
||||
private fun removeExistingIdeaLibrariesAndModules() {
|
||||
@@ -173,17 +169,10 @@ class JpsCompatiblePlugin : Plugin<Project> {
|
||||
File(projectDir, ".idea/modules").deleteRecursively()
|
||||
}
|
||||
|
||||
private fun removeJpsAndPillRunConfigurations() {
|
||||
private fun removeJpsRunConfigurations() {
|
||||
File(projectDir, ".idea/runConfigurations")
|
||||
.walk()
|
||||
.filter { (it.name.startsWith("JPS_") || it.name.startsWith("Pill_")) && it.extension.toLowerCase() == "xml" }
|
||||
.forEach { it.delete() }
|
||||
}
|
||||
|
||||
private fun removeAllArtifactConfigurations() {
|
||||
File(projectDir, ".idea/artifacts")
|
||||
.walk()
|
||||
.filter { it.extension.toLowerCase() == "xml" }
|
||||
.filter { it.name.startsWith("JPS_") && it.extension.toLowerCase() == "xml" }
|
||||
.forEach { it.delete() }
|
||||
}
|
||||
|
||||
@@ -272,7 +261,7 @@ class JpsCompatiblePlugin : Plugin<Project> {
|
||||
addOrReplaceOptionValue("idea.home.path", platformDirProjectRelative)
|
||||
addOrReplaceOptionValue("ideaSdk.androidPlugin.path", platformDirProjectRelative + "/plugins/android/lib")
|
||||
addOrReplaceOptionValue("robolectric.classpath", robolectricClasspath)
|
||||
addOrReplaceOptionValue("use.jps", "true")
|
||||
addOrReplaceOptionValue("use.pill", "true")
|
||||
|
||||
val isAndroidStudioBunch = project.findProperty("versions.androidStudioRelease") != null
|
||||
addOrReplaceOptionValue("idea.platform.prefix", if (isAndroidStudioBunch) "AndroidStudio" else null)
|
||||
|
||||
@@ -108,7 +108,7 @@ open class PublishedKotlinModule : Plugin<Project> {
|
||||
val password: String? by preparePublication.extra
|
||||
val repoUrl: String by preparePublication.extra
|
||||
|
||||
var repository by Delegates.notNull<MavenRemoteRepository>()
|
||||
var repository: MavenRemoteRepository by Delegates.notNull()
|
||||
|
||||
repositories {
|
||||
withConvention(MavenRepositoryHandlerConvention::class) {
|
||||
|
||||
@@ -32,7 +32,9 @@ val SourceSet.projectDefault: Project.() -> Unit
|
||||
when (this@projectDefault.name) {
|
||||
"main" -> {
|
||||
java.srcDirs("src")
|
||||
this@projectDefault.resources.srcDir("resources")
|
||||
val processResources = tasks.getByName(processResourcesTaskName) as ProcessResources
|
||||
processResources.from("resources") { include("**") }
|
||||
processResources.from("src") { include("META-INF/**", "**/*.properties") }
|
||||
}
|
||||
"test" -> {
|
||||
java.srcDirs("test", "tests")
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
@file:Suppress("unused") // usages in build scripts are not tracked properly
|
||||
|
||||
import org.gradle.api.logging.Logger
|
||||
import org.jetbrains.org.objectweb.asm.*
|
||||
import org.objectweb.asm.*
|
||||
import java.io.BufferedOutputStream
|
||||
import java.io.File
|
||||
import java.io.FileOutputStream
|
||||
@@ -23,7 +23,7 @@ fun stripMetadata(logger: Logger, classNamePattern: String, inFile: File, outFil
|
||||
|
||||
var changed = false
|
||||
val classWriter = ClassWriter(0)
|
||||
val classVisitor = object : ClassVisitor(Opcodes.API_VERSION, classWriter) {
|
||||
val classVisitor = object : ClassVisitor(Opcodes.ASM5, classWriter) {
|
||||
override fun visitAnnotation(desc: String, visible: Boolean): AnnotationVisitor? {
|
||||
if (Type.getType(desc).internalName == "kotlin/Metadata") {
|
||||
changed = true
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
<component name="ProjectRunConfigurationManager">
|
||||
<configuration default="false" name="[JPS] All Compiler Tests" type="CompoundRunConfigurationType" factoryName="Compound Run Configuration">
|
||||
<toRun type="JUnit" name="[JPS] Compiler Tests" />
|
||||
<toRun type="JUnit" name="[JPS] JS Backend Tests" />
|
||||
<toRun type="JUnit" name="[JPS] Java 8 Tests" />
|
||||
<method />
|
||||
</configuration>
|
||||
</component>
|
||||
@@ -0,0 +1,37 @@
|
||||
<component name="ProjectRunConfigurationManager">
|
||||
<configuration default="false" name="[JPS] All IDEA Plugin Tests" type="JUnit" factoryName="JUnit">
|
||||
<extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea">
|
||||
<pattern>
|
||||
<option name="PATTERN" value="org.jetbrains.kotlin.*" />
|
||||
<option name="ENABLED" value="true" />
|
||||
</pattern>
|
||||
</extension>
|
||||
<module name="idea.test" />
|
||||
<option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
|
||||
<option name="ALTERNATIVE_JRE_PATH" />
|
||||
<option name="PACKAGE_NAME" value="org.jetbrains.kotlin" />
|
||||
<option name="MAIN_CLASS_NAME" value="" />
|
||||
<option name="METHOD_NAME" value="" />
|
||||
<option name="TEST_OBJECT" value="package" />
|
||||
<option name="VM_PARAMETERS" value="-ea -XX:+HeapDumpOnOutOfMemoryError -Xmx1250m -XX:+UseCodeCacheFlushing -XX:ReservedCodeCacheSize=128m -Djna.nosys=true -Duse.pill=true -Didea.home.path=$IDEA_HOME_PATH$" />
|
||||
<option name="PARAMETERS" value="" />
|
||||
<option name="WORKING_DIRECTORY" value="file://$PROJECT_DIR$" />
|
||||
<option name="ENV_VARIABLES" />
|
||||
<option name="PASS_PARENT_ENVS" value="true" />
|
||||
<option name="TEST_SEARCH_SCOPE">
|
||||
<value defaultName="singleModule" />
|
||||
</option>
|
||||
<envs />
|
||||
<patterns />
|
||||
<RunnerSettings RunnerId="Debug">
|
||||
<option name="DEBUG_PORT" value="" />
|
||||
<option name="TRANSPORT" value="0" />
|
||||
<option name="LOCAL" value="true" />
|
||||
</RunnerSettings>
|
||||
<RunnerSettings RunnerId="Profile " />
|
||||
<RunnerSettings RunnerId="Run" />
|
||||
<ConfigurationWrapper RunnerId="Debug" />
|
||||
<ConfigurationWrapper RunnerId="Run" />
|
||||
<method />
|
||||
</configuration>
|
||||
</component>
|
||||
@@ -0,0 +1,35 @@
|
||||
<component name="ProjectRunConfigurationManager">
|
||||
<configuration default="false" name="[JPS] Compiler Tests" type="JUnit" factoryName="JUnit">
|
||||
<module name="compiler.test" />
|
||||
<extension name="coverage">
|
||||
<pattern>
|
||||
<option name="PATTERN" value="org.jetbrains.kotlin.*" />
|
||||
<option name="ENABLED" value="true" />
|
||||
</pattern>
|
||||
</extension>
|
||||
<option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
|
||||
<option name="ALTERNATIVE_JRE_PATH" />
|
||||
<option name="PACKAGE_NAME" value="org.jetbrains.kotlin" />
|
||||
<option name="MAIN_CLASS_NAME" value="" />
|
||||
<option name="METHOD_NAME" value="" />
|
||||
<option name="TEST_OBJECT" value="package" />
|
||||
<option name="VM_PARAMETERS" value="-ea -XX:+HeapDumpOnOutOfMemoryError -Xmx1024m -XX:+UseCodeCacheFlushing -XX:ReservedCodeCacheSize=128m -Djna.nosys=true -Duse.pill=true -Didea.home.path=$IDEA_HOME_PATH$" />
|
||||
<option name="PARAMETERS" value="" />
|
||||
<option name="WORKING_DIRECTORY" value="file://$PROJECT_DIR$" />
|
||||
<option name="PASS_PARENT_ENVS" value="true" />
|
||||
<option name="TEST_SEARCH_SCOPE">
|
||||
<value defaultName="singleModule" />
|
||||
</option>
|
||||
<patterns />
|
||||
<RunnerSettings RunnerId="Debug">
|
||||
<option name="DEBUG_PORT" value="" />
|
||||
<option name="TRANSPORT" value="0" />
|
||||
<option name="LOCAL" value="true" />
|
||||
</RunnerSettings>
|
||||
<RunnerSettings RunnerId="Profile " />
|
||||
<RunnerSettings RunnerId="Run" />
|
||||
<ConfigurationWrapper RunnerId="Debug" />
|
||||
<ConfigurationWrapper RunnerId="Run" />
|
||||
<method />
|
||||
</configuration>
|
||||
</component>
|
||||
@@ -0,0 +1,8 @@
|
||||
<component name="ProjectRunConfigurationManager">
|
||||
<configuration default="false" name="[JPS] Generate All Tests" type="Application" factoryName="Application">
|
||||
<option name="MAIN_CLASS_NAME" value="org.jetbrains.kotlin.pill.generateAllTests.Main" />
|
||||
<module name="generate-all-tests.test" />
|
||||
<option name="WORKING_DIRECTORY" value="file://$PROJECT_DIR$" />
|
||||
<method />
|
||||
</configuration>
|
||||
</component>
|
||||
41
buildSrc/src/main/resources/runConfigurations/JPS_IDEA.xml
Normal file
41
buildSrc/src/main/resources/runConfigurations/JPS_IDEA.xml
Normal file
@@ -0,0 +1,41 @@
|
||||
<component name="ProjectRunConfigurationManager">
|
||||
<configuration default="false" name="[JPS] IDEA" type="Application" factoryName="Application" singleton="true">
|
||||
<log_file alias="idea.log" path="$PROJECT_DIR$/ideaSDK/system-idea/log/idea.log" />
|
||||
<option name="MAIN_CLASS_NAME" value="com.intellij.idea.Main" />
|
||||
<module name="idea-runner" />
|
||||
<option name="VM_PARAMETERS" value="-Xmx1250m -XX:ReservedCodeCacheSize=240m -XX:+HeapDumpOnOutOfMemoryError -ea -Didea.is.internal=true -Didea.debug.mode=true -Didea.system.path=$PROJECT_DIR$/local/ideaSandbox -Didea.config.path=$PROJECT_DIR$/local/ideaSandbox/config -Dapple.laf.useScreenMenuBar=true -Dapple.awt.graphics.UseQuartz=true -Dsun.io.useCanonCaches=false -Dplugin.path=$PROJECT_DIR$/out/artifacts/Kotlin $ADDITIONAL_IDEA_ARGS$" />
|
||||
<option name="WORKING_DIRECTORY" value="file://$IDEA_HOME_PATH$" />
|
||||
<RunnerSettings RunnerId="Debug">
|
||||
<option name="DEBUG_PORT" value="" />
|
||||
<option name="TRANSPORT" value="0" />
|
||||
<option name="LOCAL" value="true" />
|
||||
</RunnerSettings>
|
||||
<RunnerSettings RunnerId="JavaRebel">
|
||||
<option name="bootstrapPath" />
|
||||
<option name="jrebelArgs" value="" />
|
||||
<option name="loggingEnabled" value="false" />
|
||||
<option name="useBootstrapDefaults" value="true" />
|
||||
</RunnerSettings>
|
||||
<RunnerSettings RunnerId="JavaRebel Debug">
|
||||
<option name="bootstrapPath" />
|
||||
<option name="debugPort" value="" />
|
||||
<option name="jrebelArgs" value="" />
|
||||
<option name="loggingEnabled" value="false" />
|
||||
<option name="transport" value="0" />
|
||||
<option name="useBootstrapDefaults" value="true" />
|
||||
<option name="DEBUG_PORT" value="" />
|
||||
<option name="TRANSPORT" value="0" />
|
||||
<option name="LOCAL" value="true" />
|
||||
</RunnerSettings>
|
||||
<RunnerSettings RunnerId="Profile " />
|
||||
<RunnerSettings RunnerId="Run" />
|
||||
<ConfigurationWrapper RunnerId="Debug" />
|
||||
<ConfigurationWrapper RunnerId="Profile " />
|
||||
<ConfigurationWrapper RunnerId="Run" />
|
||||
<method>
|
||||
<option name="BuildArtifacts" enabled="true">
|
||||
<artifact name="KotlinPlugin" />
|
||||
</option>
|
||||
</method>
|
||||
</configuration>
|
||||
</component>
|
||||
@@ -0,0 +1,41 @@
|
||||
<component name="ProjectRunConfigurationManager">
|
||||
<configuration default="false" name="[JPS] IDEA (No ProcessCanceledException)" type="Application" factoryName="Application" singleton="true">
|
||||
<log_file alias="idea.log" path="$PROJECT_DIR$/ideaSDK/system-idea/log/idea.log" />
|
||||
<option name="MAIN_CLASS_NAME" value="com.intellij.idea.Main" />
|
||||
<module name="idea-runner" />
|
||||
<option name="VM_PARAMETERS" value="-Xmx1250m -XX:ReservedCodeCacheSize=240m -XX:+HeapDumpOnOutOfMemoryError -ea -Didea.is.internal=true -Didea.debug.mode=true -Didea.system.path=$PROJECT_DIR$/local/ideaSandbox -Didea.config.path=$PROJECT_DIR$/local/ideaSandbox/config -Dapple.laf.useScreenMenuBar=true -Dapple.awt.graphics.UseQuartz=true -Dsun.io.useCanonCaches=false -Dplugin.path=$PROJECT_DIR$/out/artifacts/Kotlin -Didea.ProcessCanceledException=disabled $ADDITIONAL_IDEA_ARGS$" />
|
||||
<option name="WORKING_DIRECTORY" value="file://$IDEA_HOME_PATH$" />
|
||||
<RunnerSettings RunnerId="Debug">
|
||||
<option name="DEBUG_PORT" value="" />
|
||||
<option name="TRANSPORT" value="0" />
|
||||
<option name="LOCAL" value="true" />
|
||||
</RunnerSettings>
|
||||
<RunnerSettings RunnerId="JavaRebel">
|
||||
<option name="bootstrapPath" />
|
||||
<option name="jrebelArgs" value="" />
|
||||
<option name="loggingEnabled" value="false" />
|
||||
<option name="useBootstrapDefaults" value="true" />
|
||||
</RunnerSettings>
|
||||
<RunnerSettings RunnerId="JavaRebel Debug">
|
||||
<option name="bootstrapPath" />
|
||||
<option name="debugPort" value="" />
|
||||
<option name="jrebelArgs" value="" />
|
||||
<option name="loggingEnabled" value="false" />
|
||||
<option name="transport" value="0" />
|
||||
<option name="useBootstrapDefaults" value="true" />
|
||||
<option name="DEBUG_PORT" value="" />
|
||||
<option name="TRANSPORT" value="0" />
|
||||
<option name="LOCAL" value="true" />
|
||||
</RunnerSettings>
|
||||
<RunnerSettings RunnerId="Profile " />
|
||||
<RunnerSettings RunnerId="Run" />
|
||||
<ConfigurationWrapper RunnerId="Debug" />
|
||||
<ConfigurationWrapper RunnerId="Profile " />
|
||||
<ConfigurationWrapper RunnerId="Run" />
|
||||
<method>
|
||||
<option name="BuildArtifacts" enabled="true">
|
||||
<artifact name="KotlinPlugin" />
|
||||
</option>
|
||||
</method>
|
||||
</configuration>
|
||||
</component>
|
||||
@@ -0,0 +1,28 @@
|
||||
<component name="ProjectRunConfigurationManager">
|
||||
<configuration default="false" name="[JPS] JS Backend Tests" type="JUnit" factoryName="JUnit">
|
||||
<module name="js.tests.test" />
|
||||
<option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
|
||||
<option name="ALTERNATIVE_JRE_PATH" />
|
||||
<option name="PACKAGE_NAME" value="org.jetbrains.kotlin.js.test" />
|
||||
<option name="MAIN_CLASS_NAME" value="" />
|
||||
<option name="METHOD_NAME" value="" />
|
||||
<option name="TEST_OBJECT" value="package" />
|
||||
<option name="VM_PARAMETERS" value="-ea -XX:+HeapDumpOnOutOfMemoryError -Xmx1250m -XX:+UseCodeCacheFlushing -Djna.nosys=true -Duse.pill=true -Dkotlin.js.skipMinificationTest=false" />
|
||||
<option name="PARAMETERS" value="" />
|
||||
<option name="WORKING_DIRECTORY" value="file://$PROJECT_DIR$" />
|
||||
<option name="PASS_PARENT_ENVS" value="true" />
|
||||
<option name="TEST_SEARCH_SCOPE">
|
||||
<value defaultName="singleModule" />
|
||||
</option>
|
||||
<patterns />
|
||||
<RunnerSettings RunnerId="Debug">
|
||||
<option name="DEBUG_PORT" value="" />
|
||||
<option name="TRANSPORT" value="0" />
|
||||
<option name="LOCAL" value="true" />
|
||||
</RunnerSettings>
|
||||
<RunnerSettings RunnerId="Run" />
|
||||
<ConfigurationWrapper RunnerId="Debug" />
|
||||
<ConfigurationWrapper RunnerId="Run" />
|
||||
<method />
|
||||
</configuration>
|
||||
</component>
|
||||
@@ -0,0 +1,35 @@
|
||||
<component name="ProjectRunConfigurationManager">
|
||||
<configuration default="false" name="[JPS] JVM Backend Tests" type="JUnit" factoryName="JUnit">
|
||||
<module name="compiler.test" />
|
||||
<extension name="coverage">
|
||||
<pattern>
|
||||
<option name="PATTERN" value="org.jetbrains.kotlin.*" />
|
||||
<option name="ENABLED" value="true" />
|
||||
</pattern>
|
||||
</extension>
|
||||
<option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
|
||||
<option name="ALTERNATIVE_JRE_PATH" />
|
||||
<option name="PACKAGE_NAME" value="org.jetbrains.kotlin.codegen" />
|
||||
<option name="MAIN_CLASS_NAME" value="" />
|
||||
<option name="METHOD_NAME" value="" />
|
||||
<option name="TEST_OBJECT" value="package" />
|
||||
<option name="VM_PARAMETERS" value="-ea -XX:+HeapDumpOnOutOfMemoryError -Xmx1024m -XX:+UseCodeCacheFlushing -XX:ReservedCodeCacheSize=128m -Djna.nosys=true -Duse.pill=true -Didea.home.path=$IDEA_HOME_PATH$" />
|
||||
<option name="PARAMETERS" value="" />
|
||||
<option name="WORKING_DIRECTORY" value="file://$PROJECT_DIR$" />
|
||||
<option name="PASS_PARENT_ENVS" value="true" />
|
||||
<option name="TEST_SEARCH_SCOPE">
|
||||
<value defaultName="singleModule" />
|
||||
</option>
|
||||
<patterns />
|
||||
<RunnerSettings RunnerId="Debug">
|
||||
<option name="DEBUG_PORT" value="" />
|
||||
<option name="TRANSPORT" value="0" />
|
||||
<option name="LOCAL" value="true" />
|
||||
</RunnerSettings>
|
||||
<RunnerSettings RunnerId="Profile " />
|
||||
<RunnerSettings RunnerId="Run" />
|
||||
<ConfigurationWrapper RunnerId="Debug" />
|
||||
<ConfigurationWrapper RunnerId="Run" />
|
||||
<method />
|
||||
</configuration>
|
||||
</component>
|
||||
@@ -0,0 +1,26 @@
|
||||
<component name="ProjectRunConfigurationManager">
|
||||
<configuration default="false" name="[JPS] Java 8 Tests" type="JUnit" factoryName="JUnit">
|
||||
<module name="tests-java8.test" />
|
||||
<extension name="coverage">
|
||||
<pattern>
|
||||
<option name="PATTERN" value="org.jetbrains.kotlin.*" />
|
||||
<option name="ENABLED" value="true" />
|
||||
</pattern>
|
||||
</extension>
|
||||
<option name="ALTERNATIVE_JRE_PATH_ENABLED" value="true" />
|
||||
<option name="ALTERNATIVE_JRE_PATH" value="1.8" />
|
||||
<option name="PACKAGE_NAME" value="org.jetbrains.kotlin" />
|
||||
<option name="MAIN_CLASS_NAME" value="" />
|
||||
<option name="METHOD_NAME" value="" />
|
||||
<option name="TEST_OBJECT" value="package" />
|
||||
<option name="VM_PARAMETERS" value="-ea -XX:+HeapDumpOnOutOfMemoryError -XX:+UseCodeCacheFlushing -XX:ReservedCodeCacheSize=128m -Djna.nosys=true -Duse.pill=true -Dkotlin.colors.enabled=false -Didea.home.path=$IDEA_HOME_PATH$" />
|
||||
<option name="PARAMETERS" value="" />
|
||||
<option name="WORKING_DIRECTORY" value="file://$PROJECT_DIR$" />
|
||||
<option name="PASS_PARENT_ENVS" value="true" />
|
||||
<option name="TEST_SEARCH_SCOPE">
|
||||
<value defaultName="singleModule" />
|
||||
</option>
|
||||
<patterns />
|
||||
<method />
|
||||
</configuration>
|
||||
</component>
|
||||
@@ -0,0 +1,21 @@
|
||||
<component name="ProjectRunConfigurationManager">
|
||||
<configuration default="false" name="[JPS] Refresh JPS Model" type="GradleRunConfiguration" factoryName="Gradle" singleton="true">
|
||||
<ExternalSystemSettings>
|
||||
<option name="executionName" />
|
||||
<option name="externalProjectPath" value="$PROJECT_DIR$" />
|
||||
<option name="externalSystemIdString" value="GRADLE" />
|
||||
<option name="scriptParameters" value="" />
|
||||
<option name="taskDescriptions">
|
||||
<list />
|
||||
</option>
|
||||
<option name="taskNames">
|
||||
<list>
|
||||
<option value="pill" />
|
||||
</list>
|
||||
</option>
|
||||
<option name="vmOptions" value="" />
|
||||
</ExternalSystemSettings>
|
||||
<extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" />
|
||||
<method />
|
||||
</configuration>
|
||||
</component>
|
||||
@@ -1,8 +0,0 @@
|
||||
<component name="ProjectRunConfigurationManager">
|
||||
<configuration default="false" name="[PILL] All Compiler Tests" type="CompoundRunConfigurationType" factoryName="Compound Run Configuration">
|
||||
<toRun type="JUnit" name="[Pill] Compiler Tests" />
|
||||
<toRun type="JUnit" name="[Pill] JS Backend Tests" />
|
||||
<toRun type="JUnit" name="[Pill] Java 8 Tests" />
|
||||
<method />
|
||||
</configuration>
|
||||
</component>
|
||||
@@ -1,37 +0,0 @@
|
||||
<component name="ProjectRunConfigurationManager">
|
||||
<configuration default="false" name="[Pill] All IDEA Plugin Tests" type="JUnit" factoryName="JUnit">
|
||||
<extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea">
|
||||
<pattern>
|
||||
<option name="PATTERN" value="org.jetbrains.kotlin.*" />
|
||||
<option name="ENABLED" value="true" />
|
||||
</pattern>
|
||||
</extension>
|
||||
<module name="idea.test" />
|
||||
<option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
|
||||
<option name="ALTERNATIVE_JRE_PATH" />
|
||||
<option name="PACKAGE_NAME" value="org.jetbrains.kotlin" />
|
||||
<option name="MAIN_CLASS_NAME" value="" />
|
||||
<option name="METHOD_NAME" value="" />
|
||||
<option name="TEST_OBJECT" value="package" />
|
||||
<option name="VM_PARAMETERS" value="-ea -XX:+HeapDumpOnOutOfMemoryError -Xmx1250m -XX:+UseCodeCacheFlushing -XX:ReservedCodeCacheSize=128m -Djna.nosys=true -Duse.pill=true -Didea.home.path=$IDEA_HOME_PATH$" />
|
||||
<option name="PARAMETERS" value="" />
|
||||
<option name="WORKING_DIRECTORY" value="file://$PROJECT_DIR$" />
|
||||
<option name="ENV_VARIABLES" />
|
||||
<option name="PASS_PARENT_ENVS" value="true" />
|
||||
<option name="TEST_SEARCH_SCOPE">
|
||||
<value defaultName="singleModule" />
|
||||
</option>
|
||||
<envs />
|
||||
<patterns />
|
||||
<RunnerSettings RunnerId="Debug">
|
||||
<option name="DEBUG_PORT" value="" />
|
||||
<option name="TRANSPORT" value="0" />
|
||||
<option name="LOCAL" value="true" />
|
||||
</RunnerSettings>
|
||||
<RunnerSettings RunnerId="Profile " />
|
||||
<RunnerSettings RunnerId="Run" />
|
||||
<ConfigurationWrapper RunnerId="Debug" />
|
||||
<ConfigurationWrapper RunnerId="Run" />
|
||||
<method />
|
||||
</configuration>
|
||||
</component>
|
||||
@@ -1,35 +0,0 @@
|
||||
<component name="ProjectRunConfigurationManager">
|
||||
<configuration default="false" name="[Pill] Compiler Tests" type="JUnit" factoryName="JUnit">
|
||||
<module name="compiler.test" />
|
||||
<extension name="coverage">
|
||||
<pattern>
|
||||
<option name="PATTERN" value="org.jetbrains.kotlin.*" />
|
||||
<option name="ENABLED" value="true" />
|
||||
</pattern>
|
||||
</extension>
|
||||
<option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
|
||||
<option name="ALTERNATIVE_JRE_PATH" />
|
||||
<option name="PACKAGE_NAME" value="org.jetbrains.kotlin" />
|
||||
<option name="MAIN_CLASS_NAME" value="" />
|
||||
<option name="METHOD_NAME" value="" />
|
||||
<option name="TEST_OBJECT" value="package" />
|
||||
<option name="VM_PARAMETERS" value="-ea -XX:+HeapDumpOnOutOfMemoryError -Xmx1024m -XX:+UseCodeCacheFlushing -XX:ReservedCodeCacheSize=128m -Djna.nosys=true -Duse.pill=true -Didea.home.path=$IDEA_HOME_PATH$" />
|
||||
<option name="PARAMETERS" value="" />
|
||||
<option name="WORKING_DIRECTORY" value="file://$PROJECT_DIR$" />
|
||||
<option name="PASS_PARENT_ENVS" value="true" />
|
||||
<option name="TEST_SEARCH_SCOPE">
|
||||
<value defaultName="singleModule" />
|
||||
</option>
|
||||
<patterns />
|
||||
<RunnerSettings RunnerId="Debug">
|
||||
<option name="DEBUG_PORT" value="" />
|
||||
<option name="TRANSPORT" value="0" />
|
||||
<option name="LOCAL" value="true" />
|
||||
</RunnerSettings>
|
||||
<RunnerSettings RunnerId="Profile " />
|
||||
<RunnerSettings RunnerId="Run" />
|
||||
<ConfigurationWrapper RunnerId="Debug" />
|
||||
<ConfigurationWrapper RunnerId="Run" />
|
||||
<method />
|
||||
</configuration>
|
||||
</component>
|
||||
@@ -1,8 +0,0 @@
|
||||
<component name="ProjectRunConfigurationManager">
|
||||
<configuration default="false" name="[Pill] Generate All Tests" type="Application" factoryName="Application">
|
||||
<option name="MAIN_CLASS_NAME" value="org.jetbrains.kotlin.pill.generateAllTests.Main" />
|
||||
<module name="generate-all-tests.test" />
|
||||
<option name="WORKING_DIRECTORY" value="file://$PROJECT_DIR$" />
|
||||
<method />
|
||||
</configuration>
|
||||
</component>
|
||||
@@ -1,41 +0,0 @@
|
||||
<component name="ProjectRunConfigurationManager">
|
||||
<configuration default="false" name="[Pill] IDEA" type="Application" factoryName="Application" singleton="true">
|
||||
<log_file alias="idea.log" path="$PROJECT_DIR$/ideaSDK/system-idea/log/idea.log" />
|
||||
<option name="MAIN_CLASS_NAME" value="com.intellij.idea.Main" />
|
||||
<module name="idea-runner" />
|
||||
<option name="VM_PARAMETERS" value="-Xmx1250m -XX:ReservedCodeCacheSize=240m -XX:+HeapDumpOnOutOfMemoryError -ea -Didea.is.internal=true -Didea.debug.mode=true -Didea.system.path=$PROJECT_DIR$/local/ideaSandbox -Didea.config.path=$PROJECT_DIR$/local/ideaSandbox/config -Dapple.laf.useScreenMenuBar=true -Dapple.awt.graphics.UseQuartz=true -Dsun.io.useCanonCaches=false -Dplugin.path=$PROJECT_DIR$/out/artifacts/Kotlin $ADDITIONAL_IDEA_ARGS$" />
|
||||
<option name="WORKING_DIRECTORY" value="file://$IDEA_HOME_PATH$" />
|
||||
<RunnerSettings RunnerId="Debug">
|
||||
<option name="DEBUG_PORT" value="" />
|
||||
<option name="TRANSPORT" value="0" />
|
||||
<option name="LOCAL" value="true" />
|
||||
</RunnerSettings>
|
||||
<RunnerSettings RunnerId="JavaRebel">
|
||||
<option name="bootstrapPath" />
|
||||
<option name="jrebelArgs" value="" />
|
||||
<option name="loggingEnabled" value="false" />
|
||||
<option name="useBootstrapDefaults" value="true" />
|
||||
</RunnerSettings>
|
||||
<RunnerSettings RunnerId="JavaRebel Debug">
|
||||
<option name="bootstrapPath" />
|
||||
<option name="debugPort" value="" />
|
||||
<option name="jrebelArgs" value="" />
|
||||
<option name="loggingEnabled" value="false" />
|
||||
<option name="transport" value="0" />
|
||||
<option name="useBootstrapDefaults" value="true" />
|
||||
<option name="DEBUG_PORT" value="" />
|
||||
<option name="TRANSPORT" value="0" />
|
||||
<option name="LOCAL" value="true" />
|
||||
</RunnerSettings>
|
||||
<RunnerSettings RunnerId="Profile " />
|
||||
<RunnerSettings RunnerId="Run" />
|
||||
<ConfigurationWrapper RunnerId="Debug" />
|
||||
<ConfigurationWrapper RunnerId="Profile " />
|
||||
<ConfigurationWrapper RunnerId="Run" />
|
||||
<method>
|
||||
<option name="BuildArtifacts" enabled="true">
|
||||
<artifact name="KotlinPlugin" />
|
||||
</option>
|
||||
</method>
|
||||
</configuration>
|
||||
</component>
|
||||
@@ -1,41 +0,0 @@
|
||||
<component name="ProjectRunConfigurationManager">
|
||||
<configuration default="false" name="[Pill] IDEA (No ProcessCanceledException)" type="Application" factoryName="Application" singleton="true">
|
||||
<log_file alias="idea.log" path="$PROJECT_DIR$/ideaSDK/system-idea/log/idea.log" />
|
||||
<option name="MAIN_CLASS_NAME" value="com.intellij.idea.Main" />
|
||||
<module name="idea-runner" />
|
||||
<option name="VM_PARAMETERS" value="-Xmx1250m -XX:ReservedCodeCacheSize=240m -XX:+HeapDumpOnOutOfMemoryError -ea -Didea.is.internal=true -Didea.debug.mode=true -Didea.system.path=$PROJECT_DIR$/local/ideaSandbox -Didea.config.path=$PROJECT_DIR$/local/ideaSandbox/config -Dapple.laf.useScreenMenuBar=true -Dapple.awt.graphics.UseQuartz=true -Dsun.io.useCanonCaches=false -Dplugin.path=$PROJECT_DIR$/out/artifacts/Kotlin -Didea.ProcessCanceledException=disabled $ADDITIONAL_IDEA_ARGS$" />
|
||||
<option name="WORKING_DIRECTORY" value="file://$IDEA_HOME_PATH$" />
|
||||
<RunnerSettings RunnerId="Debug">
|
||||
<option name="DEBUG_PORT" value="" />
|
||||
<option name="TRANSPORT" value="0" />
|
||||
<option name="LOCAL" value="true" />
|
||||
</RunnerSettings>
|
||||
<RunnerSettings RunnerId="JavaRebel">
|
||||
<option name="bootstrapPath" />
|
||||
<option name="jrebelArgs" value="" />
|
||||
<option name="loggingEnabled" value="false" />
|
||||
<option name="useBootstrapDefaults" value="true" />
|
||||
</RunnerSettings>
|
||||
<RunnerSettings RunnerId="JavaRebel Debug">
|
||||
<option name="bootstrapPath" />
|
||||
<option name="debugPort" value="" />
|
||||
<option name="jrebelArgs" value="" />
|
||||
<option name="loggingEnabled" value="false" />
|
||||
<option name="transport" value="0" />
|
||||
<option name="useBootstrapDefaults" value="true" />
|
||||
<option name="DEBUG_PORT" value="" />
|
||||
<option name="TRANSPORT" value="0" />
|
||||
<option name="LOCAL" value="true" />
|
||||
</RunnerSettings>
|
||||
<RunnerSettings RunnerId="Profile " />
|
||||
<RunnerSettings RunnerId="Run" />
|
||||
<ConfigurationWrapper RunnerId="Debug" />
|
||||
<ConfigurationWrapper RunnerId="Profile " />
|
||||
<ConfigurationWrapper RunnerId="Run" />
|
||||
<method>
|
||||
<option name="BuildArtifacts" enabled="true">
|
||||
<artifact name="KotlinPlugin" />
|
||||
</option>
|
||||
</method>
|
||||
</configuration>
|
||||
</component>
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user