Commit Graph

9487 Commits

Author SHA1 Message Date
Alexander Udalov f3a7312ee6 K2: use ClassKind.CLASS for object literals
K1 uses CLASS, and libraries like kotlinx-metadata-jvm and
kotlin-reflect already rely on it.

 #KT-57641 Fixed
2023-06-26 20:58:55 +00:00
Alexander Udalov 1be0fcb53a Kotlinp: add "test can be unmuted" error to K2 tests 2023-06-26 20:58:55 +00:00
Sebastian Sellmair 3366366361 [Gradle] Implement initial ExternalAndroidTargetIT
Using AGP version 8.2.0-alpha09: Covering the
external Android target maintained and developed by Google.

The initial tests are intended to give basic coverage
of basic functionality (such as build and running tests), as well as
checking compatibility between AGP and KGP

^KT-59578 Verification Pending
2023-06-26 18:38:53 +00:00
Alexander Udalov c66bc36382 Build: fix some warnings in buildSrc and build.gradle.kts 2023-06-26 15:42:21 +00:00
Sebastian Sellmair 4d91229d79 [Gradle] Implement KotlinDefaultHierarchyFallbackNativeTargetShortcutUsageDetected diagnostic
^KT-58676 Verification Pending
2023-06-26 11:36:18 +00:00
Sebastian Sellmair 8d6c4019c5 [Gradle] Implement KotlinMultiplatformSourceSetConventionsTest
^KT-58676 Verification Pending
2023-06-26 11:36:17 +00:00
Sebastian Sellmair c31c5ea0be [Gradle] Implement IosSourceSetConventionUsedWithoutIosTarget diagnostic
... in case when iosMain, iosTest conventions are used
w/o any ios target being applied

^KT-58676 Verification Pending
2023-06-26 11:36:17 +00:00
Sebastian Sellmair 6d1e039b77 [Gradle] Do not apply default hierarchy template for: test KT-47641...
See: KT-59596:
The test did not apply any hierarchy before as well, therefore this
change is returning the setup back to its original behaviour.

However, we therefore discovered an issue (tracked as KT-59596):
Compiling metadata compilations for cinterops is not desirable

^KT-58676 Verification Pending
2023-06-26 11:36:17 +00:00
Sebastian Sellmair 6f42446138 [Gradle][Minor] Improve documentation in KotlinHierarchyDsl
^KT-58676 Verification Pending
2023-06-26 11:36:17 +00:00
Sebastian Sellmair 37ec18d8d6 [Gradle][Minor] Fix typo in KotlinMultiplatformExtension documentation
^KT-58676 Verification Pending
2023-06-26 11:36:17 +00:00
Sebastian Sellmair f26f3e0738 [Gradle] Remove InternalKotlinHierarchyTemplate interface (in favor of using Impl directly)
^KT-58676 Verification Pending
2023-06-26 11:36:17 +00:00
Sebastian Sellmair 6d4dbfae28 [Gradle] Move KotlinHierarchyDsl documentation into KotlinHierarchyDsl.kt
^KT-58676 Verification Pending
2023-06-26 11:36:17 +00:00
Sebastian Sellmair a03fb02af3 [Gradle] Deduplicate documentation from KotlinHierarchyTemplate.Templates.default and applyDefaultHierarchyTemplate
^KT-58676 Verification Pending
2023-06-26 11:36:17 +00:00
Sebastian Sellmair 772bcb283d [Gradle] Replace KotlinSourceSetTree interface with simpler class
^KT-58676 Verification Pending
2023-06-26 11:36:17 +00:00
Sebastian Sellmair 85f4b72c8b [Gradle] Remove deprecation from deprecated KotlinTargetHierarchy entities
^KT-58676 Verification Pending
2023-06-26 11:36:17 +00:00
Sebastian Sellmair 18a2ceebea [Gradle] Keep deprecated KotlinTargetHierarchy in previous KotlinTargetHierarchy.kt source file
^KT-58676 Verification Pending
2023-06-26 11:36:17 +00:00
Sebastian Sellmair 1cd8089e92 [Gradle] Move KotlinHierarchyTemplate.Templates.default into -api module
^KT-58676 Verification Pending
2023-06-26 11:36:17 +00:00
Sebastian Sellmair 2a4f9b19f0 [Gradle] KotlinSourceSetConvention: KotlinSourceSet registration logic
Separate the retrieval and registration of KotlinSourceSets in the getValue function of KotlinSourceSetConvention. Add a custom Trace class to be stored in the isRegisteredByKotlinSourceSetConventionAt property for better readability and debugging purposes.
2023-06-26 11:36:17 +00:00
Sebastian Sellmair 0b57dac738 [Gradle] Deprecate native target shortcuts ...
... in favor of default hierarchy template

^KT-58676 Verification Pending
2023-06-26 11:36:17 +00:00
Sebastian Sellmair 845c8bd1c3 [Gradle] Implement KotlinGradlePluginDsl annotation and check in for binary compatibility validation
^KT-58676 Verification Pending
2023-06-26 11:36:17 +00:00
Sebastian Sellmair cec243ac3b [Gradle] apply KotlinHierarchyTemplate.default, by default
^KT-58676 Verification Pending
2023-06-26 11:36:17 +00:00
Sebastian Sellmair b9a8f6dce2 [Gradle] KotlinPluginLifecycle: requiredStage: Wait for stage if necessary
^KT-58676 In Progress
2023-06-26 11:36:17 +00:00
Sebastian Sellmair 1a143ec1a2 [Gradle] KotlinToolingDiagnostics: Allow providing stacktraces
^KT-58676 In Progress
2023-06-26 11:36:16 +00:00
Sebastian Sellmair 390b4e30a0 [Gradle][Minor] Move reporting of targets out of 'configureSourceSets'
^KT-58676 In Progress
2023-06-26 11:36:16 +00:00
Sebastian Sellmair 008a4c9593 [Gradle] Implement KotlinMultiplatformSourceSetConventions
... to give convenient access to known 'default' SourceSets

^KT-58676 In Progress
2023-06-26 11:36:16 +00:00
Sebastian Sellmair b2dd83515c [Gradle] Stabilise Kotlin Hierarchy Template DSL
- Remove 'Target' name from hierarchy components as in
    - KotlinTargetHierarchyBuilder -> KotlinHierarchyBuilder
    - KotlinTargetHierarchyDsl -> KotlinHierarchyDsl

- Rename KotlinTargetHierarchyDescriptor -> KotlinHierarchyTemplate
    To convey a better intuition about the 'template' vs 'layout' separation:
    A 'template' is used to 'layout' the actual 'hierarchy' on a given project.

- Move entities from .mpp.targetHierarchy to .hierarchy package
    As the .targetHierarchy package was using the 'target' term as well

- Rename SourceSetTree to KotlinSourceSetTree

- Rename SourceSetTreeClassifier to KotlinSourceSetTreeClassifier
    (Support external target APIs by introducing a V2 api version)

^KT-58676 In Progress
2023-06-26 11:36:16 +00:00
Alexander.Likhachev cb087b7def [Build] Bump gradle-node-plugin version to 5.0.0
This change is required to fix a configuration cache problem revealed after migration to Gradle 8.1
2023-06-26 10:36:25 +00:00
Artem Daugel-Dauge 7eec1b350f [Tests] Try to make CocoaPods installation more robus once againt 2023-06-23 16:56:44 +00:00
Alexander.Likhachev bfb314adcb [BT] Mark the Build Tools API as experimental 2023-06-23 12:34:23 +00:00
Alexander.Likhachev 5993e4bce4 [BT] Introduce JVM compilation API 2023-06-23 12:34:23 +00:00
Alexander.Likhachev 1005d0244a [BT] Move KotlinLogger to the bt-api package
#KT-57398 In Progress
2023-06-23 12:34:23 +00:00
Artem Kobzar 64158a8a2f [K/JS] Add file-to-file compilation ^KT-6168 Fixed 2023-06-22 18:23:45 +00:00
Aleksei.Cherepanov a3583ea79b Add the possibility to omit explicitly specifying a version in annotationProcessorPaths
Resolve the version of the annotation processor path (specified in annotationProcessorPaths) in kapt plugin if it is already specified in dependencies of this module or parent module. Plugin management is also supported.

#KT-59521 In Fixed

Merge-request: KT-MR-10761
Merged-by: Aleksei Cherepanov <aleksei.cherepanov@jetbrains.com>
2023-06-22 17:13:24 +00:00
Ilya Goncharov 90f6c53bf8 [Gradle, Js] Use dynamic import to catch exceptions during wasm compilation 2023-06-22 15:46:31 +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 46e83ef7da [Gradle] Specify children projects names in functional tests to avoid ambiguity
#KTI-1221 In Progress
2023-06-22 15:16:08 +00:00
Alexander.Likhachev e9fa576297 [Gradle] Fix expected JVM target version in compiler arguments test
Since Gradle 8.0, the JDK used to run Gradle is exposed to plugins as a JVM toolchain, thus it configures the jvm target as it was a regular used-configured JVM toolchain
https://docs.gradle.org/8.1/userguide/upgrading_version_7.html#toolchain_based_tasks_for_jvm_projects
#KTI-1221 In Progress
2023-06-22 15:16:08 +00:00
Alexander.Likhachev 76ba0c60b2 [Gradle] Update Gradle integration tests code as the new stdlib is now available
#KTI-1221 In Progress
2023-06-22 15:16:08 +00:00
Alexander.Likhachev 7690904bc4 [Gradle] Update AGP for KGP functional tests to support Gradle 8
#KTI-1221 In Progress
2023-06-22 15:16:08 +00:00
Alexander.Likhachev 407a2d4203 [Build] Remove usages of Provider.forUseAtConfigurationTime()
It's not required anymore and was deprecated since Gradle 7.4
#KTI-1221 In Progress
2023-06-22 15:16:08 +00:00
Dmitrii Krasnov 0e51a00871 Migrated CommonizerIT to new test dsl (junit 5 and gradle test kit) 2023-06-22 10:35:56 +00:00
Ilya Goncharov 2da0e622c0 [Gradle, JS] Add FIR variant of incremental multiproject test
^KT-56933 fixed
2023-06-22 08:21:00 +00:00
Artem Daugel-Dauge b6847d0835 [Gradle] Support configuration cache in Xcode/CocoaPods tasks with Gradle 8.1
This commit moves invocation of `xcodebuild` from configuration to execution time. This also fixes the problem with Xcode version being cached inside the daemon.

^KT-59252 Verification Pending
2023-06-21 13:31:38 +00:00
Sebastian Sellmair 685eee38ac [Gradle] GranularMetadataTransformation: Collect moduleIds in ProjectData for non Kotlin Projects
^KT-59446 Verification Pending
2023-06-20 13:55:09 +00:00
Sebastian Sellmair d3d6cdcef7 [Gradle] Implement Future<T>.map(transform)
^KT-59446 In Progress
2023-06-20 13:55:09 +00:00
Sebastian Sellmair ec46c82a13 [Gradle] Implement KT59446TransformationOnTransitiveJavaDependencyTest
^KT-59446 In Progress
2023-06-20 13:55:09 +00:00
Sebastian Sellmair d7facce71f [Gradle] KotlinPluginLifecycle: Implement .toString for better diagnostics
^KT-59446 In Progress
2023-06-20 13:55:09 +00:00
Artem Kobzar 039b5fca7a [K/JS] Use declared upper-bound types for parameters inside inlined functions body, instead of the provided types 2023-06-20 12:01:28 +00:00
Kirill Rakhman aa4ebe1991 [FIR2IR] Fix NPE on missing built-ins when using old stdlib
Specifically, this code was throwing when trying to get the symbol for
IntrinsicConstEvaluation which is only available since 1.7.

#KT-59151 Fixed
2023-06-20 11:52:21 +00:00
Leonid Startsev b919a12274 Restructure KotlinClass(Module)Metadata.write/read:
- Write now returns result (Metadata or ByteArray) directly without re-wrapping it;
- annotationData/bytes is private to avoid unsoundness if external client corrupts it;
- .toXxx() do not throw exceptions anymore and deprecated. Exceptions are thrown only from read/write;
- Instead of toXxx(), properties like .kmClass should be used instead. They're initialized eagerly and return a view without copying.
- KotlinClassMetadata.Unknown is now a data object, as no useful information is exposed

#KT-59365 Fixed
2023-06-19 17:54:18 +00:00