JPS build assumes fat jar is built from embedded configuration,
but we can't use it in gradle build in :prepare:compiler project
since slightly more complex processing is required like stripping
metadata & services from some jars
This is a large commit, which introduces general API for working with
abstraction of Platform.
- Add new abstraction to 'core' - SimplePlatform - which represents
exactly one platform
- Clients are strongly prohibited to create instances of SimplePlatform
by hand, instead, corresponding *Platforms abstraction should be used
(e.g. JvmPlatforms, JsPlatforms, KonanPlatforms)
- Move TargetPlatform to 'core', it represents now a collection of
SimplePlatforms
- Clients are strongly encouraged to use TargetPlatform
(not SimplePlatform) in API, to enforce checks for multiplatform
- Provide a helper-extensions to work with TargetPlatform
(in particular, for getting a specific component platform)
- Remove MultiTargetPlatform in favour of TargetPlatform
- Notably, this commit leaves another widely used duplicated abstraction,
namely, IdePlatform. For the sake sanity, removal of IdePlatform is
extracted in the separate commit.
This decouples simple data (TargetPlatform) from other subsystem-specific
logic (like default imports, built-ins, etc.).
Aside from purely aesthetic improvements, it also makes it easier
to move 'TargetPlatform' into core (see next commits)
Update reference public API. Before 266976ac1e
suspend inline functions with crossinline parameters were effectively
inline-only. Fixing it exposed suspendCoroutine as public API.
Update jps artifacts after bootstrap.
This should be fine because we don't have any production Groovy code in
the project. Otherwise any build.gradle file in
kotlin-gradle-plugin-integration-tests is highlighted as yellow.
Also update inspection profile to the latest version suggested by
IntelliJ
Up-to-date check is very heavy for intellij repo due to artifact size.
If module directory in repo is written only by one task we can assume
that task if up-to-date if target directory exists.
- from KotlinTargetConfigurator.kt
- to KotlinNativeTaretConfigurator.kt
- from mpp\kotlinTargets.kt
- to mpp\KotlinAndroidTarget.kt
- to mpp\KotlinNativeTarget.kt
- to mpp\KotlinWithJavaTarget.kt
- from mpp\kotlinTargetPresets.kt
- to mpp\KotlinAndroidTargetPreset.kt
- to mpp\KotlinNativeTargetPreset.kt
- to mpp\KotlinJsTargetPreset.kt
- to mpp\KotlinJvmTargetPreset.kt
- to mpp\KotlinJvmWithJavaTargetPreset.kt
- to mpp\KotlinMetadataTargetPreset.kt
- from mpp\kotlinCompilations.kt
- to mpp\KotlinCommonCompilation.kt
- to mpp\KotlinJvmCompilation.kt
- to mpp\KotlinJvmAndroidCompilation.kt
- to mpp\KotlinJsCompilation.kt
- to mpp\KotlinNativeCompilation.kt
- to mpp\KotlinWithJavaCompilation.kt
- from mpp\KotlinCompilationFactory.kt
- to mpp\KotlinJsCompilationFactory.kt
- to mpp\KotlinJvmCompilationFactory.kt
- to mpp\KotlinJvmAndroidCompilationFactory.kt
- to mpp\KotlinNativeCompilationFactory.kt
- to mpp\KotlinWithJavaCompilationFactory.kt
- from mpp\kotlinCompilationOutputs.kt
- to mpp\KotlinWithJavaCompilationOutput.kt
This commit moves:
KotlinTargetConfigurator.kt -> KotlinNativeTaretConfigurator.kt
mpp\kotlinTargets.kt -> mpp\KotlinAndroidTarget.kt
mpp\kotlinTargetPresets.kt -> mpp\KotlinAndroidTargetPreset.kt
mpp\kotlinCompilations.kt -> mpp\KotlinCommonCompilation.kt
mpp\KotlinCompilationFactory.kt -> mpp\KotlinJsCompilationFactory.kt
mpp\kotlinCompilationOutputs.kt -> mpp\KotlinWithJavaCompilationOutput.kt