Commit Graph

478 Commits

Author SHA1 Message Date
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
Yahor Berdnikau eef7c3e834 Publish serialization plugin as kotlin-serialization-compiler-plugin
With this change it will have consistent naming with other compiler plugins.

'-embeddable' was also renamed.

'dist' should contain two identical jar files:
- 'serialization-compiler-plugin.jar'
- 'kotlinx-serialization-compiler-plugin.jar'

^KT-58530 In Progress
2023-05-12 09:31:41 +00:00
Bogdan Mukvich 303f7493cc Do not publish SBOM artifact by default
* In case we generate several artifacts like in kotlin-compiler
there are separate jar and zip modules which differ in content
2023-05-10 16:03:01 +00:00
Bogdan Mukvich bbe5418a85 Add SBOM to dist compiler task 2023-05-10 16:03:01 +00:00
Bogdan Mukvich d78e30a5f5 Generate SBOM for kotlin-compiler.zip 2023-05-09 08:46:07 +00:00
Nikolay Krasko 92a7a74382 [213] Fix proguard rule for ExtensionsArea.registerExtensionPoint
Fix for 6e18b75c73

KTI-1114
2023-05-03 20:46:58 +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
Nikolay Krasko 6e18b75c73 [213] Do not remove deprecated ExtensionsArea.registerExtensionPoint
The method is proved to be used in klint project
https://github.com/pinterest/ktlint/blob/c5a81e0d4198fa5cb2cac69967080e01e365b837/ktlint-rule-engine/src/main/kotlin/com/pinterest/ktlint/rule/engine/internal/KotlinPsiFileFactory.kt#L121

There is an issue about the remove: https://github.com/pinterest/ktlint/issues/1981

KTI-1114
2023-04-28 08:25:19 +00: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
nataliya.valtman e34dd043da Add minimal statistic report for JPS build
Fix build stat for gradle 8

#KT-56438 Fixed
2023-04-25 11:29:09 +00:00
Yahor Berdnikau eb4e96a113 Add kotlin-build-tools-enum-compat workaround
It acts as a workaround for the case when build tools or dependencies
are compiled with latest 'kotlin-stdlib' version, but at a runtime older
 'kotlin-stdlib' is provided, which does not know about new
 `EnumEntries`.

 ^KT-57317 Fixed
2023-04-21 14:57:17 +00:00
Nikolay Krasko 9e00bb8a21 [213] More dependencies aalto + stax2
KTI-1114
2023-04-21 13:19:05 +00:00
Roman Golyshev 31482fbb8b [213] Try removing jna from kotlin-compiler-embeddable
KTI-1114
2023-04-21 13:19:04 +00:00
Roman Golyshev e388b1df36 [213] Ignore proguard warning about com.intellij.util.io.WalRecord$Companion
KTI-1114
2023-04-21 13:19:04 +00:00
Roman Golyshev d4cffb8a5a [213] Switch to 213 platform
KTI-1114
2023-04-21 13:19:04 +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
Yahor Berdnikau 1eb27f2aac Update publishing and usage of kotlin-annotation-processing plugin
- removed 'kotlin-annotation-processing-gradle' publication as it
duplicated 'kotlin-annotation-processing-embeddable'
- removed 'kotlin-annotation-processing-maven' as it is embedded into
  'kotlin-maven-plugin'. Instead 'kotlin-maven-plugin' now depends on
  'kotlin-annotation-processing' directly.

^KT-52811 In Progress
2023-04-17 14:40:51 +00: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
Jérôme Prinet 24d39ec815 Add task dependency from kotlin-compiler:sourcesJar to :compiler:ir.tree:generateTree
This allows cache hits for `:kotlin-compiler:sourcesJar`

#5094
2023-02-15 17:09:23 +01:00
Yunir Salimzyanov ee32fddbfe KT-55700: fix IDEA import with JPS build enabled 2023-02-14 13:43:58 +00:00
Yunir Salimzyanov 3cb0d489bf KT-55700: fix kotlin-test-sources.jar in compiler lib
to contain both jvm and common parts
as it is made for maven artifacts distribution
2023-02-13 17:42:27 +00:00
Dmitriy Novozhilov 88efa6bfb6 Update tests after switching to LV 1.9 2023-01-30 09:29:57 +00:00
Dmitrii Gridin eb3ad7e6b1 [LC] move light class related tests to one directory 2023-01-02 15:05:36 +00:00
Andrey Uskov c9e0100214 Remove experimental implementation of Kotlin Compiler Daemon
#KT-50846 Fixed
2022-12-05 16:02:03 +00:00
Alexander Korepanov d5e9e87538 [JS BE] Drop JS scripting support
JS scripting uses the old IR to JS transformer.
 The new IR to JS transformer can not be used for
 JS scripting out of the box. Patching the new transformer for
 JS scripting is potentially dangerous and requires a lot of effort.
 Dropping JS scripting and the old IR to JS transformer allows to
 refactor and simplify JS BE codebase.
2022-11-04 14:15:15 +00:00
Ilya Kirillov d8f36d6fd2 Add missing modules to analysis api test framework 2022-10-19 00:44:45 +02:00
Dmitriy Novozhilov 04dae17333 [Assign plugin] Add assign plugin to the list of plugins for compiler dist 2022-10-04 19:47:34 +00:00
Nikolay Krasko 20fdd50cc0 Add javadoc to analysis-api-test-framework for fix publishing 2022-09-27 13:15:05 +00:00
Ilya Kirillov 51cece4741 Publish Analysis API test framework 2022-09-21 09:44:23 +02:00
Yahor Berdnikau 286d0d56af Introduce Kotlin compiler options with Gradle Properties API types
Old one is deprecated and delegates to new options. All new options
are marked with task input types, so they could be used as `@Nested`
input.

Generated options are using specific types in generated
compiler options. This should simplify code completion and provide
meaningful hints to user.

At this point repository compilation will fail.

^KT-27301 In Progress
2022-09-19 12:30:39 +02: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 8547cb0afd 5/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

Tests that would break if we put reflect from the minimum supported
IDEA into dist:
* Java11ModulesIntegrationTest
* Java17ModulesIntegrationTest

^ Actually, a lot of tests would fail, but I specifically highlight
those two because the "a lot of tests" can be easily fixed by changing
`ForTestCompileRuntime.reflectJarForTests` to:
```
@NotNull
public static File reflectJarForTests() {
    return assertExists(new File("libraries/reflect/build/libs/kotlin-reflect-1.7.255-SNAPSHOT.jar"));
}
```
`Java11ModulesIntegrationTest` & `Java11ModulesIntegrationTest` cannot
be fixed in principle because those tests use reflect from dist with
help of `JvmArgumentsKt.configureStandardLibs` (not with help of
`ForTestCompileRuntime`). `JvmArgumentsKt.configureStandardLibs` is
about `-no-stdlib` & `-no-reflect` compiler flags. That's why we have to
pack SNAPSHOT reflect into dist.
2022-08-22 15:43:55 +02: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
Nikita Bobko 2a4f3f41aa 2/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

Note: Kotlin Maven artifacts (./gradlew publish) changed their
dependency on kotlin-reflect
2022-08-22 15:43:49 +02:00
Abduqodiri Qurbonzoda cf44753aed Remove :compiler:tests-common-jvm6 project and JvmTarget6OnBaseJvm tests 2022-08-13 01:33:48 +03: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
Dmitriy Novozhilov 259862d294 [Parcelize] Reorganize module structure of Parcelize plugin
Also mark parcelize as compatible with K2
2022-06-07 14:12:15 +00:00
Yahor Berdnikau cb448b0f76 Fix 'kotlin-compiler-embeddable' project does not publish required artifacts
Restore publishing javadocs and sources jars.
2022-06-03 17:21:20 +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