Commit Graph

54 Commits

Author SHA1 Message Date
Nikita Bobko 18feb30569 Introduce kotlin-jps-plugin and deprecate kotlin-jps-plugin-classpath
`kotlin-jps-plugin-classpath` isn't dropped because, in some places, IDE
depends on the old artifact so I want to keep it for a while until I
cleanup IDE completely.

I tried to put as much libraries into `kotlinJpsPluginMavenDependencies`
as possible in the previous commit. Right now,
`kotlin-jps-plugin-classpath` is 33Mb, `kotlin-jps-plugin` is 20Mb (all
are not compresed)
2022-05-30 17:13:56 +02:00
Nikita Bobko 540164a691 Refactoring: Split compilerModulesForJps into "embedded" and "maven"
This small refactoring is needed for the next commit.

This commit doesn't change any semantic.
2022-05-30 17:13:56 +02:00
Nikita Bobko 6bbd007560 Refactoring: "suck in" kotlin-reflect and kotlin-daemon-client into compilerModulesForJps
This commit places all dependencies of JPS plugin into a single place --
`compilerModulesForJps`. I will need this small refactoring for the next
commits.

This commit doesn't change any logic because
`prepare/ide-plugin-dependencies/kotlin-jps-plugin-classpath/build.gradle.kts`
is the only `compilerModulesForJps` user right now.
2022-05-30 17:13:56 +02:00
Nikita Bobko b06aae229a Drop compiler-components-for-jps maven artifact
It actualy isn't used for a long time already in IDE
2022-05-30 17:13:56 +02:00
Tianyu Geng 010431e9e7 [Analysis API] Make a separate module for kt-reference-fe10 2022-05-27 15:37:37 +02:00
Yahor Berdnikau e25778a719 Fix ConcurrentModificationException
This exception is happening on build configuration trying to remove
default jar task artifacts from published one. I've set 'jar' task
to be always disabled instead and just add shadow jar to artifacts.
2022-05-24 07:58:36 +00:00
Dmitry Gridin 30b0b09faa [jps] tests: add missing dependency to jar
^KTIJ-20456
2022-05-12 13:04:44 +07:00
Dmitry Gridin c1838cc4f3 [jps] js-ir-runtime-for-ide: remove redundant empty jars
^KTIJ-20456
2022-05-12 11:29:22 +07:00
Florian Kistner def664eda9 KMA-413 Fix parseBinaryOptions missing from backend-native-for-ide 2022-05-03 23:51:34 +02:00
Dmitry Gridin 2100afd122 [jps] extract testdata to separate artifact
^KTIJ-20456
2022-04-28 12:21:33 +07:00
Florian Kistner 8a59ed6bc0 KMA-413 Publish AC KMM's backend.native dependency with Kotlin-for-IDE
AppCode KMM uses parts of `backend.native` for its Kotlin-ObjC
cross-resolve. Thus, this IDE dependency needs to be kept up-to-date
with the other Kotlin compiler for IDE artifacts. This commit integrates
a stripped down version into the existing `ide-plugin-dependencies`
build infrastructure to make it easier to keep them in sync.

Implementation details:
* Proguard-based removal of code irrelevant for IDE for smaller jar size
* Publication of non-stripped-down sources for better IDE experience
2022-04-18 20:15:05 +00:00
Dmitry Gridin 57b9648041 make jps-plugin testable from IJ infrastructure
^KTIJ-20456
2022-04-14 11:17:47 +07:00
Jinseong Jeon 26e923e3ae AA: introduce static project structure provider by compiler configuration
Also add standalone mode utils to configure Application/Project environments
2022-02-09 23:11:43 +01:00
Stanislav Erokhin 0347a737f6 Exclude the :compiler:cli-js from the kotlin-compiler-fe10-for-ide.jar
:compiler:cli already excluded and :compiler:cli-js have references
to the classes from :cli.

P.s. the excluded list for kotlin-compiler-for-ide artifact is way more
we need to review that and refactor
2022-01-27 00:29:11 +03:00
Nikita Bobko f86b201eb5 Coop dev: make it possible to depend on ':prepare:ide-plugin-dependencies:kotlin-jps-common-for-ide'
KT-MR-5457
2022-01-17 20:42:57 +01:00
Stanislav Erokhin 088d489141 Return parcelize-runtime to the parcelize-compiler-plugin-for-ide.jar
Classes like kotlinx.parcelize.Parcelize still used in the Android
plugin in the IDEA, so they should be included into plugin.
Otherwise, we have issues like KTIJ-20220.

#KTIJ-20220 In progress
2022-01-13 17:50:56 +01:00
Nikita Bobko 047272e56f Attach JPS plugin modules to the project model 2022-01-12 15:25:12 +01:00
Nikita Bobko 9bdd38ad72 Introduce kotlin-jps-common-for-ide and kotlin-jps-plugin-classpath artifacts
KTIJ-11633
2022-01-12 15:25:09 +01:00
Ilya Kirillov dd9a96a12f FIR LC: fix light facade caching 2021-11-05 15:46:07 +01:00
Yan Zhulanow f0e703e1ee [FIR IDE] Add artifacts with base components of Analysis API implementations 2021-10-21 18:05:01 +09:00
Yan Zhulanow 516dd825c2 [FIR IDE] Initial descriptor-based implementation of the Analysis API 2021-10-20 19:41:24 +03:00
Vyacheslav Gerasimov 29787218e1 Build: Add proper kotlin-compiler-runner-unshaded for ide artifacts
Fixes tests in kt-212-master branch of kotlin plugin in
intellij-community repository
2021-09-28 13:42:31 +03:00
Ilya Kirillov 678b931ba3 Analysis API: introduce Project Structure 2021-09-22 12:57:14 +02:00
Ilya Kirillov b43e664985 FIR IDE: move analysis api fir test sources to the analysis directory 2021-09-15 11:32:32 +02:00
Ilya Kirillov 5e9f807c78 FIR IDE: move analysis api fir main sources to the analysis directory 2021-09-15 11:32:30 +02:00
Ilya Kirillov b70f4f581e FIR IDE: move low level api main sources to the analysis directory 2021-09-15 11:32:22 +02:00
Ilya Kirillov 0c04ff98c3 FIR IDE: move analysis api to the analysis directory 2021-09-15 11:31:30 +02:00
Ilya Kirillov da962895a8 Split compiler-for-ide jar into multiple jars
Needed for IDE to gradually control which plugin (FE1.0, FIR) on which jar may depend

Jars: Common, IR, FIR FE1.0 and PSI
2021-09-14 14:45:41 +02:00
Ilya Kirillov c17a4a5a3b FIR IDE: move light classes to separate module 2021-08-24 20:13:09 +03:00
Ilya Kirillov abe2311372 FIR IDE: move declaration/package providers to separate module 2021-08-24 20:12:58 +03:00
Nikita Bobko 2a26c29390 Disable kotlin-scripting-ide-common publishing
We don't need this artifact in IDE anymore since we are not
going to move ide-common classes to kotlin repo. See previous commit
2021-07-08 10:01:35 +00:00
Nikita Bobko 365821ae54 2/2 Extract code which is required for :kotlin-scripting-ide-services from ide-common into seprate module
Extract the code and keep it in Kotlin repo. See previous preparation commit as well
2021-07-07 16:51:43 +02:00
Nikita Bobko e5fbd0e2d8 Publish :idea-frontend-api, :idea-frontend-fir, :idea-fir-low-level-api modules artifacts
These artifacts are used in Kotlin plugin
2021-06-22 03:06:18 +03:00
Roman Golyshev 1cd75b1e82 kotlin-stdlib:jvm-minimal-for-test -> kotlin-stdlib-jvm-minimal-for-test
Changed after cherry-picking 8baf570ee7
to the master-for-ide branch
2021-06-17 20:19:49 +03:00
Roman Golyshev 6ea4b8997b Add kotlin-stdlib-minimal-for-test.jar artefact to the published dependencies
Some compiler tests rely on this jar instead of the regular `stdlib`
2021-06-17 20:19:48 +03:00
Nikita Bobko 02bd17a4e2 Add compiler/fir/raw-fir/psi2fir/testData to testdata which is used by Kotlin plugin in IJ infra 2021-06-10 12:16:16 +02:00
Nikita Bobko 3aebd0315f Make it possible to run DiagnosisCompilerTestDataSpecTestGenerated from fir-low-level-api in IJ infra 2021-06-09 19:44:08 +03:00
Nikita Bobko e4205e5aa7 Pack 'compiler/testData/diagnostics/helpers' into kotlin-compiler-testdata-for-ide
This testdata is required for AbstractDiagnosisCompilerTestDataTest in FIR IDE in IJ infrastructure
2021-06-03 15:34:46 +02:00
Nikita Bobko 3c7b07b90f Include tests-compiler-utils into kotlin-compiler-tests-for-ide artifact
It fixes:
```
java.lang.NoClassDefFoundError: org/jetbrains/kotlin/fir/FirCfgConsistencyChecker

	at org.jetbrains.kotlin.test.frontend.fir.handlers.FirCfgConsistencyHandler.processModule(FirCfgConsistencyHandler.kt:15)
	at org.jetbrains.kotlin.test.frontend.fir.handlers.FirCfgConsistencyHandler.processModule(FirCfgConsistencyHandler.kt:13)
	at org.jetbrains.kotlin.test.TestRunnerKt.processModule(TestRunner.kt:236)
	at org.jetbrains.kotlin.test.TestRunnerKt.hackyProcess(TestRunner.kt:231)
	at org.jetbrains.kotlin.test.TestRunnerKt.access$hackyProcess(TestRunner.kt:1)
```
while running `DiagnosisCompilerTestFE10TestdataTestGenerated.Tests#testBinaryCallsOnNullableValues` (and probably other tests) in new infrastructure
2021-06-03 15:04:10 +02:00
Nikita Bobko ea24da117b Publish compiler testdata which is required for Kotlin plugin 2021-06-02 21:30:03 +03:00
Nikita Bobko 1abf3a39d4 Fix kotlin-compiler-tests-for-ide. tests jars should be published 2021-05-27 17:23:46 +02:00
Nikita Bobko 2d015da1ea Make it possible to depend on the rest of :prepare:ide-plugin-dependencies modules
Those modules used as "aggregate" modules. kotlin-ide modules depend on them in coop-dev
2021-05-27 16:32:14 +02:00
Nikita Bobko 6d125e0880 Initial implementation of kotlin + intellij combined repo 2021-05-20 16:05:36 +02:00
Yan Zhulanow cc4c61d2b3 Remove dependency on parcelize-runtime in the Parcelize compiler plugin 2021-05-14 01:06:39 +09:00
Yan Zhulanow e90cc30edb Remove CLI and some of daemon-related modules from compiler-for-ide
These modules is not required by the plugin, and the plugin verifier
warns about unsatisfied dependencies of the modules.

CLI is needed in tests so a separate artifact is created instead.
2021-05-14 01:06:39 +09:00
Yan Zhulanow 26f71c33c0 IDE: Publish JS IR klib artifact 2021-05-14 01:06:39 +09:00
Nikita Bobko bee8c0bb90 Publish :compiler:test-infrastructure for ide 2021-05-11 12:36:59 +02:00
Andrey Zinovyev b58bea6fa1 [lombok] IDE plugin with maven import handler 2021-04-29 23:14:14 +03:00
Alexander Udalov 005aa57f6d Remove obsolete module cli-js-klib
It's no longer used anywhere in the build.
2021-04-14 13:47:02 +02:00
Yan Zhulanow 419c88d1f2 Parcelize: Publish Parcelize compiler plugin to IDE dependencies repository 2020-09-24 15:50:58 +09:00