Commit Graph

86 Commits

Author SHA1 Message Date
Sebastian Sellmair e409c60780 [ObjCExport] Split ObjCExport into K1 and Analysis Api implementation
FL-23390
^KT-64168 Fixed
2024-01-08 15:25:19 +00:00
Alexander.Likhachev a19bd2ed2e [Build] Migrate most of the build logic from Project.buildDir usage
It's going to be deprecated in Gradle 8.3

There's currently no way to pass a `org.gradle.api.provider.Provider` to the JavaExec.systemProperty or Test.systemProperty. There's a workaround using `org.gradle.process.CommandLineArgumentProvider`, but I intentionally don't rework these calls as Gradle is going to allow passing providers to configure system properties: https://github.com/gradle/gradle/issues/12247#issuecomment-1568427242
^KTI-1473 In Progress
2023-12-07 18:31:06 +00:00
Sebastian Sellmair 0713866c1e [K/N] Modularise :kotlin-native:native.backend to extract objc header generation (2/2)
^KT-63905 Fixed
2023-12-04 18:52:08 +00:00
Florian Kistner c55dc2578a Fix missing KonanManglerDesc in kotlin-backend-native-for-ide 2023-11-03 13:16:19 +00:00
Ilya Kirillov e91e1a7729 [build] Remove non-needed IR modules from Kotlin plugin
^KT-62510
^KTIJ-27361
2023-10-13 11:49:55 +00:00
Ilya Kirillov 1ec6a29d1b [build] fix project names in sam-with-receiver-compiler-plugin-for-ide
They usually use one `:`
2023-10-13 11:49:55 +00:00
Ilya Kirillov 83db91d445 [build] do not build kotlin-stdlib-minimal-for-test-for-id as it's unused in the IDE 2023-10-13 11:49:55 +00:00
Ilya Kirillov b3226b9b78 [build] do not build kotlin-compiler-for-ide as it's unused in the IDE Plugin 2023-10-13 11:49:55 +00:00
Pavel Punegov ecb6b5dc58 [K/N][build] Remove obsolete kotlin-native-shared project
This project was replaced by the :native:kotlin-native-utils located at
native/utils. All sources were already merged.


Merge-request: KT-MR-11847
Merged-by: Pavel Punegov <Pavel.Punegov@jetbrains.com>
2023-08-28 14:57:16 +00:00
Ilya Gorbunov a9bc8fa402 [stdlib-mpp] Exclude kotlin-stdlib-js/js-ir projects and use kotlin-stdlib instead
- Specify disambiguating attributes in kotlin-dom-api-compat
  compile dependency configurations
  because it uses the flag that removes JS compiler type attribute
  from all configurations and variants

  KT-56106
2023-08-03 14:47:21 +00:00
Alexander Udalov c66bc36382 Build: fix some warnings in buildSrc and build.gradle.kts 2023-06-26 15:42:21 +00:00
Alexander.Likhachev a93c49baf1 [Build] Fix a bunch of buildscript compilation warnings
#KTI-1221 Fixed
2023-06-22 15:16:08 +00:00
Alexander.Likhachev 3affe78ae5 [Build] Make K/N backend sources publishing for IDE in a less hacky way
The previous way was too hacky relying on internal API
#KTI-1221 In Progress
2023-06-22 15:16:08 +00:00
Ilya Kirillov fbcf73eb42 [Analysis API Standalone] commonize logic for Analysis API FIR service registration between standalone and tests 2023-06-02 09:16:47 +00:00
Andrei Klunnyi 6255efa7f7 [KT-58817] Publish K2 script compiler artifact
With this commit kotlin script compiler (as a plugin) becomes
available for IDE.
2023-05-26 12:55:00 +00:00
Justin Paupore ae70edb1c8 [Parcelize] Recombine for-ide libraries.
K2 IDE support requires that the entire plugin is in a single JAR, so we
need to have the K1, K2, and CLI (CompilerPluginRegistrar) libraries
available on a single for-ide target.

This reverts commit c9badd14a7.

^KT-57795 fixed
2023-05-01 16:27:49 +02:00
Andrei Klunnyi 4c1a66b7d6 KT-57468 Kotlin assignment plugin: publish K2 & CLI artefacts
This commit effectively proceeds with the fix [1] but now in the context
of [2]. It includes jars from the assignment compiler plugin.

----------------------------------------------------------------------
[1]: https://youtrack.jetbrains.com/issue/KTIJ-24438
[2]: https://youtrack.jetbrains.com/issue/KTIJ-24390
2023-04-27 14:05:02 +00:00
Justin Paupore c9badd14a7 Split Parcelize for-ide support by frontend.
Create new targets for K1 and K2-specific jars for the IDE. (These
contain the diagnostics classes generated by the plugins, used to target
quickfixes.)

The existing `parcelize-compiler-plugin-for-ide` target remains
untouched with a K1 JAR dependency, because IJ currently depends on
this. Once IJ is cleaned up, we can remove the K1 reference from that
target, leaving only code shared between frontends.

^KT-57795
2023-04-18 09:11:00 +02:00
Roman Golyshev 2086c5348b KTIJ-24438 Add missing K2 and cli artifacts to bundled compiler plugins
Those artifact will be bundled to Kotlin K2 Plugin and would be used
as a replacement for user-supplied plugins in order to avoid binary
incompatibilities
2023-03-15 15:18:59 +00:00
Pavel Punegov aed6272107 [K/N] Merge :kotlin-native-shared with :native:kotlin-native-utils
* Code was moved to utils, but sources are included to the shared
until bootstrap advance.
* Fixed dependencies and set API & LV to 1.4 for the modules used with
Gradle.

Merge-request: KT-MR-9122
Merged-by: Pavel Punegov <Pavel.Punegov@jetbrains.com>
2023-03-10 12:57:35 +00:00
Florian Kistner a8370ea994 Update backend-native-for-ide.pro
* Fix `BinaryOptionWithValue` missing from backend-native-for-ide
2023-02-27 14:34:41 +00:00
Dmitrii Gridin eb3ad7e6b1 [LC] move light class related tests to one directory 2023-01-02 15:05:36 +00:00
Anže Sodja 17cd0d7dbc [Assign plugin] Add Gradle plugin and IDE dependencies for Assignment compiler plugin 2022-09-16 10:12:41 +03:00
Dmitriy Novozhilov cc00dcc038 [Serialization] Reorganize module structure 2022-08-22 17:23:18 +03:00
Nikita Bobko 0a6dadd04d 4/5 Replace source dependency on kotlin-reflect with binary dependency
Review: https://jetbrains.team/p/kt/reviews/6753

Meaningful semantic change was splitted into 5 commits to simplify the
change review. Sinle commit would be too big.

Why replace source to binary: to get rid of kotlin-reflect in Kotlin
plugin artifact KTIJ-22276
2022-08-22 15:43:53 +02:00
Kirill Shmakov f71564112d [K/N] Add missing LinkerOutputKind to kotlin-backend-native-for-ide
LinkerOutputKind is needed for AndroidProgramType initialization.
2022-07-04 14:33:11 +00:00
Dmitriy Novozhilov 53bbe805ce [SAM with receiver] Fix maven plugin and IDE dependencies according new module structure 2022-06-27 08:11:34 +00:00
Jinseong Jeon aef3df0336 AA: introduce AA session and builder 2022-06-09 10:35:16 +02:00
Dmitriy Novozhilov 66c2679673 [Plugins] Extract parts of cli modules which were used from IDE into common modules
This is needed to avoid IDE dependencies on cli modules, because they
  include FIR classes, which are inaccessible in regular Kotlin IDE plugin
2022-06-07 14:12:26 +00:00
Dmitriy Novozhilov 9b56a01d74 [Plugins] Include backend parts of noarg and parcelize into jars for IDE 2022-06-07 14:12:25 +00:00
Dmitriy Novozhilov c2bf68c9d3 [Lombok] Reorganize module structure of Lombok compiler plugin
Also rename its jar to `kotlin-lombok-compiler-plugin`

^KT-52468 Fixed
2022-06-07 14:12:19 +00:00
Dmitriy Novozhilov bfb908dcd9 [Build] Publish only K1 related parts of Parcelize, AllOpen and NoArg for IDE 2022-06-07 14:12:18 +00:00
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