[kpm] kotlin-gradle-plugin-idea: Introduce IdeaKpm* naming convention (1/2)
Replace the pre-existing `IdeaKotlin` naming convention with `IdeaKpm`
This commit is contained in:
committed by
Space
parent
d4dc6a3d71
commit
e2755b92aa
+68
-68
@@ -1,4 +1,4 @@
|
||||
public abstract interface class org/jetbrains/kotlin/gradle/kpm/idea/IdeaKotlinBinaryCoordinates : org/jetbrains/kotlin/gradle/kpm/idea/IdeaKotlinDependencyCoordinates {
|
||||
public abstract interface class org/jetbrains/kotlin/gradle/kpm/idea/IdeaKpmBinaryCoordinates : org/jetbrains/kotlin/gradle/kpm/idea/IdeaKpmDependencyCoordinates {
|
||||
public abstract fun getGroup ()Ljava/lang/String;
|
||||
public abstract fun getKotlinFragmentName ()Ljava/lang/String;
|
||||
public abstract fun getKotlinModuleName ()Ljava/lang/String;
|
||||
@@ -6,88 +6,88 @@ public abstract interface class org/jetbrains/kotlin/gradle/kpm/idea/IdeaKotlinB
|
||||
public abstract fun getVersion ()Ljava/lang/String;
|
||||
}
|
||||
|
||||
public final class org/jetbrains/kotlin/gradle/kpm/idea/IdeaKotlinBinaryCoordinatesImpl$Companion {
|
||||
public final class org/jetbrains/kotlin/gradle/kpm/idea/IdeaKpmBinaryCoordinatesImpl$Companion {
|
||||
}
|
||||
|
||||
public abstract interface class org/jetbrains/kotlin/gradle/kpm/idea/IdeaKotlinBinaryDependency : org/jetbrains/kotlin/gradle/kpm/idea/IdeaKotlinDependency {
|
||||
public abstract fun getCoordinates ()Lorg/jetbrains/kotlin/gradle/kpm/idea/IdeaKotlinBinaryCoordinates;
|
||||
public abstract interface class org/jetbrains/kotlin/gradle/kpm/idea/IdeaKpmBinaryDependency : org/jetbrains/kotlin/gradle/kpm/idea/IdeaKpmDependency {
|
||||
public abstract fun getCoordinates ()Lorg/jetbrains/kotlin/gradle/kpm/idea/IdeaKpmBinaryCoordinates;
|
||||
}
|
||||
|
||||
public abstract interface class org/jetbrains/kotlin/gradle/kpm/idea/IdeaKotlinCompilationOutput : java/io/Serializable {
|
||||
public abstract interface class org/jetbrains/kotlin/gradle/kpm/idea/IdeaKpmCompilationOutput : java/io/Serializable {
|
||||
public abstract fun getClassesDirs ()Ljava/util/Set;
|
||||
public abstract fun getResourcesDir ()Ljava/io/File;
|
||||
}
|
||||
|
||||
public abstract interface class org/jetbrains/kotlin/gradle/kpm/idea/IdeaKotlinDependency : java/io/Serializable {
|
||||
public abstract interface class org/jetbrains/kotlin/gradle/kpm/idea/IdeaKpmDependency : java/io/Serializable {
|
||||
public static final field CLASSPATH_BINARY_TYPE Ljava/lang/String;
|
||||
public static final field Companion Lorg/jetbrains/kotlin/gradle/kpm/idea/IdeaKotlinDependency$Companion;
|
||||
public static final field Companion Lorg/jetbrains/kotlin/gradle/kpm/idea/IdeaKpmDependency$Companion;
|
||||
public static final field DOCUMENTATION_BINARY_TYPE Ljava/lang/String;
|
||||
public static final field SOURCES_BINARY_TYPE Ljava/lang/String;
|
||||
public abstract fun getCoordinates ()Lorg/jetbrains/kotlin/gradle/kpm/idea/IdeaKotlinDependencyCoordinates;
|
||||
public abstract fun getCoordinates ()Lorg/jetbrains/kotlin/gradle/kpm/idea/IdeaKpmDependencyCoordinates;
|
||||
public abstract fun getExtras ()Lorg/jetbrains/kotlin/tooling/core/Extras;
|
||||
}
|
||||
|
||||
public final class org/jetbrains/kotlin/gradle/kpm/idea/IdeaKotlinDependency$Companion {
|
||||
public final class org/jetbrains/kotlin/gradle/kpm/idea/IdeaKpmDependency$Companion {
|
||||
public static final field CLASSPATH_BINARY_TYPE Ljava/lang/String;
|
||||
public static final field DOCUMENTATION_BINARY_TYPE Ljava/lang/String;
|
||||
public static final field SOURCES_BINARY_TYPE Ljava/lang/String;
|
||||
}
|
||||
|
||||
public abstract interface class org/jetbrains/kotlin/gradle/kpm/idea/IdeaKotlinDependencyCoordinates : java/io/Serializable {
|
||||
public abstract interface class org/jetbrains/kotlin/gradle/kpm/idea/IdeaKpmDependencyCoordinates : java/io/Serializable {
|
||||
}
|
||||
|
||||
public final class org/jetbrains/kotlin/gradle/kpm/idea/IdeaKotlinDependencyKt {
|
||||
public static final fun isClasspathType (Lorg/jetbrains/kotlin/gradle/kpm/idea/IdeaKotlinResolvedBinaryDependency;)Z
|
||||
public static final fun isDocumentationType (Lorg/jetbrains/kotlin/gradle/kpm/idea/IdeaKotlinResolvedBinaryDependency;)Z
|
||||
public static final fun isSourcesType (Lorg/jetbrains/kotlin/gradle/kpm/idea/IdeaKotlinResolvedBinaryDependency;)Z
|
||||
public final class org/jetbrains/kotlin/gradle/kpm/idea/IdeaKpmDependencyKt {
|
||||
public static final fun isClasspathType (Lorg/jetbrains/kotlin/gradle/kpm/idea/IdeaKpmResolvedBinaryDependency;)Z
|
||||
public static final fun isDocumentationType (Lorg/jetbrains/kotlin/gradle/kpm/idea/IdeaKpmResolvedBinaryDependency;)Z
|
||||
public static final fun isSourcesType (Lorg/jetbrains/kotlin/gradle/kpm/idea/IdeaKpmResolvedBinaryDependency;)Z
|
||||
}
|
||||
|
||||
public abstract interface class org/jetbrains/kotlin/gradle/kpm/idea/IdeaKotlinFragment : java/io/Serializable {
|
||||
public abstract fun getCoordinates ()Lorg/jetbrains/kotlin/gradle/kpm/idea/IdeaKotlinFragmentCoordinates;
|
||||
public abstract interface class org/jetbrains/kotlin/gradle/kpm/idea/IdeaKpmFragment : java/io/Serializable {
|
||||
public abstract fun getCoordinates ()Lorg/jetbrains/kotlin/gradle/kpm/idea/IdeaKpmFragmentCoordinates;
|
||||
public abstract fun getDependencies ()Ljava/util/List;
|
||||
public abstract fun getExtras ()Lorg/jetbrains/kotlin/tooling/core/Extras;
|
||||
public abstract fun getLanguageSettings ()Lorg/jetbrains/kotlin/gradle/kpm/idea/IdeaKotlinLanguageSettings;
|
||||
public abstract fun getLanguageSettings ()Lorg/jetbrains/kotlin/gradle/kpm/idea/IdeaKpmLanguageSettings;
|
||||
public abstract fun getPlatforms ()Ljava/util/Set;
|
||||
public abstract fun getResourceDirectories ()Ljava/util/List;
|
||||
public abstract fun getSourceDirectories ()Ljava/util/List;
|
||||
}
|
||||
|
||||
public abstract interface class org/jetbrains/kotlin/gradle/kpm/idea/IdeaKotlinFragmentCoordinates : java/io/Serializable, org/jetbrains/kotlin/gradle/kpm/idea/IdeaKotlinDependencyCoordinates {
|
||||
public abstract interface class org/jetbrains/kotlin/gradle/kpm/idea/IdeaKpmFragmentCoordinates : java/io/Serializable, org/jetbrains/kotlin/gradle/kpm/idea/IdeaKpmDependencyCoordinates {
|
||||
public abstract fun getFragmentName ()Ljava/lang/String;
|
||||
public abstract fun getModule ()Lorg/jetbrains/kotlin/gradle/kpm/idea/IdeaKotlinModuleCoordinates;
|
||||
public abstract fun getModule ()Lorg/jetbrains/kotlin/gradle/kpm/idea/IdeaKpmModuleCoordinates;
|
||||
}
|
||||
|
||||
public final class org/jetbrains/kotlin/gradle/kpm/idea/IdeaKotlinFragmentCoordinatesKt {
|
||||
public static final fun getPath (Lorg/jetbrains/kotlin/gradle/kpm/idea/IdeaKotlinFragmentCoordinates;)Ljava/lang/String;
|
||||
public final class org/jetbrains/kotlin/gradle/kpm/idea/IdeaKpmFragmentCoordinatesKt {
|
||||
public static final fun getPath (Lorg/jetbrains/kotlin/gradle/kpm/idea/IdeaKpmFragmentCoordinates;)Ljava/lang/String;
|
||||
}
|
||||
|
||||
public abstract interface class org/jetbrains/kotlin/gradle/kpm/idea/IdeaKotlinFragmentDependency : org/jetbrains/kotlin/gradle/kpm/idea/IdeaKotlinDependency {
|
||||
public abstract fun getCoordinates ()Lorg/jetbrains/kotlin/gradle/kpm/idea/IdeaKotlinFragmentCoordinates;
|
||||
public abstract fun getType ()Lorg/jetbrains/kotlin/gradle/kpm/idea/IdeaKotlinFragmentDependency$Type;
|
||||
public abstract interface class org/jetbrains/kotlin/gradle/kpm/idea/IdeaKpmFragmentDependency : org/jetbrains/kotlin/gradle/kpm/idea/IdeaKpmDependency {
|
||||
public abstract fun getCoordinates ()Lorg/jetbrains/kotlin/gradle/kpm/idea/IdeaKpmFragmentCoordinates;
|
||||
public abstract fun getType ()Lorg/jetbrains/kotlin/gradle/kpm/idea/IdeaKpmFragmentDependency$Type;
|
||||
}
|
||||
|
||||
public final class org/jetbrains/kotlin/gradle/kpm/idea/IdeaKotlinFragmentDependency$Type : java/lang/Enum, java/io/Serializable {
|
||||
public static final field Companion Lorg/jetbrains/kotlin/gradle/kpm/idea/IdeaKotlinFragmentDependency$Type$Companion;
|
||||
public static final field Friend Lorg/jetbrains/kotlin/gradle/kpm/idea/IdeaKotlinFragmentDependency$Type;
|
||||
public static final field Refines Lorg/jetbrains/kotlin/gradle/kpm/idea/IdeaKotlinFragmentDependency$Type;
|
||||
public static final field Regular Lorg/jetbrains/kotlin/gradle/kpm/idea/IdeaKotlinFragmentDependency$Type;
|
||||
public static fun valueOf (Ljava/lang/String;)Lorg/jetbrains/kotlin/gradle/kpm/idea/IdeaKotlinFragmentDependency$Type;
|
||||
public static fun values ()[Lorg/jetbrains/kotlin/gradle/kpm/idea/IdeaKotlinFragmentDependency$Type;
|
||||
public final class org/jetbrains/kotlin/gradle/kpm/idea/IdeaKpmFragmentDependency$Type : java/lang/Enum, java/io/Serializable {
|
||||
public static final field Companion Lorg/jetbrains/kotlin/gradle/kpm/idea/IdeaKpmFragmentDependency$Type$Companion;
|
||||
public static final field Friend Lorg/jetbrains/kotlin/gradle/kpm/idea/IdeaKpmFragmentDependency$Type;
|
||||
public static final field Refines Lorg/jetbrains/kotlin/gradle/kpm/idea/IdeaKpmFragmentDependency$Type;
|
||||
public static final field Regular Lorg/jetbrains/kotlin/gradle/kpm/idea/IdeaKpmFragmentDependency$Type;
|
||||
public static fun valueOf (Ljava/lang/String;)Lorg/jetbrains/kotlin/gradle/kpm/idea/IdeaKpmFragmentDependency$Type;
|
||||
public static fun values ()[Lorg/jetbrains/kotlin/gradle/kpm/idea/IdeaKpmFragmentDependency$Type;
|
||||
}
|
||||
|
||||
public final class org/jetbrains/kotlin/gradle/kpm/idea/IdeaKotlinFragmentKt {
|
||||
public static final fun getName (Lorg/jetbrains/kotlin/gradle/kpm/idea/IdeaKotlinFragment;)Ljava/lang/String;
|
||||
public final class org/jetbrains/kotlin/gradle/kpm/idea/IdeaKpmFragmentKt {
|
||||
public static final fun getName (Lorg/jetbrains/kotlin/gradle/kpm/idea/IdeaKpmFragment;)Ljava/lang/String;
|
||||
}
|
||||
|
||||
public abstract interface class org/jetbrains/kotlin/gradle/kpm/idea/IdeaKotlinJsPlatformDetails : org/jetbrains/kotlin/gradle/kpm/idea/IdeaKotlinPlatformDetails {
|
||||
public abstract interface class org/jetbrains/kotlin/gradle/kpm/idea/IdeaKpmJsPlatformDetails : org/jetbrains/kotlin/gradle/kpm/idea/IdeaKpmPlatformDetails {
|
||||
public abstract fun isIr ()Z
|
||||
}
|
||||
|
||||
public abstract interface class org/jetbrains/kotlin/gradle/kpm/idea/IdeaKotlinJvmPlatformDetails : org/jetbrains/kotlin/gradle/kpm/idea/IdeaKotlinPlatformDetails {
|
||||
public abstract interface class org/jetbrains/kotlin/gradle/kpm/idea/IdeaKpmJvmPlatformDetails : org/jetbrains/kotlin/gradle/kpm/idea/IdeaKpmPlatformDetails {
|
||||
public abstract fun getJvmTarget ()Ljava/lang/String;
|
||||
}
|
||||
|
||||
public abstract interface class org/jetbrains/kotlin/gradle/kpm/idea/IdeaKotlinLanguageSettings : java/io/Serializable {
|
||||
public abstract interface class org/jetbrains/kotlin/gradle/kpm/idea/IdeaKpmLanguageSettings : java/io/Serializable {
|
||||
public abstract fun getApiVersion ()Ljava/lang/String;
|
||||
public abstract fun getCompilerPluginArguments ()Ljava/util/List;
|
||||
public abstract fun getCompilerPluginClasspath ()Ljava/util/List;
|
||||
@@ -98,12 +98,12 @@ public abstract interface class org/jetbrains/kotlin/gradle/kpm/idea/IdeaKotlinL
|
||||
public abstract fun isProgressiveMode ()Z
|
||||
}
|
||||
|
||||
public abstract interface class org/jetbrains/kotlin/gradle/kpm/idea/IdeaKotlinModule : java/io/Serializable {
|
||||
public abstract fun getCoordinates ()Lorg/jetbrains/kotlin/gradle/kpm/idea/IdeaKotlinModuleCoordinates;
|
||||
public abstract interface class org/jetbrains/kotlin/gradle/kpm/idea/IdeaKpmModule : java/io/Serializable {
|
||||
public abstract fun getCoordinates ()Lorg/jetbrains/kotlin/gradle/kpm/idea/IdeaKpmModuleCoordinates;
|
||||
public abstract fun getFragments ()Ljava/util/List;
|
||||
}
|
||||
|
||||
public abstract interface class org/jetbrains/kotlin/gradle/kpm/idea/IdeaKotlinModuleCoordinates : java/io/Serializable {
|
||||
public abstract interface class org/jetbrains/kotlin/gradle/kpm/idea/IdeaKpmModuleCoordinates : java/io/Serializable {
|
||||
public abstract fun getBuildId ()Ljava/lang/String;
|
||||
public abstract fun getModuleClassifier ()Ljava/lang/String;
|
||||
public abstract fun getModuleName ()Ljava/lang/String;
|
||||
@@ -111,51 +111,51 @@ public abstract interface class org/jetbrains/kotlin/gradle/kpm/idea/IdeaKotlinM
|
||||
public abstract fun getProjectPath ()Ljava/lang/String;
|
||||
}
|
||||
|
||||
public final class org/jetbrains/kotlin/gradle/kpm/idea/IdeaKotlinModuleCoordinatesKt {
|
||||
public static final fun getPath (Lorg/jetbrains/kotlin/gradle/kpm/idea/IdeaKotlinModuleCoordinates;)Ljava/lang/String;
|
||||
public final class org/jetbrains/kotlin/gradle/kpm/idea/IdeaKpmModuleCoordinatesKt {
|
||||
public static final fun getPath (Lorg/jetbrains/kotlin/gradle/kpm/idea/IdeaKpmModuleCoordinates;)Ljava/lang/String;
|
||||
}
|
||||
|
||||
public final class org/jetbrains/kotlin/gradle/kpm/idea/IdeaKotlinModuleKt {
|
||||
public static final fun getModuleClassifier (Lorg/jetbrains/kotlin/gradle/kpm/idea/IdeaKotlinModule;)Ljava/lang/String;
|
||||
public static final fun getName (Lorg/jetbrains/kotlin/gradle/kpm/idea/IdeaKotlinModule;)Ljava/lang/String;
|
||||
public final class org/jetbrains/kotlin/gradle/kpm/idea/IdeaKpmModuleKt {
|
||||
public static final fun getModuleClassifier (Lorg/jetbrains/kotlin/gradle/kpm/idea/IdeaKpmModule;)Ljava/lang/String;
|
||||
public static final fun getName (Lorg/jetbrains/kotlin/gradle/kpm/idea/IdeaKpmModule;)Ljava/lang/String;
|
||||
}
|
||||
|
||||
public abstract interface class org/jetbrains/kotlin/gradle/kpm/idea/IdeaKotlinNativePlatformDetails : org/jetbrains/kotlin/gradle/kpm/idea/IdeaKotlinPlatformDetails {
|
||||
public abstract interface class org/jetbrains/kotlin/gradle/kpm/idea/IdeaKpmNativePlatformDetails : org/jetbrains/kotlin/gradle/kpm/idea/IdeaKpmPlatformDetails {
|
||||
public abstract fun getKonanTarget ()Ljava/lang/String;
|
||||
}
|
||||
|
||||
public abstract interface class org/jetbrains/kotlin/gradle/kpm/idea/IdeaKotlinPlatform : java/io/Serializable {
|
||||
public static final field Companion Lorg/jetbrains/kotlin/gradle/kpm/idea/IdeaKotlinPlatform$Companion;
|
||||
public abstract interface class org/jetbrains/kotlin/gradle/kpm/idea/IdeaKpmPlatform : java/io/Serializable {
|
||||
public static final field Companion Lorg/jetbrains/kotlin/gradle/kpm/idea/IdeaKpmPlatform$Companion;
|
||||
public static final field jsPlatformType Ljava/lang/String;
|
||||
public static final field jvmPlatformType Ljava/lang/String;
|
||||
public static final field nativePlatformType Ljava/lang/String;
|
||||
public static final field wasmPlatformType Ljava/lang/String;
|
||||
public abstract fun getPlatformDetails ()Lorg/jetbrains/kotlin/gradle/kpm/idea/IdeaKotlinPlatformDetails;
|
||||
public abstract fun getPlatformDetails ()Lorg/jetbrains/kotlin/gradle/kpm/idea/IdeaKpmPlatformDetails;
|
||||
public abstract fun getPlatformType ()Ljava/lang/String;
|
||||
}
|
||||
|
||||
public final class org/jetbrains/kotlin/gradle/kpm/idea/IdeaKotlinPlatform$Companion {
|
||||
public final class org/jetbrains/kotlin/gradle/kpm/idea/IdeaKpmPlatform$Companion {
|
||||
public static final field jsPlatformType Ljava/lang/String;
|
||||
public static final field jvmPlatformType Ljava/lang/String;
|
||||
public static final field nativePlatformType Ljava/lang/String;
|
||||
public static final field wasmPlatformType Ljava/lang/String;
|
||||
public final fun getUnknown ()Lorg/jetbrains/kotlin/gradle/kpm/idea/IdeaKotlinPlatform;
|
||||
public final fun getUnknown ()Lorg/jetbrains/kotlin/gradle/kpm/idea/IdeaKpmPlatform;
|
||||
}
|
||||
|
||||
public abstract interface class org/jetbrains/kotlin/gradle/kpm/idea/IdeaKotlinPlatformDetails : java/io/Serializable {
|
||||
public abstract interface class org/jetbrains/kotlin/gradle/kpm/idea/IdeaKpmPlatformDetails : java/io/Serializable {
|
||||
}
|
||||
|
||||
public final class org/jetbrains/kotlin/gradle/kpm/idea/IdeaKotlinPlatformKt {
|
||||
public static final fun getJsOrNull (Lorg/jetbrains/kotlin/gradle/kpm/idea/IdeaKotlinPlatform;)Lorg/jetbrains/kotlin/gradle/kpm/idea/IdeaKotlinJsPlatformDetails;
|
||||
public static final fun getJvmOrNull (Lorg/jetbrains/kotlin/gradle/kpm/idea/IdeaKotlinPlatform;)Lorg/jetbrains/kotlin/gradle/kpm/idea/IdeaKotlinJvmPlatformDetails;
|
||||
public static final fun getNativeOrNull (Lorg/jetbrains/kotlin/gradle/kpm/idea/IdeaKotlinPlatform;)Lorg/jetbrains/kotlin/gradle/kpm/idea/IdeaKotlinNativePlatformDetails;
|
||||
public static final fun isJs (Lorg/jetbrains/kotlin/gradle/kpm/idea/IdeaKotlinPlatform;)Z
|
||||
public static final fun isJvm (Lorg/jetbrains/kotlin/gradle/kpm/idea/IdeaKotlinPlatform;)Z
|
||||
public static final fun isNative (Lorg/jetbrains/kotlin/gradle/kpm/idea/IdeaKotlinPlatform;)Z
|
||||
public static final fun isWasm (Lorg/jetbrains/kotlin/gradle/kpm/idea/IdeaKotlinPlatform;)Z
|
||||
public final class org/jetbrains/kotlin/gradle/kpm/idea/IdeaKpmPlatformKt {
|
||||
public static final fun getJsOrNull (Lorg/jetbrains/kotlin/gradle/kpm/idea/IdeaKpmPlatform;)Lorg/jetbrains/kotlin/gradle/kpm/idea/IdeaKpmJsPlatformDetails;
|
||||
public static final fun getJvmOrNull (Lorg/jetbrains/kotlin/gradle/kpm/idea/IdeaKpmPlatform;)Lorg/jetbrains/kotlin/gradle/kpm/idea/IdeaKpmJvmPlatformDetails;
|
||||
public static final fun getNativeOrNull (Lorg/jetbrains/kotlin/gradle/kpm/idea/IdeaKpmPlatform;)Lorg/jetbrains/kotlin/gradle/kpm/idea/IdeaKpmNativePlatformDetails;
|
||||
public static final fun isJs (Lorg/jetbrains/kotlin/gradle/kpm/idea/IdeaKpmPlatform;)Z
|
||||
public static final fun isJvm (Lorg/jetbrains/kotlin/gradle/kpm/idea/IdeaKpmPlatform;)Z
|
||||
public static final fun isNative (Lorg/jetbrains/kotlin/gradle/kpm/idea/IdeaKpmPlatform;)Z
|
||||
public static final fun isWasm (Lorg/jetbrains/kotlin/gradle/kpm/idea/IdeaKpmPlatform;)Z
|
||||
}
|
||||
|
||||
public abstract interface class org/jetbrains/kotlin/gradle/kpm/idea/IdeaKotlinProjectModel : java/io/Serializable {
|
||||
public abstract interface class org/jetbrains/kotlin/gradle/kpm/idea/IdeaKpmProject : java/io/Serializable {
|
||||
public abstract fun getCoreLibrariesVersion ()Ljava/lang/String;
|
||||
public abstract fun getExplicitApiModeCliOption ()Ljava/lang/String;
|
||||
public abstract fun getGradlePluginVersion ()Ljava/lang/String;
|
||||
@@ -163,30 +163,30 @@ public abstract interface class org/jetbrains/kotlin/gradle/kpm/idea/IdeaKotlinP
|
||||
public abstract fun getModules ()Ljava/util/List;
|
||||
}
|
||||
|
||||
public abstract interface class org/jetbrains/kotlin/gradle/kpm/idea/IdeaKotlinResolvedBinaryDependency : org/jetbrains/kotlin/gradle/kpm/idea/IdeaKotlinBinaryDependency {
|
||||
public abstract interface class org/jetbrains/kotlin/gradle/kpm/idea/IdeaKpmResolvedBinaryDependency : org/jetbrains/kotlin/gradle/kpm/idea/IdeaKpmBinaryDependency {
|
||||
public abstract fun getBinaryFile ()Ljava/io/File;
|
||||
public abstract fun getBinaryType ()Ljava/lang/String;
|
||||
}
|
||||
|
||||
public abstract interface class org/jetbrains/kotlin/gradle/kpm/idea/IdeaKotlinResourceDirectory : java/io/Serializable {
|
||||
public abstract interface class org/jetbrains/kotlin/gradle/kpm/idea/IdeaKpmResourceDirectory : java/io/Serializable {
|
||||
public abstract fun getFile ()Ljava/io/File;
|
||||
}
|
||||
|
||||
public abstract interface class org/jetbrains/kotlin/gradle/kpm/idea/IdeaKotlinSourceDirectory : java/io/Serializable {
|
||||
public abstract interface class org/jetbrains/kotlin/gradle/kpm/idea/IdeaKpmSourceDirectory : java/io/Serializable {
|
||||
public abstract fun getFile ()Ljava/io/File;
|
||||
}
|
||||
|
||||
public abstract interface class org/jetbrains/kotlin/gradle/kpm/idea/IdeaKotlinUnresolvedBinaryDependency : org/jetbrains/kotlin/gradle/kpm/idea/IdeaKotlinBinaryDependency {
|
||||
public abstract interface class org/jetbrains/kotlin/gradle/kpm/idea/IdeaKpmUnresolvedBinaryDependency : org/jetbrains/kotlin/gradle/kpm/idea/IdeaKpmBinaryDependency {
|
||||
public abstract fun getCause ()Ljava/lang/String;
|
||||
}
|
||||
|
||||
public abstract interface class org/jetbrains/kotlin/gradle/kpm/idea/IdeaKotlinVariant : java/io/Serializable, org/jetbrains/kotlin/gradle/kpm/idea/IdeaKotlinFragment {
|
||||
public abstract fun getCompilationOutputs ()Lorg/jetbrains/kotlin/gradle/kpm/idea/IdeaKotlinCompilationOutput;
|
||||
public abstract fun getPlatform ()Lorg/jetbrains/kotlin/gradle/kpm/idea/IdeaKotlinPlatform;
|
||||
public abstract interface class org/jetbrains/kotlin/gradle/kpm/idea/IdeaKpmVariant : java/io/Serializable, org/jetbrains/kotlin/gradle/kpm/idea/IdeaKpmFragment {
|
||||
public abstract fun getCompilationOutputs ()Lorg/jetbrains/kotlin/gradle/kpm/idea/IdeaKpmCompilationOutput;
|
||||
public abstract fun getPlatform ()Lorg/jetbrains/kotlin/gradle/kpm/idea/IdeaKpmPlatform;
|
||||
public abstract fun getVariantAttributes ()Ljava/util/Map;
|
||||
}
|
||||
|
||||
public abstract interface class org/jetbrains/kotlin/gradle/kpm/idea/IdeaKotlinWasmPlatformDetails : org/jetbrains/kotlin/gradle/kpm/idea/IdeaKotlinPlatformDetails {
|
||||
public abstract interface class org/jetbrains/kotlin/gradle/kpm/idea/IdeaKpmWasmPlatformDetails : org/jetbrains/kotlin/gradle/kpm/idea/IdeaKpmPlatformDetails {
|
||||
}
|
||||
|
||||
public abstract interface annotation class org/jetbrains/kotlin/gradle/kpm/idea/InternalKotlinGradlePluginApi : java/lang/annotation/Annotation {
|
||||
|
||||
+17
-16
@@ -8,31 +8,32 @@ package org.jetbrains.kotlin.gradle.kpm.idea
|
||||
import org.jetbrains.kotlin.tooling.core.Extras
|
||||
import java.io.Serializable
|
||||
|
||||
sealed interface IdeaKotlinFragment : Serializable {
|
||||
val coordinates: IdeaKotlinFragmentCoordinates
|
||||
val platforms: Set<IdeaKotlinPlatform>
|
||||
val languageSettings: IdeaKotlinLanguageSettings?
|
||||
val dependencies: List<IdeaKotlinDependency>
|
||||
val sourceDirectories: List<IdeaKotlinSourceDirectory>
|
||||
val resourceDirectories: List<IdeaKotlinResourceDirectory>
|
||||
sealed interface IdeaKpmFragment : Serializable {
|
||||
val coordinates: IdeaKpmFragmentCoordinates
|
||||
val platforms: Set<IdeaKpmPlatform>
|
||||
val languageSettings: IdeaKpmLanguageSettings?
|
||||
val dependencies: List<IdeaKpmDependency>
|
||||
val sourceDirectories: List<IdeaKpmSourceDirectory>
|
||||
val resourceDirectories: List<IdeaKpmResourceDirectory>
|
||||
val extras: Extras
|
||||
}
|
||||
|
||||
val IdeaKotlinFragment.name get() = coordinates.fragmentName
|
||||
val IdeaKpmFragment.name get() = coordinates.fragmentName
|
||||
|
||||
@InternalKotlinGradlePluginApi
|
||||
data class IdeaKotlinFragmentImpl(
|
||||
override val coordinates: IdeaKotlinFragmentCoordinates,
|
||||
override val platforms: Set<IdeaKotlinPlatform>,
|
||||
override val languageSettings: IdeaKotlinLanguageSettings?,
|
||||
override val dependencies: List<IdeaKotlinDependency>,
|
||||
override val sourceDirectories: List<IdeaKotlinSourceDirectory>,
|
||||
override val resourceDirectories: List<IdeaKotlinResourceDirectory>,
|
||||
data class IdeaKpmFragmentImpl(
|
||||
override val coordinates: IdeaKpmFragmentCoordinates,
|
||||
override val platforms: Set<IdeaKpmPlatform>,
|
||||
override val languageSettings: IdeaKpmLanguageSettings?,
|
||||
override val dependencies: List<IdeaKpmDependency>,
|
||||
override val sourceDirectories: List<IdeaKpmSourceDirectory>,
|
||||
override val resourceDirectories: List<IdeaKpmResourceDirectory>,
|
||||
override val extras: Extras
|
||||
) : IdeaKotlinFragment {
|
||||
) : IdeaKpmFragment {
|
||||
|
||||
@InternalKotlinGradlePluginApi
|
||||
companion object {
|
||||
private const val serialVersionUID = 0L
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+9
-9
@@ -7,20 +7,20 @@ package org.jetbrains.kotlin.gradle.kpm.idea
|
||||
|
||||
import java.io.Serializable
|
||||
|
||||
sealed interface IdeaKotlinModule : Serializable {
|
||||
val coordinates: IdeaKotlinModuleCoordinates
|
||||
val fragments: List<IdeaKotlinFragment>
|
||||
sealed interface IdeaKpmModule : Serializable {
|
||||
val coordinates: IdeaKpmModuleCoordinates
|
||||
val fragments: List<IdeaKpmFragment>
|
||||
}
|
||||
|
||||
val IdeaKotlinModule.name get() = coordinates.moduleName
|
||||
val IdeaKpmModule.name get() = coordinates.moduleName
|
||||
|
||||
val IdeaKotlinModule.moduleClassifier get() = coordinates.moduleClassifier
|
||||
val IdeaKpmModule.moduleClassifier get() = coordinates.moduleClassifier
|
||||
|
||||
@InternalKotlinGradlePluginApi
|
||||
data class IdeaKotlinModuleImpl(
|
||||
override val coordinates: IdeaKotlinModuleCoordinates,
|
||||
override val fragments: List<IdeaKotlinFragment>
|
||||
) : IdeaKotlinModule {
|
||||
data class IdeaKpmModuleImpl(
|
||||
override val coordinates: IdeaKpmModuleCoordinates,
|
||||
override val fragments: List<IdeaKpmFragment>
|
||||
) : IdeaKpmModule {
|
||||
|
||||
@InternalKotlinGradlePluginApi
|
||||
companion object {
|
||||
|
||||
+30
-30
@@ -9,12 +9,12 @@ package org.jetbrains.kotlin.gradle.kpm.idea
|
||||
|
||||
import java.io.Serializable
|
||||
|
||||
sealed interface IdeaKotlinPlatform : Serializable {
|
||||
sealed interface IdeaKpmPlatform : Serializable {
|
||||
val platformType: String
|
||||
val platformDetails: IdeaKotlinPlatformDetails?
|
||||
val platformDetails: IdeaKpmPlatformDetails?
|
||||
|
||||
companion object {
|
||||
val unknown: IdeaKotlinPlatform = IdeaKotlinPlatformImpl("unknown", null)
|
||||
val unknown: IdeaKpmPlatform = IdeaKpmPlatformImpl("unknown", null)
|
||||
|
||||
const val wasmPlatformType = "wasm"
|
||||
const val nativePlatformType = "native"
|
||||
@@ -23,77 +23,77 @@ sealed interface IdeaKotlinPlatform : Serializable {
|
||||
}
|
||||
}
|
||||
|
||||
sealed interface IdeaKotlinPlatformDetails : Serializable
|
||||
sealed interface IdeaKpmPlatformDetails : Serializable
|
||||
|
||||
sealed interface IdeaKotlinWasmPlatformDetails : IdeaKotlinPlatformDetails
|
||||
sealed interface IdeaKpmWasmPlatformDetails : IdeaKpmPlatformDetails
|
||||
|
||||
sealed interface IdeaKotlinNativePlatformDetails : IdeaKotlinPlatformDetails {
|
||||
sealed interface IdeaKpmNativePlatformDetails : IdeaKpmPlatformDetails {
|
||||
val konanTarget: String
|
||||
}
|
||||
|
||||
sealed interface IdeaKotlinJvmPlatformDetails : IdeaKotlinPlatformDetails {
|
||||
sealed interface IdeaKpmJvmPlatformDetails : IdeaKpmPlatformDetails {
|
||||
val jvmTarget: String
|
||||
}
|
||||
|
||||
sealed interface IdeaKotlinJsPlatformDetails : IdeaKotlinPlatformDetails {
|
||||
sealed interface IdeaKpmJsPlatformDetails : IdeaKpmPlatformDetails {
|
||||
val isIr: Boolean
|
||||
}
|
||||
|
||||
@InternalKotlinGradlePluginApi
|
||||
fun IdeaKotlinPlatform.Companion.wasm(): IdeaKotlinPlatform {
|
||||
return IdeaKotlinPlatformImpl(wasmPlatformType, IdeaKotlinWasmPlatformDetailsImpl)
|
||||
fun IdeaKpmPlatform.Companion.wasm(): IdeaKpmPlatform {
|
||||
return IdeaKpmPlatformImpl(wasmPlatformType, IdeaKpmWasmPlatformDetailsImpl)
|
||||
}
|
||||
|
||||
@InternalKotlinGradlePluginApi
|
||||
fun IdeaKotlinPlatform.Companion.native(konanTarget: String): IdeaKotlinPlatform {
|
||||
return IdeaKotlinPlatformImpl(nativePlatformType, IdeaKotlinNativePlatformDetailsImpl(konanTarget))
|
||||
fun IdeaKpmPlatform.Companion.native(konanTarget: String): IdeaKpmPlatform {
|
||||
return IdeaKpmPlatformImpl(nativePlatformType, IdeaKpmNativePlatformDetailsImpl(konanTarget))
|
||||
}
|
||||
|
||||
@InternalKotlinGradlePluginApi
|
||||
fun IdeaKotlinPlatform.Companion.jvm(jvmTarget: String): IdeaKotlinPlatform {
|
||||
return IdeaKotlinPlatformImpl(jvmPlatformType, IdeaKotlinJvmPlatformDetailsImpl(jvmTarget))
|
||||
fun IdeaKpmPlatform.Companion.jvm(jvmTarget: String): IdeaKpmPlatform {
|
||||
return IdeaKpmPlatformImpl(jvmPlatformType, IdeaKpmJvmPlatformDetailsImpl(jvmTarget))
|
||||
}
|
||||
|
||||
@InternalKotlinGradlePluginApi
|
||||
fun IdeaKotlinPlatform.Companion.js(isIr: Boolean): IdeaKotlinPlatform {
|
||||
return IdeaKotlinPlatformImpl(jsPlatformType, IdeaKotlinJsPlatformDetailsImpl(isIr))
|
||||
fun IdeaKpmPlatform.Companion.js(isIr: Boolean): IdeaKpmPlatform {
|
||||
return IdeaKpmPlatformImpl(jsPlatformType, IdeaKpmJsPlatformDetailsImpl(isIr))
|
||||
}
|
||||
|
||||
val IdeaKotlinPlatform.isWasm get() = platformType == IdeaKotlinPlatform.wasmPlatformType
|
||||
val IdeaKotlinPlatform.isNative get() = platformType == IdeaKotlinPlatform.nativePlatformType
|
||||
val IdeaKotlinPlatform.isJvm get() = platformType == IdeaKotlinPlatform.jvmPlatformType
|
||||
val IdeaKotlinPlatform.isJs get() = platformType == IdeaKotlinPlatform.jsPlatformType
|
||||
val IdeaKpmPlatform.isWasm get() = platformType == IdeaKpmPlatform.wasmPlatformType
|
||||
val IdeaKpmPlatform.isNative get() = platformType == IdeaKpmPlatform.nativePlatformType
|
||||
val IdeaKpmPlatform.isJvm get() = platformType == IdeaKpmPlatform.jvmPlatformType
|
||||
val IdeaKpmPlatform.isJs get() = platformType == IdeaKpmPlatform.jsPlatformType
|
||||
|
||||
val IdeaKotlinPlatform.nativeOrNull get() = (platformDetails as? IdeaKotlinNativePlatformDetails)
|
||||
val IdeaKotlinPlatform.jvmOrNull get() = (platformDetails as? IdeaKotlinJvmPlatformDetails)
|
||||
val IdeaKotlinPlatform.jsOrNull get() = (platformDetails as? IdeaKotlinJsPlatformDetails)
|
||||
val IdeaKpmPlatform.nativeOrNull get() = (platformDetails as? IdeaKpmNativePlatformDetails)
|
||||
val IdeaKpmPlatform.jvmOrNull get() = (platformDetails as? IdeaKpmJvmPlatformDetails)
|
||||
val IdeaKpmPlatform.jsOrNull get() = (platformDetails as? IdeaKpmJsPlatformDetails)
|
||||
|
||||
private data class IdeaKotlinPlatformImpl(
|
||||
override val platformType: String, override val platformDetails: IdeaKotlinPlatformDetails?
|
||||
) : IdeaKotlinPlatform {
|
||||
private data class IdeaKpmPlatformImpl(
|
||||
override val platformType: String, override val platformDetails: IdeaKpmPlatformDetails?
|
||||
) : IdeaKpmPlatform {
|
||||
|
||||
companion object {
|
||||
const val serialVersionUID = 0L
|
||||
}
|
||||
}
|
||||
|
||||
private object IdeaKotlinWasmPlatformDetailsImpl : IdeaKotlinWasmPlatformDetails {
|
||||
private object IdeaKpmWasmPlatformDetailsImpl : IdeaKpmWasmPlatformDetails {
|
||||
private const val serialVersionUID = 0L
|
||||
}
|
||||
|
||||
private data class IdeaKotlinJvmPlatformDetailsImpl(override val jvmTarget: String) : IdeaKotlinJvmPlatformDetails {
|
||||
private data class IdeaKpmJvmPlatformDetailsImpl(override val jvmTarget: String) : IdeaKpmJvmPlatformDetails {
|
||||
private companion object {
|
||||
const val serialVersionUID = 0L
|
||||
}
|
||||
}
|
||||
|
||||
private data class IdeaKotlinNativePlatformDetailsImpl(override val konanTarget: String) : IdeaKotlinNativePlatformDetails {
|
||||
private data class IdeaKpmNativePlatformDetailsImpl(override val konanTarget: String) : IdeaKpmNativePlatformDetails {
|
||||
private companion object {
|
||||
const val serialVersionUID = 0L
|
||||
}
|
||||
}
|
||||
|
||||
private data class IdeaKotlinJsPlatformDetailsImpl(override val isIr: Boolean) : IdeaKotlinJsPlatformDetails {
|
||||
private data class IdeaKpmJsPlatformDetailsImpl(override val isIr: Boolean) : IdeaKpmJsPlatformDetails {
|
||||
private companion object {
|
||||
const val serialVersionUID = 0L
|
||||
}
|
||||
|
||||
+3
-3
@@ -5,7 +5,7 @@
|
||||
|
||||
package org.jetbrains.kotlin.gradle.kpm.idea
|
||||
|
||||
sealed interface IdeaKotlinBinaryCoordinates : IdeaKotlinDependencyCoordinates {
|
||||
sealed interface IdeaKpmBinaryCoordinates : IdeaKpmDependencyCoordinates {
|
||||
val group: String
|
||||
val module: String
|
||||
val version: String
|
||||
@@ -14,13 +14,13 @@ sealed interface IdeaKotlinBinaryCoordinates : IdeaKotlinDependencyCoordinates {
|
||||
}
|
||||
|
||||
@InternalKotlinGradlePluginApi
|
||||
data class IdeaKotlinBinaryCoordinatesImpl(
|
||||
data class IdeaKpmBinaryCoordinatesImpl(
|
||||
override val group: String,
|
||||
override val module: String,
|
||||
override val version: String,
|
||||
override val kotlinModuleName: String? = null,
|
||||
override val kotlinFragmentName: String? = null
|
||||
) : IdeaKotlinBinaryCoordinates {
|
||||
) : IdeaKpmBinaryCoordinates {
|
||||
|
||||
override fun toString(): String {
|
||||
return "$group:$module:$version" +
|
||||
+3
-3
@@ -8,16 +8,16 @@ package org.jetbrains.kotlin.gradle.kpm.idea
|
||||
import java.io.File
|
||||
import java.io.Serializable
|
||||
|
||||
sealed interface IdeaKotlinCompilationOutput : Serializable {
|
||||
sealed interface IdeaKpmCompilationOutput : Serializable {
|
||||
val classesDirs: Set<File>
|
||||
val resourcesDir: File?
|
||||
}
|
||||
|
||||
@InternalKotlinGradlePluginApi
|
||||
data class IdeaKotlinCompilationOutputImpl(
|
||||
data class IdeaKpmCompilationOutputImpl(
|
||||
override val classesDirs: Set<File>,
|
||||
override val resourcesDir: File?
|
||||
) : IdeaKotlinCompilationOutput {
|
||||
) : IdeaKpmCompilationOutput {
|
||||
|
||||
@InternalKotlinGradlePluginApi
|
||||
companion object {
|
||||
+24
-24
@@ -7,17 +7,17 @@
|
||||
|
||||
package org.jetbrains.kotlin.gradle.kpm.idea
|
||||
|
||||
import org.jetbrains.kotlin.gradle.kpm.idea.IdeaKotlinDependency.Companion.CLASSPATH_BINARY_TYPE
|
||||
import org.jetbrains.kotlin.gradle.kpm.idea.IdeaKotlinDependency.Companion.DOCUMENTATION_BINARY_TYPE
|
||||
import org.jetbrains.kotlin.gradle.kpm.idea.IdeaKotlinDependency.Companion.SOURCES_BINARY_TYPE
|
||||
import org.jetbrains.kotlin.gradle.kpm.idea.IdeaKpmDependency.Companion.CLASSPATH_BINARY_TYPE
|
||||
import org.jetbrains.kotlin.gradle.kpm.idea.IdeaKpmDependency.Companion.DOCUMENTATION_BINARY_TYPE
|
||||
import org.jetbrains.kotlin.gradle.kpm.idea.IdeaKpmDependency.Companion.SOURCES_BINARY_TYPE
|
||||
import org.jetbrains.kotlin.tooling.core.Extras
|
||||
import org.jetbrains.kotlin.tooling.core.emptyExtras
|
||||
import java.io.File
|
||||
import java.io.Serializable
|
||||
import java.util.*
|
||||
|
||||
sealed interface IdeaKotlinDependency : Serializable {
|
||||
val coordinates: IdeaKotlinDependencyCoordinates?
|
||||
sealed interface IdeaKpmDependency : Serializable {
|
||||
val coordinates: IdeaKpmDependencyCoordinates?
|
||||
val extras: Extras
|
||||
|
||||
companion object {
|
||||
@@ -27,7 +27,7 @@ sealed interface IdeaKotlinDependency : Serializable {
|
||||
}
|
||||
}
|
||||
|
||||
sealed interface IdeaKotlinFragmentDependency : IdeaKotlinDependency {
|
||||
sealed interface IdeaKpmFragmentDependency : IdeaKpmDependency {
|
||||
enum class Type : Serializable {
|
||||
Regular, Friend, Refines;
|
||||
|
||||
@@ -38,32 +38,32 @@ sealed interface IdeaKotlinFragmentDependency : IdeaKotlinDependency {
|
||||
}
|
||||
|
||||
val type: Type
|
||||
override val coordinates: IdeaKotlinFragmentCoordinates
|
||||
override val coordinates: IdeaKpmFragmentCoordinates
|
||||
}
|
||||
|
||||
sealed interface IdeaKotlinBinaryDependency : IdeaKotlinDependency {
|
||||
override val coordinates: IdeaKotlinBinaryCoordinates?
|
||||
sealed interface IdeaKpmBinaryDependency : IdeaKpmDependency {
|
||||
override val coordinates: IdeaKpmBinaryCoordinates?
|
||||
}
|
||||
|
||||
sealed interface IdeaKotlinUnresolvedBinaryDependency : IdeaKotlinBinaryDependency {
|
||||
sealed interface IdeaKpmUnresolvedBinaryDependency : IdeaKpmBinaryDependency {
|
||||
val cause: String?
|
||||
}
|
||||
|
||||
sealed interface IdeaKotlinResolvedBinaryDependency : IdeaKotlinBinaryDependency {
|
||||
sealed interface IdeaKpmResolvedBinaryDependency : IdeaKpmBinaryDependency {
|
||||
val binaryType: String
|
||||
val binaryFile: File
|
||||
}
|
||||
|
||||
val IdeaKotlinResolvedBinaryDependency.isSourcesType get() = binaryType == SOURCES_BINARY_TYPE
|
||||
val IdeaKotlinResolvedBinaryDependency.isDocumentationType get() = binaryType == DOCUMENTATION_BINARY_TYPE
|
||||
val IdeaKotlinResolvedBinaryDependency.isClasspathType get() = binaryType == CLASSPATH_BINARY_TYPE
|
||||
val IdeaKpmResolvedBinaryDependency.isSourcesType get() = binaryType == SOURCES_BINARY_TYPE
|
||||
val IdeaKpmResolvedBinaryDependency.isDocumentationType get() = binaryType == DOCUMENTATION_BINARY_TYPE
|
||||
val IdeaKpmResolvedBinaryDependency.isClasspathType get() = binaryType == CLASSPATH_BINARY_TYPE
|
||||
|
||||
@InternalKotlinGradlePluginApi
|
||||
data class IdeaKotlinFragmentDependencyImpl(
|
||||
override val type: IdeaKotlinFragmentDependency.Type,
|
||||
override val coordinates: IdeaKotlinFragmentCoordinates,
|
||||
data class IdeaKpmFragmentDependencyImpl(
|
||||
override val type: IdeaKpmFragmentDependency.Type,
|
||||
override val coordinates: IdeaKpmFragmentCoordinates,
|
||||
override val extras: Extras = emptyExtras()
|
||||
) : IdeaKotlinFragmentDependency {
|
||||
) : IdeaKpmFragmentDependency {
|
||||
|
||||
override fun toString(): String {
|
||||
@Suppress("DEPRECATION")
|
||||
@@ -77,12 +77,12 @@ data class IdeaKotlinFragmentDependencyImpl(
|
||||
}
|
||||
|
||||
@InternalKotlinGradlePluginApi
|
||||
data class IdeaKotlinResolvedBinaryDependencyImpl(
|
||||
override val coordinates: IdeaKotlinBinaryCoordinates?,
|
||||
data class IdeaKpmResolvedBinaryDependencyImpl(
|
||||
override val coordinates: IdeaKpmBinaryCoordinates?,
|
||||
override val binaryType: String,
|
||||
override val binaryFile: File,
|
||||
override val extras: Extras = emptyExtras()
|
||||
) : IdeaKotlinResolvedBinaryDependency {
|
||||
) : IdeaKpmResolvedBinaryDependency {
|
||||
|
||||
override fun toString(): String {
|
||||
return "${binaryType.split(".").last()}://$coordinates/${binaryFile.name}"
|
||||
@@ -95,11 +95,11 @@ data class IdeaKotlinResolvedBinaryDependencyImpl(
|
||||
}
|
||||
|
||||
@InternalKotlinGradlePluginApi
|
||||
data class IdeaKotlinUnresolvedBinaryDependencyImpl(
|
||||
data class IdeaKpmUnresolvedBinaryDependencyImpl(
|
||||
override val cause: String?,
|
||||
override val coordinates: IdeaKotlinBinaryCoordinates?,
|
||||
override val coordinates: IdeaKpmBinaryCoordinates?,
|
||||
override val extras: Extras = emptyExtras()
|
||||
) : IdeaKotlinUnresolvedBinaryDependency {
|
||||
) : IdeaKpmUnresolvedBinaryDependency {
|
||||
|
||||
@InternalKotlinGradlePluginApi
|
||||
companion object {
|
||||
+1
-1
@@ -7,4 +7,4 @@ package org.jetbrains.kotlin.gradle.kpm.idea
|
||||
|
||||
import java.io.Serializable
|
||||
|
||||
sealed interface IdeaKotlinDependencyCoordinates : Serializable
|
||||
sealed interface IdeaKpmDependencyCoordinates : Serializable
|
||||
+6
-6
@@ -7,16 +7,16 @@ package org.jetbrains.kotlin.gradle.kpm.idea
|
||||
|
||||
import java.io.Serializable
|
||||
|
||||
sealed interface IdeaKotlinFragmentCoordinates : Serializable, IdeaKotlinDependencyCoordinates {
|
||||
val module: IdeaKotlinModuleCoordinates
|
||||
sealed interface IdeaKpmFragmentCoordinates : Serializable, IdeaKpmDependencyCoordinates {
|
||||
val module: IdeaKpmModuleCoordinates
|
||||
val fragmentName: String
|
||||
}
|
||||
|
||||
@InternalKotlinGradlePluginApi
|
||||
data class IdeaKotlinFragmentCoordinatesImpl(
|
||||
override val module: IdeaKotlinModuleCoordinates,
|
||||
data class IdeaKpmFragmentCoordinatesImpl(
|
||||
override val module: IdeaKpmModuleCoordinates,
|
||||
override val fragmentName: String
|
||||
) : IdeaKotlinFragmentCoordinates {
|
||||
) : IdeaKpmFragmentCoordinates {
|
||||
|
||||
override fun toString(): String = path
|
||||
|
||||
@@ -26,5 +26,5 @@ data class IdeaKotlinFragmentCoordinatesImpl(
|
||||
}
|
||||
}
|
||||
|
||||
val IdeaKotlinFragmentCoordinates.path: String
|
||||
val IdeaKpmFragmentCoordinates.path: String
|
||||
get() = "${module.path}/$fragmentName"
|
||||
+3
-3
@@ -8,7 +8,7 @@ package org.jetbrains.kotlin.gradle.kpm.idea
|
||||
import java.io.File
|
||||
import java.io.Serializable
|
||||
|
||||
sealed interface IdeaKotlinLanguageSettings : Serializable {
|
||||
sealed interface IdeaKpmLanguageSettings : Serializable {
|
||||
val languageVersion: String?
|
||||
val apiVersion: String?
|
||||
val isProgressiveMode: Boolean
|
||||
@@ -20,7 +20,7 @@ sealed interface IdeaKotlinLanguageSettings : Serializable {
|
||||
}
|
||||
|
||||
@InternalKotlinGradlePluginApi
|
||||
data class IdeaKotlinLanguageSettingsImpl(
|
||||
data class IdeaKpmLanguageSettingsImpl(
|
||||
override val languageVersion: String?,
|
||||
override val apiVersion: String?,
|
||||
override val isProgressiveMode: Boolean,
|
||||
@@ -29,7 +29,7 @@ data class IdeaKotlinLanguageSettingsImpl(
|
||||
override val compilerPluginArguments: List<String>,
|
||||
override val compilerPluginClasspath: List<File>,
|
||||
override val freeCompilerArgs: List<String>
|
||||
) : IdeaKotlinLanguageSettings {
|
||||
) : IdeaKpmLanguageSettings {
|
||||
|
||||
@InternalKotlinGradlePluginApi
|
||||
companion object {
|
||||
+4
-4
@@ -7,7 +7,7 @@ package org.jetbrains.kotlin.gradle.kpm.idea
|
||||
|
||||
import java.io.Serializable
|
||||
|
||||
sealed interface IdeaKotlinModuleCoordinates : Serializable {
|
||||
sealed interface IdeaKpmModuleCoordinates : Serializable {
|
||||
val buildId: String
|
||||
val projectPath: String
|
||||
val projectName: String
|
||||
@@ -15,17 +15,17 @@ sealed interface IdeaKotlinModuleCoordinates : Serializable {
|
||||
val moduleClassifier: String?
|
||||
}
|
||||
|
||||
val IdeaKotlinModuleCoordinates.path: String
|
||||
val IdeaKpmModuleCoordinates.path: String
|
||||
get() = "${buildId.takeIf { it != ":" }.orEmpty()}$projectPath/$moduleName"
|
||||
|
||||
@InternalKotlinGradlePluginApi
|
||||
data class IdeaKotlinModuleCoordinatesImpl(
|
||||
data class IdeaKpmModuleCoordinatesImpl(
|
||||
override val buildId: String,
|
||||
override val projectPath: String,
|
||||
override val projectName: String,
|
||||
override val moduleName: String,
|
||||
override val moduleClassifier: String?
|
||||
) : IdeaKotlinModuleCoordinates {
|
||||
) : IdeaKpmModuleCoordinates {
|
||||
|
||||
@InternalKotlinGradlePluginApi
|
||||
companion object {
|
||||
+5
-5
@@ -8,22 +8,22 @@ package org.jetbrains.kotlin.gradle.kpm.idea
|
||||
import java.io.File
|
||||
import java.io.Serializable
|
||||
|
||||
sealed interface IdeaKotlinProjectModel : Serializable {
|
||||
sealed interface IdeaKpmProject : Serializable {
|
||||
val gradlePluginVersion: String
|
||||
val coreLibrariesVersion: String
|
||||
val explicitApiModeCliOption: String?
|
||||
val kotlinNativeHome: File
|
||||
val modules: List<IdeaKotlinModule>
|
||||
val modules: List<IdeaKpmModule>
|
||||
}
|
||||
|
||||
@InternalKotlinGradlePluginApi
|
||||
data class IdeaKotlinProjectModelImpl(
|
||||
data class IdeaKpmProjectImpl(
|
||||
override val gradlePluginVersion: String,
|
||||
override val coreLibrariesVersion: String,
|
||||
override val explicitApiModeCliOption: String?,
|
||||
override val kotlinNativeHome: File,
|
||||
override val modules: List<IdeaKotlinModule>
|
||||
) : IdeaKotlinProjectModel {
|
||||
override val modules: List<IdeaKpmModule>
|
||||
) : IdeaKpmProject {
|
||||
|
||||
@InternalKotlinGradlePluginApi
|
||||
companion object {
|
||||
+3
-3
@@ -8,14 +8,14 @@ package org.jetbrains.kotlin.gradle.kpm.idea
|
||||
import java.io.File
|
||||
import java.io.Serializable
|
||||
|
||||
sealed interface IdeaKotlinResourceDirectory : Serializable {
|
||||
sealed interface IdeaKpmResourceDirectory : Serializable {
|
||||
val file: File
|
||||
}
|
||||
|
||||
@InternalKotlinGradlePluginApi
|
||||
data class IdeaKotlinResourceDirectoryImpl(
|
||||
data class IdeaKpmResourceDirectoryImpl(
|
||||
override val file: File
|
||||
) : IdeaKotlinResourceDirectory {
|
||||
) : IdeaKpmResourceDirectory {
|
||||
|
||||
@InternalKotlinGradlePluginApi
|
||||
companion object {
|
||||
+3
-3
@@ -8,14 +8,14 @@ package org.jetbrains.kotlin.gradle.kpm.idea
|
||||
import java.io.File
|
||||
import java.io.Serializable
|
||||
|
||||
sealed interface IdeaKotlinSourceDirectory : Serializable {
|
||||
sealed interface IdeaKpmSourceDirectory : Serializable {
|
||||
val file: File
|
||||
}
|
||||
|
||||
@InternalKotlinGradlePluginApi
|
||||
data class IdeaKotlinSourceDirectoryImpl(
|
||||
data class IdeaKpmSourceDirectoryImpl(
|
||||
override val file: File,
|
||||
) : IdeaKotlinSourceDirectory {
|
||||
) : IdeaKpmSourceDirectory {
|
||||
|
||||
@InternalKotlinGradlePluginApi
|
||||
companion object {
|
||||
+8
-8
@@ -7,19 +7,19 @@ package org.jetbrains.kotlin.gradle.kpm.idea
|
||||
|
||||
import java.io.Serializable
|
||||
|
||||
sealed interface IdeaKotlinVariant : IdeaKotlinFragment, Serializable {
|
||||
val platform: IdeaKotlinPlatform
|
||||
sealed interface IdeaKpmVariant : IdeaKpmFragment, Serializable {
|
||||
val platform: IdeaKpmPlatform
|
||||
val variantAttributes: Map<String, String>
|
||||
val compilationOutputs: IdeaKotlinCompilationOutput
|
||||
val compilationOutputs: IdeaKpmCompilationOutput
|
||||
}
|
||||
|
||||
@InternalKotlinGradlePluginApi
|
||||
data class IdeaKotlinVariantImpl(
|
||||
internal val fragment: IdeaKotlinFragment,
|
||||
override val platform: IdeaKotlinPlatform,
|
||||
data class IdeaKpmVariantImpl(
|
||||
internal val fragment: IdeaKpmFragment,
|
||||
override val platform: IdeaKpmPlatform,
|
||||
override val variantAttributes: Map<String, String>,
|
||||
override val compilationOutputs: IdeaKotlinCompilationOutput,
|
||||
) : IdeaKotlinVariant, IdeaKotlinFragment by fragment {
|
||||
override val compilationOutputs: IdeaKpmCompilationOutput,
|
||||
) : IdeaKpmVariant, IdeaKpmFragment by fragment {
|
||||
|
||||
@InternalKotlinGradlePluginApi
|
||||
companion object {
|
||||
@@ -4,7 +4,7 @@ import org.gradle.api.internal.project.ProjectInternal
|
||||
import org.gradle.configurationcache.extensions.serviceOf
|
||||
import org.gradle.testfixtures.ProjectBuilder
|
||||
import org.gradle.tooling.provider.model.ToolingModelBuilderRegistry
|
||||
import org.jetbrains.kotlin.gradle.kpm.idea.IdeaKotlinProjectModel
|
||||
import org.jetbrains.kotlin.gradle.kpm.idea.IdeaKpmProject
|
||||
import org.jetbrains.kotlin.gradle.plugin.KotlinPm20PluginWrapper
|
||||
import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.KotlinPm20ProjectExtension
|
||||
|
||||
@@ -13,9 +13,9 @@ import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.KotlinPm20ProjectExtension
|
||||
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
||||
*/
|
||||
|
||||
fun Project.buildIdeaKotlinProjectModel(): IdeaKotlinProjectModel {
|
||||
return serviceOf<ToolingModelBuilderRegistry>().getBuilder(IdeaKotlinProjectModel::class.java.name)
|
||||
.buildAll(IdeaKotlinProjectModel::class.java.name, this) as IdeaKotlinProjectModel
|
||||
fun Project.buildIdeaKpmProjectModel(): IdeaKpmProject {
|
||||
return serviceOf<ToolingModelBuilderRegistry>().getBuilder(IdeaKpmProject::class.java.name)
|
||||
.buildAll(IdeaKpmProject::class.java.name, this) as IdeaKpmProject
|
||||
}
|
||||
|
||||
fun createKpmProject(): Pair<ProjectInternal, KotlinPm20ProjectExtension> {
|
||||
|
||||
+7
-7
@@ -7,7 +7,7 @@
|
||||
|
||||
package org.jetbrains.kotlin.gradle.kpm.idea
|
||||
|
||||
import buildIdeaKotlinProjectModel
|
||||
import buildIdeaKpmProjectModel
|
||||
import createKpmProject
|
||||
import createProxyInstance
|
||||
import org.gradle.api.internal.project.ProjectInternal
|
||||
@@ -57,12 +57,12 @@ class BackwardsCompatibilityDeserializationTest {
|
||||
}
|
||||
project.evaluate()
|
||||
|
||||
val model = project.buildIdeaKotlinProjectModel()
|
||||
val model = project.buildIdeaKpmProjectModel()
|
||||
val deserializedModel = deserializeModelWithBackwardsCompatibleClasses(model)
|
||||
|
||||
/* Use proxy instances to assert the deserialized model */
|
||||
run {
|
||||
val deserializedModelProxy = createProxyInstance<IdeaKotlinProjectModel>(deserializedModel)
|
||||
val deserializedModelProxy = createProxyInstance<IdeaKpmProject>(deserializedModel)
|
||||
|
||||
val deserializedMainModuleProxy = deserializedModelProxy.modules.firstOrNull { it.coordinates.moduleClassifier == null }
|
||||
?: fail("Missing main module")
|
||||
@@ -94,9 +94,9 @@ class BackwardsCompatibilityDeserializationTest {
|
||||
kotlinExtension.main.common.extras[retainedModelKey] = RetainedModel(2411)
|
||||
kotlinExtension.main.common.extras[unretainedModelKey] = UnretainedModel(510)
|
||||
|
||||
val model = project.buildIdeaKotlinProjectModel()
|
||||
val model = project.buildIdeaKpmProjectModel()
|
||||
val deserializedModel = deserializeModelWithBackwardsCompatibleClasses(model)
|
||||
val deserializedModelProxy = createProxyInstance<IdeaKotlinProjectModel>(deserializedModel)
|
||||
val deserializedModelProxy = createProxyInstance<IdeaKpmProject>(deserializedModel)
|
||||
|
||||
val deserializedMainModuleProxy = deserializedModelProxy.modules.find { it.coordinates.moduleClassifier == null }
|
||||
?: fail("Missing main module")
|
||||
@@ -106,7 +106,7 @@ class BackwardsCompatibilityDeserializationTest {
|
||||
|
||||
run {
|
||||
val deserializedCommonFragment = unwrapProxyInstance(deserializedCommonFragmentProxy)
|
||||
val extras = deserializedCommonFragment.serialize().deserialize<IdeaKotlinFragment>().extras
|
||||
val extras = deserializedCommonFragment.serialize().deserialize<IdeaKpmFragment>().extras
|
||||
assertEquals(1, extras.keys.size)
|
||||
assertEquals(RetainedModel(2411), extras[retainedModelKey])
|
||||
assertNull(extras[unretainedModelKey])
|
||||
@@ -128,7 +128,7 @@ private fun getClasspathForBackwardsCompatibilityTest(): List<File> {
|
||||
.flatMap { file -> if (file.isDirectory) file.listFiles().orEmpty().toList() else listOf(file) }
|
||||
}
|
||||
|
||||
private fun deserializeModelWithBackwardsCompatibleClasses(model: IdeaKotlinProjectModel): Any {
|
||||
private fun deserializeModelWithBackwardsCompatibleClasses(model: IdeaKpmProject): Any {
|
||||
val backwardsCompatibilityClassLoader = getClassLoaderForBackwardsCompatibilityTest()
|
||||
val backwardsCompatibilityModel = model.serialize().deserialize(backwardsCompatibilityClassLoader)
|
||||
|
||||
|
||||
+2
-2
@@ -21,7 +21,7 @@ import kotlin.test.*
|
||||
|
||||
@OptIn(ExperimentalStdlibApi::class)
|
||||
@RunWith(Parameterized::class)
|
||||
class IdeaKotlinProjectModelObjectGraphTest(private val node: KClass<*>, @Suppress("unused_parameter") clazzName: String) {
|
||||
class IdeaKpmProjectObjectGraphTest(private val node: KClass<*>, @Suppress("unused_parameter") clazzName: String) {
|
||||
|
||||
@Test
|
||||
fun `test - node implements Serializable`() {
|
||||
@@ -98,7 +98,7 @@ class IdeaKotlinProjectModelObjectGraphTest(private val node: KClass<*>, @Suppre
|
||||
@Parameterized.Parameters(name = "{1}")
|
||||
fun findNodes(): List<Array<Any>> {
|
||||
val classes = mutableSetOf<KClass<*>>()
|
||||
val resolveQueue = ArrayDeque<KClass<*>>(listOf(IdeaKotlinProjectModel::class))
|
||||
val resolveQueue = ArrayDeque<KClass<*>>(listOf(IdeaKpmProject::class))
|
||||
|
||||
while (resolveQueue.isNotEmpty()) {
|
||||
val next = resolveQueue.removeFirst()
|
||||
+22
-22
@@ -5,63 +5,63 @@
|
||||
|
||||
package org.jetbrains.kotlin.gradle.kpm.idea.testFixtures
|
||||
|
||||
import org.jetbrains.kotlin.gradle.kpm.idea.IdeaKotlinBinaryCoordinates
|
||||
import org.jetbrains.kotlin.gradle.kpm.idea.IdeaKotlinBinaryDependency
|
||||
import org.jetbrains.kotlin.gradle.kpm.idea.IdeaKotlinResolvedBinaryDependency
|
||||
import org.jetbrains.kotlin.gradle.kpm.idea.IdeaKpmBinaryCoordinates
|
||||
import org.jetbrains.kotlin.gradle.kpm.idea.IdeaKpmBinaryDependency
|
||||
import org.jetbrains.kotlin.gradle.kpm.idea.IdeaKpmResolvedBinaryDependency
|
||||
import java.io.File
|
||||
|
||||
fun buildIdeaKotlinBinaryDependencyMatchers(notation: Any?): List<IdeaKotlinBinaryDependencyMatcher> {
|
||||
fun buildIdeaKpmBinaryDependencyMatchers(notation: Any?): List<IdeaKpmBinaryDependencyMatcher> {
|
||||
return when (notation) {
|
||||
null -> emptyList()
|
||||
is IdeaKotlinBinaryDependencyMatcher -> listOf(notation)
|
||||
is String -> listOf(IdeaKotlinBinaryDependencyMatcher.Coordinates(parseIdeaKotlinBinaryCoordinates(notation)))
|
||||
is Regex -> listOf(IdeaKotlinBinaryDependencyMatcher.CoordinatesRegex(notation))
|
||||
is File -> listOf(IdeaKotlinBinaryDependencyMatcher.BinaryFile(notation))
|
||||
is Iterable<*> -> notation.flatMap { child -> buildIdeaKotlinBinaryDependencyMatchers(child) }
|
||||
else -> error("Can't build ${IdeaKotlinBinaryDependencyMatcher::class.simpleName} from $notation")
|
||||
is IdeaKpmBinaryDependencyMatcher -> listOf(notation)
|
||||
is String -> listOf(IdeaKpmBinaryDependencyMatcher.Coordinates(parseIdeaKpmBinaryCoordinates(notation)))
|
||||
is Regex -> listOf(IdeaKpmBinaryDependencyMatcher.CoordinatesRegex(notation))
|
||||
is File -> listOf(IdeaKpmBinaryDependencyMatcher.BinaryFile(notation))
|
||||
is Iterable<*> -> notation.flatMap { child -> buildIdeaKpmBinaryDependencyMatchers(child) }
|
||||
else -> error("Can't build ${IdeaKpmBinaryDependencyMatcher::class.simpleName} from $notation")
|
||||
}
|
||||
}
|
||||
|
||||
interface IdeaKotlinBinaryDependencyMatcher : IdeaKotlinDependencyMatcher<IdeaKotlinBinaryDependency>{
|
||||
interface IdeaKpmBinaryDependencyMatcher : IdeaKpmDependencyMatcher<IdeaKpmBinaryDependency>{
|
||||
class Coordinates(
|
||||
private val coordinates: IdeaKotlinBinaryCoordinates
|
||||
) : IdeaKotlinBinaryDependencyMatcher {
|
||||
private val coordinates: IdeaKpmBinaryCoordinates
|
||||
) : IdeaKpmBinaryDependencyMatcher {
|
||||
override val description: String = coordinates.toString()
|
||||
|
||||
override fun matches(dependency: IdeaKotlinBinaryDependency): Boolean {
|
||||
override fun matches(dependency: IdeaKpmBinaryDependency): Boolean {
|
||||
return coordinates == dependency.coordinates
|
||||
}
|
||||
}
|
||||
|
||||
class CoordinatesRegex(
|
||||
private val regex: Regex
|
||||
) : IdeaKotlinBinaryDependencyMatcher {
|
||||
) : IdeaKpmBinaryDependencyMatcher {
|
||||
override val description: String = regex.pattern
|
||||
|
||||
override fun matches(dependency: IdeaKotlinBinaryDependency): Boolean {
|
||||
override fun matches(dependency: IdeaKpmBinaryDependency): Boolean {
|
||||
return regex.matches(dependency.coordinates.toString())
|
||||
}
|
||||
}
|
||||
|
||||
class BinaryFile(
|
||||
private val binaryFile: File
|
||||
) : IdeaKotlinBinaryDependencyMatcher {
|
||||
) : IdeaKpmBinaryDependencyMatcher {
|
||||
override val description: String = binaryFile.path
|
||||
|
||||
override fun matches(dependency: IdeaKotlinBinaryDependency): Boolean {
|
||||
return dependency is IdeaKotlinResolvedBinaryDependency && dependency.binaryFile == binaryFile
|
||||
override fun matches(dependency: IdeaKpmBinaryDependency): Boolean {
|
||||
return dependency is IdeaKpmResolvedBinaryDependency && dependency.binaryFile == binaryFile
|
||||
}
|
||||
}
|
||||
|
||||
class InDirectory(
|
||||
private val parentFile: File
|
||||
) : IdeaKotlinBinaryDependencyMatcher {
|
||||
) : IdeaKpmBinaryDependencyMatcher {
|
||||
constructor(parentFilePath: String) : this(File(parentFilePath))
|
||||
|
||||
override val description: String = "$parentFile/**"
|
||||
|
||||
override fun matches(dependency: IdeaKotlinBinaryDependency): Boolean {
|
||||
return dependency is IdeaKotlinResolvedBinaryDependency &&
|
||||
override fun matches(dependency: IdeaKpmBinaryDependency): Boolean {
|
||||
return dependency is IdeaKpmResolvedBinaryDependency &&
|
||||
dependency.binaryFile.absoluteFile.normalize().canonicalPath.startsWith(
|
||||
parentFile.absoluteFile.normalize().canonicalPath
|
||||
)
|
||||
|
||||
+11
-11
@@ -1,30 +1,30 @@
|
||||
package org.jetbrains.kotlin.gradle.kpm.idea.testFixtures
|
||||
|
||||
import org.jetbrains.kotlin.gradle.kpm.idea.IdeaKotlinFragmentDependency
|
||||
import org.jetbrains.kotlin.gradle.kpm.idea.IdeaKpmFragmentDependency
|
||||
|
||||
fun buildIdeaKotlinFragmentDependencyMatchers(notation: Any?): List<IdeaKotlinFragmentDependencyMatcher> {
|
||||
fun buildIdeaKpmFragmentDependencyMatchers(notation: Any?): List<IdeaKpmFragmentDependencyMatcher> {
|
||||
return when (notation) {
|
||||
null -> emptyList()
|
||||
is Iterable<*> -> notation.flatMap { buildIdeaKotlinFragmentDependencyMatchers(it) }
|
||||
is String -> listOf(IdeaKotlinFragmentDependencyMatcher.DependencyLiteral(notation))
|
||||
is Regex -> listOf(IdeaKotlinFragmentDependencyMatcher.DependencyRegex(notation))
|
||||
else -> error("Can't build ${IdeaKotlinFragmentDependencyMatcher::class.simpleName} from $notation")
|
||||
is Iterable<*> -> notation.flatMap { buildIdeaKpmFragmentDependencyMatchers(it) }
|
||||
is String -> listOf(IdeaKpmFragmentDependencyMatcher.DependencyLiteral(notation))
|
||||
is Regex -> listOf(IdeaKpmFragmentDependencyMatcher.DependencyRegex(notation))
|
||||
else -> error("Can't build ${IdeaKpmFragmentDependencyMatcher::class.simpleName} from $notation")
|
||||
}
|
||||
}
|
||||
|
||||
interface IdeaKotlinFragmentDependencyMatcher : IdeaKotlinDependencyMatcher<IdeaKotlinFragmentDependency> {
|
||||
class DependencyLiteral(private val dependencyLiteral: String) : IdeaKotlinFragmentDependencyMatcher {
|
||||
interface IdeaKpmFragmentDependencyMatcher : IdeaKpmDependencyMatcher<IdeaKpmFragmentDependency> {
|
||||
class DependencyLiteral(private val dependencyLiteral: String) : IdeaKpmFragmentDependencyMatcher {
|
||||
override val description: String = dependencyLiteral
|
||||
|
||||
override fun matches(dependency: IdeaKotlinFragmentDependency): Boolean {
|
||||
override fun matches(dependency: IdeaKpmFragmentDependency): Boolean {
|
||||
return this.dependencyLiteral == dependency.toString()
|
||||
}
|
||||
}
|
||||
|
||||
class DependencyRegex(private val dependencyRegex: Regex) : IdeaKotlinFragmentDependencyMatcher {
|
||||
class DependencyRegex(private val dependencyRegex: Regex) : IdeaKpmFragmentDependencyMatcher {
|
||||
override val description: String = dependencyRegex.pattern
|
||||
|
||||
override fun matches(dependency: IdeaKotlinFragmentDependency): Boolean {
|
||||
override fun matches(dependency: IdeaKpmFragmentDependency): Boolean {
|
||||
return dependencyRegex.matches(dependency.coordinates.toString())
|
||||
}
|
||||
}
|
||||
|
||||
+2
-2
@@ -5,9 +5,9 @@
|
||||
|
||||
package org.jetbrains.kotlin.gradle.kpm.idea.testFixtures
|
||||
|
||||
import org.jetbrains.kotlin.gradle.kpm.idea.IdeaKotlinDependency
|
||||
import org.jetbrains.kotlin.gradle.kpm.idea.IdeaKpmDependency
|
||||
|
||||
interface IdeaKotlinDependencyMatcher<in T : IdeaKotlinDependency> {
|
||||
interface IdeaKpmDependencyMatcher<in T : IdeaKpmDependency> {
|
||||
val description: String
|
||||
fun matches(dependency: T): Boolean
|
||||
}
|
||||
+17
-17
@@ -10,30 +10,30 @@ package org.jetbrains.kotlin.gradle.kpm.idea.testFixtures
|
||||
import org.jetbrains.kotlin.gradle.kpm.idea.*
|
||||
import kotlin.test.fail
|
||||
|
||||
fun IdeaKotlinProjectModel.assertIsNotEmpty(): IdeaKotlinProjectModel = apply {
|
||||
fun IdeaKpmProject.assertIsNotEmpty(): IdeaKpmProject = apply {
|
||||
if (this.modules.isEmpty()) fail("Expected at least one module in model")
|
||||
}
|
||||
|
||||
fun IdeaKotlinProjectModel.assertContainsModule(name: String): IdeaKotlinModule {
|
||||
fun IdeaKpmProject.assertContainsModule(name: String): IdeaKpmModule {
|
||||
return modules.find { it.name == name }
|
||||
?: fail("Missing module with name '$name'. Found: ${modules.map { it.name }}")
|
||||
}
|
||||
|
||||
fun IdeaKotlinModule.assertContainsFragment(name: String): IdeaKotlinFragment {
|
||||
fun IdeaKpmModule.assertContainsFragment(name: String): IdeaKpmFragment {
|
||||
return fragments.find { it.name == name }
|
||||
?: fail("Missing fragment with name '$name'. Found: ${fragments.map { it.name }}")
|
||||
}
|
||||
|
||||
fun IdeaKotlinFragment.assertResolvedBinaryDependencies(
|
||||
fun IdeaKpmFragment.assertResolvedBinaryDependencies(
|
||||
binaryType: String,
|
||||
matchers: Set<IdeaKotlinBinaryDependencyMatcher>
|
||||
): Set<IdeaKotlinResolvedBinaryDependency> {
|
||||
matchers: Set<IdeaKpmBinaryDependencyMatcher>
|
||||
): Set<IdeaKpmResolvedBinaryDependency> {
|
||||
val resolvedBinaryDependencies = dependencies
|
||||
.mapNotNull { dependency ->
|
||||
when (dependency) {
|
||||
is IdeaKotlinResolvedBinaryDependencyImpl -> dependency
|
||||
is IdeaKotlinUnresolvedBinaryDependencyImpl -> fail("Unexpected unresolved dependency: $dependency")
|
||||
is IdeaKotlinFragmentDependencyImpl -> null
|
||||
is IdeaKpmResolvedBinaryDependencyImpl -> dependency
|
||||
is IdeaKpmUnresolvedBinaryDependencyImpl -> fail("Unexpected unresolved dependency: $dependency")
|
||||
is IdeaKpmFragmentDependencyImpl -> null
|
||||
}
|
||||
}
|
||||
.filter { it.binaryType == binaryType }
|
||||
@@ -83,16 +83,16 @@ fun IdeaKotlinFragment.assertResolvedBinaryDependencies(
|
||||
}
|
||||
|
||||
@JvmName("assertResolvedBinaryDependenciesByAnyMatcher")
|
||||
fun IdeaKotlinFragment.assertResolvedBinaryDependencies(
|
||||
fun IdeaKpmFragment.assertResolvedBinaryDependencies(
|
||||
binaryType: String, matchers: Set<Any?>,
|
||||
) = assertResolvedBinaryDependencies(binaryType, matchers.flatMap { buildIdeaKotlinBinaryDependencyMatchers(it) }.toSet())
|
||||
) = assertResolvedBinaryDependencies(binaryType, matchers.flatMap { buildIdeaKpmBinaryDependencyMatchers(it) }.toSet())
|
||||
|
||||
fun IdeaKotlinFragment.assertResolvedBinaryDependencies(
|
||||
fun IdeaKpmFragment.assertResolvedBinaryDependencies(
|
||||
binaryType: String, vararg matchers: Any?
|
||||
) = assertResolvedBinaryDependencies(binaryType, matchers.toSet())
|
||||
|
||||
fun IdeaKotlinFragment.assertFragmentDependencies(matchers: Set<IdeaKotlinFragmentDependencyMatcher>): Set<IdeaKotlinFragmentDependency> {
|
||||
val sourceDependencies = dependencies.filterIsInstance<IdeaKotlinFragmentDependency>().toSet()
|
||||
fun IdeaKpmFragment.assertFragmentDependencies(matchers: Set<IdeaKpmFragmentDependencyMatcher>): Set<IdeaKpmFragmentDependency> {
|
||||
val sourceDependencies = dependencies.filterIsInstance<IdeaKpmFragmentDependency>().toSet()
|
||||
|
||||
val unexpectedDependencies = sourceDependencies
|
||||
.filter { dependency -> matchers.none { matcher -> matcher.matches(dependency) } }
|
||||
@@ -133,8 +133,8 @@ fun IdeaKotlinFragment.assertFragmentDependencies(matchers: Set<IdeaKotlinFragme
|
||||
}
|
||||
|
||||
@JvmName("assertSourceDependenciesByAnyMatcher")
|
||||
fun IdeaKotlinFragment.assertFragmentDependencies(matchers: Set<Any?>): Set<IdeaKotlinFragmentDependency> =
|
||||
assertFragmentDependencies(matchers.flatMap { buildIdeaKotlinFragmentDependencyMatchers(it) }.toSet())
|
||||
fun IdeaKpmFragment.assertFragmentDependencies(matchers: Set<Any?>): Set<IdeaKpmFragmentDependency> =
|
||||
assertFragmentDependencies(matchers.flatMap { buildIdeaKpmFragmentDependencyMatchers(it) }.toSet())
|
||||
|
||||
fun IdeaKotlinFragment.assertFragmentDependencies(vararg matchers: Any?) =
|
||||
fun IdeaKpmFragment.assertFragmentDependencies(vararg matchers: Any?) =
|
||||
assertFragmentDependencies(matchers.toSet())
|
||||
|
||||
+11
-11
@@ -5,30 +5,30 @@
|
||||
|
||||
package org.jetbrains.kotlin.gradle.kpm.idea.testFixtures
|
||||
|
||||
import org.jetbrains.kotlin.gradle.kpm.idea.IdeaKotlinBinaryCoordinates
|
||||
import org.jetbrains.kotlin.gradle.kpm.idea.IdeaKotlinBinaryCoordinatesImpl
|
||||
import org.jetbrains.kotlin.gradle.kpm.idea.IdeaKotlinBinaryDependency
|
||||
import org.jetbrains.kotlin.gradle.kpm.idea.IdeaKotlinFragment
|
||||
import org.jetbrains.kotlin.gradle.kpm.idea.IdeaKpmBinaryCoordinates
|
||||
import org.jetbrains.kotlin.gradle.kpm.idea.IdeaKpmBinaryCoordinatesImpl
|
||||
import org.jetbrains.kotlin.gradle.kpm.idea.IdeaKpmBinaryDependency
|
||||
import org.jetbrains.kotlin.gradle.kpm.idea.IdeaKpmFragment
|
||||
|
||||
fun parseIdeaKotlinBinaryCoordinates(coordinates: String): IdeaKotlinBinaryCoordinates {
|
||||
fun parseIdeaKpmBinaryCoordinates(coordinates: String): IdeaKpmBinaryCoordinates {
|
||||
val parts = coordinates.split(":")
|
||||
if (parts.size == 3) {
|
||||
return IdeaKotlinBinaryCoordinatesImpl(parts[0], parts[1], parts[2])
|
||||
return IdeaKpmBinaryCoordinatesImpl(parts[0], parts[1], parts[2])
|
||||
}
|
||||
|
||||
if (parts.size == 5) {
|
||||
return IdeaKotlinBinaryCoordinatesImpl(parts[0], parts[1], parts[2], parts[3], parts[4])
|
||||
return IdeaKpmBinaryCoordinatesImpl(parts[0], parts[1], parts[2], parts[3], parts[4])
|
||||
}
|
||||
|
||||
throw IllegalArgumentException("Cannot parse $coordinates into ${IdeaKotlinBinaryCoordinates::class.java.simpleName}")
|
||||
throw IllegalArgumentException("Cannot parse $coordinates into ${IdeaKpmBinaryCoordinates::class.java.simpleName}")
|
||||
}
|
||||
|
||||
fun Iterable<IdeaKotlinBinaryCoordinates>.parsableString() =
|
||||
fun Iterable<IdeaKpmBinaryCoordinates>.parsableString() =
|
||||
joinToString("," + System.lineSeparator(), "", "") { "\"$it\"" }
|
||||
|
||||
@Suppress("unused") // Debugging API
|
||||
fun IdeaKotlinFragment.parsableDependencyCoordinatesString(): String {
|
||||
return dependencies.filterIsInstance<IdeaKotlinBinaryDependency>()
|
||||
fun IdeaKpmFragment.parsableDependencyCoordinatesString(): String {
|
||||
return dependencies.filterIsInstance<IdeaKpmBinaryDependency>()
|
||||
.mapNotNull { it.coordinates }.toSet()
|
||||
.parsableString()
|
||||
}
|
||||
|
||||
+3
-3
@@ -9,9 +9,9 @@ import com.android.build.gradle.internal.publishing.AndroidArtifacts
|
||||
import org.gradle.api.attributes.Usage
|
||||
import org.jetbrains.kotlin.gradle.kpm.external.ExternalVariantApi
|
||||
import org.jetbrains.kotlin.gradle.kpm.external.project
|
||||
import org.jetbrains.kotlin.gradle.kpm.idea.IdeaKotlinDependency.Companion.CLASSPATH_BINARY_TYPE
|
||||
import org.jetbrains.kotlin.gradle.kpm.idea.IdeaKpmDependency.Companion.CLASSPATH_BINARY_TYPE
|
||||
import org.jetbrains.kotlin.gradle.kpm.idea.IdeaKotlinProjectModelBuilder.FragmentConstraint
|
||||
import org.jetbrains.kotlin.gradle.kpm.idea.IdeaKotlinResolvedBinaryDependencyImpl
|
||||
import org.jetbrains.kotlin.gradle.kpm.idea.IdeaKpmResolvedBinaryDependencyImpl
|
||||
import org.jetbrains.kotlin.gradle.kpm.idea.InternalKotlinGradlePluginApi
|
||||
import org.jetbrains.kotlin.gradle.kpm.idea.configureIdeaKotlinSpecialPlatformDependencyResolution
|
||||
import org.jetbrains.kotlin.gradle.plugin.KotlinPlatformType
|
||||
@@ -79,7 +79,7 @@ internal fun KotlinPm20ProjectExtension.setupIdeaKotlinFragmentDependencyResolve
|
||||
|
||||
additionalDependencies {
|
||||
project.getAndroidRuntimeJars().map { androidRuntimeJar ->
|
||||
IdeaKotlinResolvedBinaryDependencyImpl(
|
||||
IdeaKpmResolvedBinaryDependencyImpl(
|
||||
binaryType = CLASSPATH_BINARY_TYPE,
|
||||
binaryFile = androidRuntimeJar,
|
||||
coordinates = null
|
||||
|
||||
+1
-1
@@ -76,7 +76,7 @@ class IdeaKotlinPlatformDependencyResolutionDslHandle internal constructor(
|
||||
}
|
||||
|
||||
@ExternalVariantPlatformDependencyResolutionDsl
|
||||
fun additionalDependencies(dependencyProvider: (GradleKpmFragment) -> List<IdeaKotlinDependency>) {
|
||||
fun additionalDependencies(dependencyProvider: (GradleKpmFragment) -> List<IdeaKpmDependency>) {
|
||||
this.additionalDependencies += IdeaKotlinDependencyResolver { fragment -> dependencyProvider(fragment).toSet() }
|
||||
}
|
||||
|
||||
|
||||
+2
-2
@@ -7,8 +7,8 @@ package org.jetbrains.kotlin.gradle.kpm.idea
|
||||
|
||||
import org.jetbrains.kotlin.gradle.plugin.KotlinCompilationOutput
|
||||
|
||||
internal fun IdeaKotlinCompilationOutput(compilation: KotlinCompilationOutput): IdeaKotlinCompilationOutput {
|
||||
return IdeaKotlinCompilationOutputImpl(
|
||||
internal fun IdeaKotlinCompilationOutput(compilation: KotlinCompilationOutput): IdeaKpmCompilationOutput {
|
||||
return IdeaKpmCompilationOutputImpl(
|
||||
classesDirs = compilation.classesDirs.toSet(),
|
||||
resourcesDir = compilation.resourcesDir
|
||||
)
|
||||
|
||||
+1
-1
@@ -13,7 +13,7 @@ import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.GradleKpmFragment
|
||||
* that the dependency resolution result is final.
|
||||
*/
|
||||
fun interface IdeaKotlinDependencyEffect {
|
||||
operator fun invoke(fragment: GradleKpmFragment, dependencies: Set<IdeaKotlinDependency>)
|
||||
operator fun invoke(fragment: GradleKpmFragment, dependencies: Set<IdeaKpmDependency>)
|
||||
}
|
||||
|
||||
fun IdeaKotlinDependencyResolver.withEffect(effect: IdeaKotlinDependencyEffect) = IdeaKotlinDependencyResolver { fragment ->
|
||||
|
||||
+1
-1
@@ -10,7 +10,7 @@ import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.path
|
||||
|
||||
internal object IdeaKotlinDependencyLogger : IdeaKotlinDependencyEffect {
|
||||
override fun invoke(
|
||||
fragment: GradleKpmFragment, dependencies: Set<IdeaKotlinDependency>
|
||||
fragment: GradleKpmFragment, dependencies: Set<IdeaKpmDependency>
|
||||
) {
|
||||
val fragmentPathRegex = fragment.project.properties["idea.kotlin.log.dependencies"]?.toString() ?: return
|
||||
if (!fragment.path.matches(Regex(fragmentPathRegex))) return
|
||||
|
||||
+3
-3
@@ -8,10 +8,10 @@ package org.jetbrains.kotlin.gradle.kpm.idea
|
||||
import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.GradleKpmFragment
|
||||
|
||||
fun interface IdeaKotlinDependencyResolver {
|
||||
fun resolve(fragment: GradleKpmFragment): Set<IdeaKotlinDependency>
|
||||
fun resolve(fragment: GradleKpmFragment): Set<IdeaKpmDependency>
|
||||
|
||||
object Empty : IdeaKotlinDependencyResolver {
|
||||
override fun resolve(fragment: GradleKpmFragment): Set<IdeaKotlinDependency> = emptySet()
|
||||
override fun resolve(fragment: GradleKpmFragment): Set<IdeaKpmDependency> = emptySet()
|
||||
}
|
||||
}
|
||||
|
||||
@@ -48,7 +48,7 @@ operator fun IdeaKotlinDependencyResolver.plus(
|
||||
private class CompositeIdeaKotlinDependencyResolver(
|
||||
val children: List<IdeaKotlinDependencyResolver>
|
||||
) : IdeaKotlinDependencyResolver {
|
||||
override fun resolve(fragment: GradleKpmFragment): Set<IdeaKotlinDependency> {
|
||||
override fun resolve(fragment: GradleKpmFragment): Set<IdeaKpmDependency> {
|
||||
return children.flatMap { child -> child.resolve(fragment) }.toSet()
|
||||
}
|
||||
}
|
||||
|
||||
+4
-4
@@ -17,8 +17,8 @@ import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.GradleKpmFragment
|
||||
*/
|
||||
fun interface IdeaKotlinDependencyTransformer {
|
||||
fun transform(
|
||||
fragment: GradleKpmFragment, dependencies: Set<IdeaKotlinDependency>
|
||||
): Set<IdeaKotlinDependency>
|
||||
fragment: GradleKpmFragment, dependencies: Set<IdeaKpmDependency>
|
||||
): Set<IdeaKpmDependency>
|
||||
}
|
||||
|
||||
fun IdeaKotlinDependencyResolver.withTransformer(transformer: IdeaKotlinDependencyTransformer) = IdeaKotlinDependencyResolver { fragment ->
|
||||
@@ -54,8 +54,8 @@ private class CompositeIdeaKotlinDependencyTransformer(
|
||||
val transformers: List<IdeaKotlinDependencyTransformer>
|
||||
) : IdeaKotlinDependencyTransformer {
|
||||
override fun transform(
|
||||
fragment: GradleKpmFragment, dependencies: Set<IdeaKotlinDependency>
|
||||
): Set<IdeaKotlinDependency> {
|
||||
fragment: GradleKpmFragment, dependencies: Set<IdeaKpmDependency>
|
||||
): Set<IdeaKpmDependency> {
|
||||
return transformers.fold(dependencies) { currentDependencies, transformer -> transformer.transform(fragment, currentDependencies) }
|
||||
}
|
||||
}
|
||||
|
||||
+6
-6
@@ -8,25 +8,25 @@ package org.jetbrains.kotlin.gradle.kpm.idea
|
||||
import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.*
|
||||
import org.jetbrains.kotlin.tooling.core.emptyExtras
|
||||
|
||||
internal fun IdeaKotlinProjectModelBuildingContext.IdeaKotlinFragment(fragment: GradleKpmFragment): IdeaKotlinFragment {
|
||||
internal fun IdeaKotlinProjectModelBuildingContext.IdeaKotlinFragment(fragment: GradleKpmFragment): IdeaKpmFragment {
|
||||
return if (fragment is GradleKpmVariant) buildIdeaKotlinVariant(fragment)
|
||||
else buildIdeaKotlinFragment(fragment)
|
||||
}
|
||||
|
||||
private fun IdeaKotlinProjectModelBuildingContext.buildIdeaKotlinFragment(fragment: GradleKpmFragment): IdeaKotlinFragment {
|
||||
return IdeaKotlinFragmentImpl(
|
||||
private fun IdeaKotlinProjectModelBuildingContext.buildIdeaKotlinFragment(fragment: GradleKpmFragment): IdeaKpmFragment {
|
||||
return IdeaKpmFragmentImpl(
|
||||
coordinates = IdeaKotlinFragmentCoordinates(fragment),
|
||||
platforms = fragment.containingVariants.map { variant -> IdeaKotlinPlatform(variant) }.toSet(),
|
||||
languageSettings = IdeaKotlinLanguageSettings(fragment.languageSettings),
|
||||
dependencies = dependencyResolver.resolve(fragment).toList(),
|
||||
sourceDirectories = fragment.kotlinSourceRoots.sourceDirectories.files.toList().map { file -> IdeaKotlinSourceDirectoryImpl(file) },
|
||||
sourceDirectories = fragment.kotlinSourceRoots.sourceDirectories.files.toList().map { file -> IdeaKpmSourceDirectoryImpl(file) },
|
||||
resourceDirectories = emptyList(), // TODO
|
||||
extras = emptyExtras() // TODO: Requires more sophisticated serialization
|
||||
)
|
||||
}
|
||||
|
||||
private fun IdeaKotlinProjectModelBuildingContext.buildIdeaKotlinVariant(variant: GradleKpmVariant): IdeaKotlinVariant {
|
||||
return IdeaKotlinVariantImpl(
|
||||
private fun IdeaKotlinProjectModelBuildingContext.buildIdeaKotlinVariant(variant: GradleKpmVariant): IdeaKpmVariant {
|
||||
return IdeaKpmVariantImpl(
|
||||
fragment = buildIdeaKotlinFragment(variant),
|
||||
platform = IdeaKotlinPlatform(variant),
|
||||
variantAttributes = variant.variantAttributes.mapKeys { (key, _) -> key.uniqueName },
|
||||
|
||||
+2
-2
@@ -7,8 +7,8 @@ package org.jetbrains.kotlin.gradle.kpm.idea
|
||||
|
||||
import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.GradleKpmFragment
|
||||
|
||||
internal fun IdeaKotlinFragmentCoordinates(fragment: GradleKpmFragment): IdeaKotlinFragmentCoordinates {
|
||||
return IdeaKotlinFragmentCoordinatesImpl(
|
||||
internal fun IdeaKotlinFragmentCoordinates(fragment: GradleKpmFragment): IdeaKpmFragmentCoordinates {
|
||||
return IdeaKpmFragmentCoordinatesImpl(
|
||||
module = IdeaKotlinModuleCoordinates(fragment.containingModule),
|
||||
fragmentName = fragment.name
|
||||
)
|
||||
|
||||
+7
-7
@@ -16,25 +16,25 @@ import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.toKpmModuleDependency
|
||||
internal class IdeaKotlinGranularFragmentDependencyResolver(
|
||||
private val fragmentGranularMetadataResolverFactory: GradleKpmFragmentGranularMetadataResolverFactory
|
||||
) : IdeaKotlinDependencyResolver {
|
||||
override fun resolve(fragment: GradleKpmFragment): Set<IdeaKotlinDependency> {
|
||||
override fun resolve(fragment: GradleKpmFragment): Set<IdeaKpmDependency> {
|
||||
return fragmentGranularMetadataResolverFactory.getOrCreate(fragment).resolutions
|
||||
.filterIsInstance<ChooseVisibleSourceSets>()
|
||||
.flatMap { resolution -> resolve(fragment, resolution) }
|
||||
.toSet()
|
||||
}
|
||||
|
||||
private fun resolve(fragment: GradleKpmFragment, resolution: ChooseVisibleSourceSets): Iterable<IdeaKotlinDependency> {
|
||||
private fun resolve(fragment: GradleKpmFragment, resolution: ChooseVisibleSourceSets): Iterable<IdeaKpmDependency> {
|
||||
val gradleProjectIdentifier = resolution.dependency.id as? ProjectComponentIdentifier ?: return emptyList()
|
||||
val kotlinModuleIdentifier = resolution.dependency.toKpmModuleDependency().moduleIdentifier
|
||||
return resolution.allVisibleSourceSetNames.map { visibleFragmentName ->
|
||||
IdeaKotlinFragmentDependencyImpl(
|
||||
IdeaKpmFragmentDependencyImpl(
|
||||
type = if (
|
||||
gradleProjectIdentifier.build == fragment.project.currentBuildId() &&
|
||||
gradleProjectIdentifier.projectPath == fragment.project.path
|
||||
) IdeaKotlinFragmentDependency.Type.Friend
|
||||
else IdeaKotlinFragmentDependency.Type.Regular,
|
||||
coordinates = IdeaKotlinFragmentCoordinatesImpl(
|
||||
module = IdeaKotlinModuleCoordinatesImpl(
|
||||
) IdeaKpmFragmentDependency.Type.Friend
|
||||
else IdeaKpmFragmentDependency.Type.Regular,
|
||||
coordinates = IdeaKpmFragmentCoordinatesImpl(
|
||||
module = IdeaKpmModuleCoordinatesImpl(
|
||||
buildId = gradleProjectIdentifier.build.name,
|
||||
projectPath = gradleProjectIdentifier.projectPath,
|
||||
projectName = gradleProjectIdentifier.projectName,
|
||||
|
||||
+2
-2
@@ -8,8 +8,8 @@ package org.jetbrains.kotlin.gradle.kpm.idea
|
||||
import org.jetbrains.kotlin.gradle.plugin.sources.DefaultLanguageSettingsBuilder
|
||||
import org.jetbrains.kotlin.project.model.LanguageSettings
|
||||
|
||||
internal fun IdeaKotlinLanguageSettings(languageSettings: LanguageSettings): IdeaKotlinLanguageSettings {
|
||||
return IdeaKotlinLanguageSettingsImpl(
|
||||
internal fun IdeaKotlinLanguageSettings(languageSettings: LanguageSettings): IdeaKpmLanguageSettings {
|
||||
return IdeaKpmLanguageSettingsImpl(
|
||||
languageVersion = languageSettings.languageVersion,
|
||||
apiVersion = languageSettings.apiVersion,
|
||||
isProgressiveMode = languageSettings.progressiveMode,
|
||||
|
||||
+5
-5
@@ -18,14 +18,14 @@ import org.jetbrains.kotlin.gradle.utils.withTemporaryDirectory
|
||||
internal class IdeaKotlinMetadataBinaryDependencyResolver(
|
||||
private val fragmentGranularMetadataResolverFactory: GradleKpmFragmentGranularMetadataResolverFactory
|
||||
) : IdeaKotlinDependencyResolver {
|
||||
override fun resolve(fragment: GradleKpmFragment): Set<IdeaKotlinDependency> {
|
||||
override fun resolve(fragment: GradleKpmFragment): Set<IdeaKpmDependency> {
|
||||
return fragmentGranularMetadataResolverFactory.getOrCreate(fragment).resolutions
|
||||
.filterIsInstance<ChooseVisibleSourceSets>()
|
||||
.flatMap { resolution -> resolve(fragment, resolution) }
|
||||
.toSet()
|
||||
}
|
||||
|
||||
private fun resolve(fragment: GradleKpmFragment, resolution: ChooseVisibleSourceSets): Iterable<IdeaKotlinDependency> {
|
||||
private fun resolve(fragment: GradleKpmFragment, resolution: ChooseVisibleSourceSets): Iterable<IdeaKpmDependency> {
|
||||
val gradleModuleIdentifier = resolution.dependency.id as? ModuleComponentIdentifier ?: return emptySet()
|
||||
val kotlinModuleIdentifier = resolution.dependency.toKpmModuleDependency().moduleIdentifier
|
||||
|
||||
@@ -56,10 +56,10 @@ internal class IdeaKotlinMetadataBinaryDependencyResolver(
|
||||
.apply { if (!isFile) sourceBinaryFile.copyTo(this) }
|
||||
}
|
||||
|
||||
IdeaKotlinResolvedBinaryDependencyImpl(
|
||||
binaryType = IdeaKotlinDependency.CLASSPATH_BINARY_TYPE,
|
||||
IdeaKpmResolvedBinaryDependencyImpl(
|
||||
binaryType = IdeaKpmDependency.CLASSPATH_BINARY_TYPE,
|
||||
binaryFile = binaryFile,
|
||||
coordinates = IdeaKotlinBinaryCoordinatesImpl(
|
||||
coordinates = IdeaKpmBinaryCoordinatesImpl(
|
||||
group = gradleModuleIdentifier.group,
|
||||
module = gradleModuleIdentifier.module,
|
||||
version = gradleModuleIdentifier.version,
|
||||
|
||||
+3
-3
@@ -10,13 +10,13 @@ import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.path
|
||||
import org.jetbrains.kotlin.utils.addToStdlib.ifNotEmpty
|
||||
|
||||
internal object IdeaKotlinMissingFileDependencyLogger : IdeaKotlinDependencyEffect {
|
||||
override fun invoke(fragment: GradleKpmFragment, dependencies: Set<IdeaKotlinDependency>) {
|
||||
dependencies.filterIsInstance<IdeaKotlinResolvedBinaryDependency>()
|
||||
override fun invoke(fragment: GradleKpmFragment, dependencies: Set<IdeaKpmDependency>) {
|
||||
dependencies.filterIsInstance<IdeaKpmResolvedBinaryDependency>()
|
||||
.filter { !it.binaryFile.exists() }
|
||||
.ifNotEmpty { fragment.project.logger.warn(buildWarningMessage(fragment, this)) }
|
||||
}
|
||||
|
||||
private fun buildWarningMessage(fragment: GradleKpmFragment, dependencies: List<IdeaKotlinResolvedBinaryDependency>) = buildString {
|
||||
private fun buildWarningMessage(fragment: GradleKpmFragment, dependencies: List<IdeaKpmResolvedBinaryDependency>) = buildString {
|
||||
append("[WARNING] ${fragment.path}: Missing dependency files")
|
||||
dependencies.forEach { dependency ->
|
||||
appendLine(dependency.binaryFile)
|
||||
|
||||
+2
-2
@@ -7,8 +7,8 @@ package org.jetbrains.kotlin.gradle.kpm.idea
|
||||
|
||||
import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.GradleKpmModule
|
||||
|
||||
internal fun IdeaKotlinProjectModelBuildingContext.IdeaKotlinModule(module: GradleKpmModule): IdeaKotlinModule {
|
||||
return IdeaKotlinModuleImpl(
|
||||
internal fun IdeaKotlinProjectModelBuildingContext.IdeaKotlinModule(module: GradleKpmModule): IdeaKpmModule {
|
||||
return IdeaKpmModuleImpl(
|
||||
coordinates = IdeaKotlinModuleCoordinates(module),
|
||||
fragments = module.fragments.toList().map { fragment -> IdeaKotlinFragment(fragment) }
|
||||
)
|
||||
|
||||
+2
-2
@@ -8,8 +8,8 @@ package org.jetbrains.kotlin.gradle.kpm.idea
|
||||
import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.GradleKpmModule
|
||||
import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.util.currentBuildId
|
||||
|
||||
internal fun IdeaKotlinModuleCoordinates(module: GradleKpmModule): IdeaKotlinModuleCoordinates {
|
||||
return IdeaKotlinModuleCoordinatesImpl(
|
||||
internal fun IdeaKotlinModuleCoordinates(module: GradleKpmModule): IdeaKpmModuleCoordinates {
|
||||
return IdeaKpmModuleCoordinatesImpl(
|
||||
buildId = module.project.currentBuildId().name,
|
||||
projectPath = module.project.path,
|
||||
projectName = module.project.name,
|
||||
|
||||
+5
-5
@@ -20,7 +20,7 @@ import org.jetbrains.kotlin.library.uniqueName
|
||||
import java.io.File
|
||||
|
||||
internal class IdeaKotlinNativePlatformDependencyResolver : IdeaKotlinDependencyResolver {
|
||||
override fun resolve(fragment: GradleKpmFragment): Set<IdeaKotlinDependency> {
|
||||
override fun resolve(fragment: GradleKpmFragment): Set<IdeaKpmDependency> {
|
||||
val konanTargets = fragment.containingVariants
|
||||
.map { it as? GradleKpmNativeVariantInternal ?: return emptySet() }
|
||||
.map { it.konanTarget }
|
||||
@@ -36,17 +36,17 @@ internal class IdeaKotlinNativePlatformDependencyResolver : IdeaKotlinDependency
|
||||
}
|
||||
}
|
||||
|
||||
private fun Project.resolveKlib(file: File): IdeaKotlinResolvedBinaryDependency? {
|
||||
private fun Project.resolveKlib(file: File): IdeaKpmResolvedBinaryDependency? {
|
||||
try {
|
||||
val kotlinLibrary = resolveSingleFileKlib(
|
||||
org.jetbrains.kotlin.konan.file.File(file.absolutePath),
|
||||
strategy = ToolingSingleFileKlibResolveStrategy
|
||||
)
|
||||
|
||||
return IdeaKotlinResolvedBinaryDependencyImpl(
|
||||
binaryType = IdeaKotlinDependency.CLASSPATH_BINARY_TYPE,
|
||||
return IdeaKpmResolvedBinaryDependencyImpl(
|
||||
binaryType = IdeaKpmDependency.CLASSPATH_BINARY_TYPE,
|
||||
binaryFile = file,
|
||||
coordinates = IdeaKotlinBinaryCoordinatesImpl(
|
||||
coordinates = IdeaKpmBinaryCoordinatesImpl(
|
||||
group = "org.jetbrains.kotlin.native",
|
||||
module = kotlinLibrary.shortName ?: kotlinLibrary.uniqueName,
|
||||
version = project.getKotlinPluginVersion()
|
||||
|
||||
+4
-4
@@ -12,12 +12,12 @@ import org.jetbrains.kotlin.gradle.plugin.getKotlinPluginVersion
|
||||
import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.GradleKpmFragment
|
||||
|
||||
internal object IdeaKotlinNativeStdlibDependencyResolver : IdeaKotlinDependencyResolver {
|
||||
override fun resolve(fragment: GradleKpmFragment): Set<IdeaKotlinDependency> {
|
||||
override fun resolve(fragment: GradleKpmFragment): Set<IdeaKpmDependency> {
|
||||
return setOf(
|
||||
IdeaKotlinResolvedBinaryDependencyImpl(
|
||||
binaryType = IdeaKotlinDependency.CLASSPATH_BINARY_TYPE,
|
||||
IdeaKpmResolvedBinaryDependencyImpl(
|
||||
binaryType = IdeaKpmDependency.CLASSPATH_BINARY_TYPE,
|
||||
binaryFile = KonanDistribution(fragment.project.konanHome).stdlib,
|
||||
coordinates = IdeaKotlinBinaryCoordinatesImpl(
|
||||
coordinates = IdeaKpmBinaryCoordinatesImpl(
|
||||
"org.jetbrains.kotlin", "stdlib-native", fragment.project.getKotlinPluginVersion()
|
||||
)
|
||||
)
|
||||
|
||||
+4
-4
@@ -14,7 +14,7 @@ import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.resolvableMetadataConfigurati
|
||||
internal class IdeaKotlinOriginalMetadataDependencyResolver(
|
||||
private val fragmentGranularMetadataResolverFactory: GradleKpmFragmentGranularMetadataResolverFactory
|
||||
) : IdeaKotlinDependencyResolver {
|
||||
override fun resolve(fragment: GradleKpmFragment): Set<IdeaKotlinDependency> {
|
||||
override fun resolve(fragment: GradleKpmFragment): Set<IdeaKpmDependency> {
|
||||
val dependencyIdentifiers = fragmentGranularMetadataResolverFactory.getOrCreate(fragment).resolutions
|
||||
.filterIsInstance<KeepOriginalDependency>()
|
||||
.mapNotNull { resolution -> resolution.dependency.id as? ModuleComponentIdentifier }
|
||||
@@ -29,10 +29,10 @@ internal class IdeaKotlinOriginalMetadataDependencyResolver(
|
||||
}.artifacts
|
||||
.map { artifact ->
|
||||
val artifactId = artifact.variant.owner as ModuleComponentIdentifier
|
||||
IdeaKotlinResolvedBinaryDependencyImpl(
|
||||
binaryType = IdeaKotlinDependency.CLASSPATH_BINARY_TYPE,
|
||||
IdeaKpmResolvedBinaryDependencyImpl(
|
||||
binaryType = IdeaKpmDependency.CLASSPATH_BINARY_TYPE,
|
||||
binaryFile = artifact.file,
|
||||
coordinates = IdeaKotlinBinaryCoordinatesImpl(artifactId.group, artifactId.module, artifactId.version)
|
||||
coordinates = IdeaKpmBinaryCoordinatesImpl(artifactId.group, artifactId.module, artifactId.version)
|
||||
)
|
||||
}.toSet()
|
||||
}
|
||||
|
||||
+13
-13
@@ -14,16 +14,16 @@ import org.jetbrains.kotlin.konan.target.HostManager
|
||||
|
||||
@Suppress("unused")
|
||||
/* Receiver acts as scope, or key to that function */
|
||||
internal fun IdeaKotlinProjectModelBuildingContext.IdeaKotlinPlatform(variant: GradleKpmVariant): IdeaKotlinPlatform {
|
||||
internal fun IdeaKotlinProjectModelBuildingContext.IdeaKotlinPlatform(variant: GradleKpmVariant): IdeaKpmPlatform {
|
||||
when (variant) {
|
||||
is GradleKpmJvmVariant -> return IdeaKotlinPlatform.jvm(variant.compilationData.kotlinOptions.jvmTarget ?: JvmTarget.DEFAULT.name)
|
||||
is GradleKpmNativeVariantInternal -> return IdeaKotlinPlatform.native(variant.konanTarget.name)
|
||||
is GradleKpmJvmVariant -> return IdeaKpmPlatform.jvm(variant.compilationData.kotlinOptions.jvmTarget ?: JvmTarget.DEFAULT.name)
|
||||
is GradleKpmNativeVariantInternal -> return IdeaKpmPlatform.native(variant.konanTarget.name)
|
||||
is GradleKpmLegacyMappedVariant -> when (val compilation = variant.compilation) {
|
||||
is KotlinJvmCompilation -> return IdeaKotlinPlatform.jvm(compilation.kotlinOptions.jvmTarget ?: JvmTarget.DEFAULT.name)
|
||||
is KotlinJvmAndroidCompilation -> return IdeaKotlinPlatform.jvm(compilation.kotlinOptions.jvmTarget ?: JvmTarget.DEFAULT.name)
|
||||
is KotlinNativeCompilation -> return IdeaKotlinPlatform.native(compilation.konanTarget.name)
|
||||
is KotlinJsIrCompilation -> return IdeaKotlinPlatform.js(isIr = true)
|
||||
is KotlinJsCompilation -> return IdeaKotlinPlatform.js(isIr = false)
|
||||
is KotlinJvmCompilation -> return IdeaKpmPlatform.jvm(compilation.kotlinOptions.jvmTarget ?: JvmTarget.DEFAULT.name)
|
||||
is KotlinJvmAndroidCompilation -> return IdeaKpmPlatform.jvm(compilation.kotlinOptions.jvmTarget ?: JvmTarget.DEFAULT.name)
|
||||
is KotlinNativeCompilation -> return IdeaKpmPlatform.native(compilation.konanTarget.name)
|
||||
is KotlinJsIrCompilation -> return IdeaKpmPlatform.js(isIr = true)
|
||||
is KotlinJsCompilation -> return IdeaKpmPlatform.js(isIr = false)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -32,10 +32,10 @@ internal fun IdeaKotlinProjectModelBuildingContext.IdeaKotlinPlatform(variant: G
|
||||
assert(false) { "Unable to build 'IdeaKotlinPlatform' from variant ${variant.path}" }
|
||||
return when (variant.platformType) {
|
||||
KotlinPlatformType.common -> throw IllegalArgumentException("Unexpected platformType 'common' for variant ${variant.name}")
|
||||
KotlinPlatformType.jvm -> IdeaKotlinPlatform.jvm(JvmTarget.DEFAULT.name)
|
||||
KotlinPlatformType.androidJvm -> IdeaKotlinPlatform.jvm(JvmTarget.DEFAULT.name)
|
||||
KotlinPlatformType.js -> IdeaKotlinPlatform.js(false)
|
||||
KotlinPlatformType.native -> IdeaKotlinPlatform.native(HostManager.host.name)
|
||||
KotlinPlatformType.wasm -> IdeaKotlinPlatform.wasm()
|
||||
KotlinPlatformType.jvm -> IdeaKpmPlatform.jvm(JvmTarget.DEFAULT.name)
|
||||
KotlinPlatformType.androidJvm -> IdeaKpmPlatform.jvm(JvmTarget.DEFAULT.name)
|
||||
KotlinPlatformType.js -> IdeaKpmPlatform.js(false)
|
||||
KotlinPlatformType.native -> IdeaKpmPlatform.native(HostManager.host.name)
|
||||
KotlinPlatformType.wasm -> IdeaKpmPlatform.wasm()
|
||||
}
|
||||
}
|
||||
|
||||
+8
-8
@@ -24,7 +24,7 @@ import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.GradleKpmConfigurationAttribu
|
||||
* to resolve those binaries. See [IdeaKotlinPlatformDependencyResolver.ArtifactResolution.PlatformFragment]
|
||||
*/
|
||||
class IdeaKotlinPlatformDependencyResolver(
|
||||
private val binaryType: String = IdeaKotlinDependency.CLASSPATH_BINARY_TYPE,
|
||||
private val binaryType: String = IdeaKpmDependency.CLASSPATH_BINARY_TYPE,
|
||||
private val artifactResolution: ArtifactResolution = ArtifactResolution.Variant()
|
||||
) : IdeaKotlinDependencyResolver {
|
||||
|
||||
@@ -51,7 +51,7 @@ class IdeaKotlinPlatformDependencyResolver(
|
||||
) : ArtifactResolution()
|
||||
}
|
||||
|
||||
override fun resolve(fragment: GradleKpmFragment): Set<IdeaKotlinBinaryDependency> {
|
||||
override fun resolve(fragment: GradleKpmFragment): Set<IdeaKpmBinaryDependency> {
|
||||
val artifacts = artifactResolution.createArtifactView(fragment)?.artifacts ?: return emptySet()
|
||||
|
||||
val unresolvedDependencies = artifacts.failures
|
||||
@@ -59,18 +59,18 @@ class IdeaKotlinPlatformDependencyResolver(
|
||||
.map { reason ->
|
||||
val selector = (reason as? ModuleVersionResolveException)?.selector as? ModuleComponentSelector
|
||||
/* Can't figure out the dependency here :( */
|
||||
?: return@map IdeaKotlinUnresolvedBinaryDependencyImpl(
|
||||
?: return@map IdeaKpmUnresolvedBinaryDependencyImpl(
|
||||
coordinates = null, cause = reason.message?.takeIf { it.isNotBlank() }
|
||||
)
|
||||
|
||||
IdeaKotlinUnresolvedBinaryDependencyImpl(
|
||||
coordinates = IdeaKotlinBinaryCoordinatesImpl(selector.group, selector.module, selector.version),
|
||||
IdeaKpmUnresolvedBinaryDependencyImpl(
|
||||
coordinates = IdeaKpmBinaryCoordinatesImpl(selector.group, selector.module, selector.version),
|
||||
cause = reason.message?.takeIf { it.isNotBlank() }
|
||||
)
|
||||
}.toSet()
|
||||
|
||||
val resolvedDependencies = artifacts.artifacts.mapNotNull { artifact ->
|
||||
IdeaKotlinResolvedBinaryDependencyImpl(
|
||||
IdeaKpmResolvedBinaryDependencyImpl(
|
||||
coordinates = artifact.variant.owner.ideaKotlinBinaryCoordinates,
|
||||
binaryType = binaryType,
|
||||
binaryFile = artifact.file
|
||||
@@ -81,9 +81,9 @@ class IdeaKotlinPlatformDependencyResolver(
|
||||
}
|
||||
}
|
||||
|
||||
private val ComponentIdentifier.ideaKotlinBinaryCoordinates: IdeaKotlinBinaryCoordinates?
|
||||
private val ComponentIdentifier.ideaKotlinBinaryCoordinates: IdeaKpmBinaryCoordinates?
|
||||
get() = when (this) {
|
||||
is ModuleComponentIdentifier -> IdeaKotlinBinaryCoordinatesImpl(group, module, version)
|
||||
is ModuleComponentIdentifier -> IdeaKpmBinaryCoordinatesImpl(group, module, version)
|
||||
else -> null
|
||||
}
|
||||
|
||||
|
||||
+3
-3
@@ -124,13 +124,13 @@ interface IdeaKotlinProjectModelBuilder {
|
||||
constraint: FragmentConstraint
|
||||
)
|
||||
|
||||
fun buildIdeaKotlinProjectModel(): IdeaKotlinProjectModel
|
||||
fun buildIdeaKotlinProjectModel(): IdeaKpmProject
|
||||
|
||||
companion object
|
||||
}
|
||||
|
||||
internal fun IdeaKotlinProjectModelBuildingContext.IdeaKotlinProjectModel(extension: KotlinPm20ProjectExtension): IdeaKotlinProjectModel {
|
||||
return IdeaKotlinProjectModelImpl(
|
||||
internal fun IdeaKotlinProjectModelBuildingContext.IdeaKotlinProjectModel(extension: KotlinPm20ProjectExtension): IdeaKpmProject {
|
||||
return IdeaKpmProjectImpl(
|
||||
gradlePluginVersion = extension.project.getKotlinPluginVersion(),
|
||||
coreLibrariesVersion = extension.coreLibrariesVersion,
|
||||
explicitApiModeCliOption = extension.explicitApi?.cliOption,
|
||||
|
||||
+3
-3
@@ -70,14 +70,14 @@ internal class IdeaKotlinProjectModelBuilderImpl @UnsafeApi("Use factory methods
|
||||
)
|
||||
}
|
||||
|
||||
override fun buildIdeaKotlinProjectModel(): IdeaKotlinProjectModel {
|
||||
override fun buildIdeaKotlinProjectModel(): IdeaKpmProject {
|
||||
return Context().IdeaKotlinProjectModel(extension)
|
||||
}
|
||||
|
||||
override fun canBuild(modelName: String): Boolean =
|
||||
modelName == IdeaKotlinProjectModel::class.java.name
|
||||
modelName == IdeaKpmProject::class.java.name
|
||||
|
||||
override fun buildAll(modelName: String, project: Project): IdeaKotlinProjectModel {
|
||||
override fun buildAll(modelName: String, project: Project): IdeaKpmProject {
|
||||
check(project === extension.project) { "Expected project ${extension.project.path}, found ${project.path}" }
|
||||
return buildIdeaKotlinProjectModel()
|
||||
}
|
||||
|
||||
+4
-4
@@ -8,12 +8,12 @@ package org.jetbrains.kotlin.gradle.kpm.idea
|
||||
import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.GradleKpmFragment
|
||||
|
||||
internal object IdeaKotlinRefinesDependencyResolver : IdeaKotlinDependencyResolver {
|
||||
override fun resolve(fragment: GradleKpmFragment): Set<IdeaKotlinDependency> = fragment.refinesClosure
|
||||
override fun resolve(fragment: GradleKpmFragment): Set<IdeaKpmDependency> = fragment.refinesClosure
|
||||
.map { refinesDependencyFragment -> createRefinesDependency(refinesDependencyFragment) }.toSet()
|
||||
|
||||
private fun createRefinesDependency(fragment: GradleKpmFragment): IdeaKotlinDependency {
|
||||
return IdeaKotlinFragmentDependencyImpl(
|
||||
type = IdeaKotlinFragmentDependency.Type.Refines,
|
||||
private fun createRefinesDependency(fragment: GradleKpmFragment): IdeaKpmDependency {
|
||||
return IdeaKpmFragmentDependencyImpl(
|
||||
type = IdeaKpmFragmentDependency.Type.Refines,
|
||||
coordinates = IdeaKotlinFragmentCoordinates(fragment)
|
||||
)
|
||||
}
|
||||
|
||||
+3
-3
@@ -14,13 +14,13 @@ internal object IdeaKotlinSinglePlatformStdlibCommonFilter : IdeaKotlinDependenc
|
||||
|
||||
override fun transform(
|
||||
fragment: GradleKpmFragment,
|
||||
dependencies: Set<IdeaKotlinDependency>
|
||||
): Set<IdeaKotlinDependency> {
|
||||
dependencies: Set<IdeaKpmDependency>
|
||||
): Set<IdeaKpmDependency> {
|
||||
val platforms = fragment.containingVariants.map { it.platformType }.toSet()
|
||||
if (platforms.size != 1) return dependencies
|
||||
|
||||
return dependencies.filter { dependency ->
|
||||
val binaryDependency = dependency as? IdeaKotlinBinaryDependency ?: return@filter true
|
||||
val binaryDependency = dependency as? IdeaKpmBinaryDependency ?: return@filter true
|
||||
val coordinates = binaryDependency.coordinates ?: return@filter true
|
||||
coordinates.group != stdlibCoordinatesGroup || coordinates.module !in stdlibCoordinatesModules
|
||||
}.toSet()
|
||||
|
||||
+7
-7
@@ -19,7 +19,7 @@ import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.GradleKpmVariant
|
||||
import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.resolvableMetadataConfigurationName
|
||||
|
||||
internal class IdeaKotlinSourcesAndDocumentationResolver : IdeaKotlinDependencyResolver {
|
||||
override fun resolve(fragment: GradleKpmFragment): Set<IdeaKotlinDependency> {
|
||||
override fun resolve(fragment: GradleKpmFragment): Set<IdeaKpmDependency> {
|
||||
if (fragment is GradleKpmVariant) {
|
||||
return resolve(fragment.project, fragment.compileDependenciesConfiguration)
|
||||
}
|
||||
@@ -28,26 +28,26 @@ internal class IdeaKotlinSourcesAndDocumentationResolver : IdeaKotlinDependencyR
|
||||
return resolve(fragment.project, metadataDependencies)
|
||||
}
|
||||
|
||||
private fun resolve(project: Project, configuration: Configuration): Set<IdeaKotlinDependency> {
|
||||
private fun resolve(project: Project, configuration: Configuration): Set<IdeaKpmDependency> {
|
||||
val resolutionResult = project.dependencies.createArtifactResolutionQuery()
|
||||
.forComponents(configuration.incoming.resolutionResult.allComponents.map { it.id })
|
||||
.withArtifacts(JvmLibrary::class.java, SourcesArtifact::class.java, JavadocArtifact::class.java)
|
||||
.execute()
|
||||
|
||||
return resolve(resolutionResult, SourcesArtifact::class.java, IdeaKotlinDependency.SOURCES_BINARY_TYPE) +
|
||||
resolve(resolutionResult, JavadocArtifact::class.java, IdeaKotlinDependency.DOCUMENTATION_BINARY_TYPE)
|
||||
return resolve(resolutionResult, SourcesArtifact::class.java, IdeaKpmDependency.SOURCES_BINARY_TYPE) +
|
||||
resolve(resolutionResult, JavadocArtifact::class.java, IdeaKpmDependency.DOCUMENTATION_BINARY_TYPE)
|
||||
}
|
||||
|
||||
fun resolve(
|
||||
resolutionResult: ArtifactResolutionResult, artifactType: Class<out Artifact>, binaryType: String
|
||||
): Set<IdeaKotlinDependency> {
|
||||
): Set<IdeaKpmDependency> {
|
||||
return resolutionResult.resolvedComponents.flatMap { resolved ->
|
||||
resolved.getArtifacts(artifactType)
|
||||
.filterIsInstance<ResolvedArtifactResult>()
|
||||
.mapNotNull { artifact ->
|
||||
val id = artifact.id.componentIdentifier as? ModuleComponentIdentifier ?: return@mapNotNull null
|
||||
IdeaKotlinResolvedBinaryDependencyImpl(
|
||||
coordinates = IdeaKotlinBinaryCoordinatesImpl(group = id.group, module = id.module, version = id.version),
|
||||
IdeaKpmResolvedBinaryDependencyImpl(
|
||||
coordinates = IdeaKpmBinaryCoordinatesImpl(group = id.group, module = id.module, version = id.version),
|
||||
binaryType = binaryType,
|
||||
binaryFile = artifact.file
|
||||
)
|
||||
|
||||
+4
-4
@@ -9,14 +9,14 @@ import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.GradleKpmFragment
|
||||
|
||||
internal object IdeaKotlinUnusedSourcesAndDocumentationFilter : IdeaKotlinDependencyTransformer {
|
||||
override fun transform(
|
||||
fragment: GradleKpmFragment, dependencies: Set<IdeaKotlinDependency>
|
||||
): Set<IdeaKotlinDependency> {
|
||||
fragment: GradleKpmFragment, dependencies: Set<IdeaKpmDependency>
|
||||
): Set<IdeaKpmDependency> {
|
||||
val sourcesAndDocumentationDependencies = dependencies
|
||||
.filterIsInstance<IdeaKotlinResolvedBinaryDependency>()
|
||||
.filterIsInstance<IdeaKpmResolvedBinaryDependency>()
|
||||
.filter { dependency -> dependency.isSourcesType || dependency.isDocumentationType }
|
||||
.toSet()
|
||||
|
||||
val classpathCoordinates = dependencies.filterIsInstance<IdeaKotlinResolvedBinaryDependency>()
|
||||
val classpathCoordinates = dependencies.filterIsInstance<IdeaKpmResolvedBinaryDependency>()
|
||||
.filter { dependency -> dependency.isClasspathType }
|
||||
.mapNotNull { it.coordinates }
|
||||
.toSet()
|
||||
|
||||
+2
-2
@@ -10,7 +10,7 @@ import org.gradle.api.artifacts.verification.DependencyVerificationMode
|
||||
import org.gradle.api.internal.project.ProjectInternal
|
||||
import org.gradle.testfixtures.ProjectBuilder
|
||||
import org.jetbrains.kotlin.gradle.addBuildEventsListenerRegistryMock
|
||||
import org.jetbrains.kotlin.gradle.kpm.idea.IdeaKotlinProjectModel
|
||||
import org.jetbrains.kotlin.gradle.kpm.idea.IdeaKpmProject
|
||||
import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.KotlinPm20ProjectExtension
|
||||
|
||||
abstract class AbstractKpmExtensionTest {
|
||||
@@ -27,6 +27,6 @@ fun Project.applyKpmPlugin(configure: KotlinPm20ProjectExtension.() -> Unit = {}
|
||||
return (extensions.getByName("kotlin") as KotlinPm20ProjectExtension).also(configure)
|
||||
}
|
||||
|
||||
fun KotlinPm20ProjectExtension.buildIdeaKotlinProjectModel(): IdeaKotlinProjectModel {
|
||||
fun KotlinPm20ProjectExtension.buildIdeaKotlinProjectModel(): IdeaKpmProject {
|
||||
return ideaKotlinProjectModelBuilder.buildIdeaKotlinProjectModel()
|
||||
}
|
||||
|
||||
+3
-3
@@ -17,7 +17,7 @@ import org.jetbrains.kotlin.commonizer.KonanDistribution
|
||||
import org.jetbrains.kotlin.commonizer.platformLibsDir
|
||||
import org.jetbrains.kotlin.compilerRunner.konanHome
|
||||
import org.jetbrains.kotlin.gradle.enableDefaultStdlibDependency
|
||||
import org.jetbrains.kotlin.gradle.kpm.idea.testFixtures.IdeaKotlinBinaryDependencyMatcher
|
||||
import org.jetbrains.kotlin.gradle.kpm.idea.testFixtures.IdeaKpmBinaryDependencyMatcher
|
||||
import org.jetbrains.kotlin.gradle.plugin.mpp.enabledOnCurrentHost
|
||||
import org.jetbrains.kotlin.konan.target.KonanTarget
|
||||
|
||||
@@ -42,8 +42,8 @@ abstract class AbstractLightweightIdeaDependencyResolutionTest {
|
||||
|
||||
val Project.konanDistribution get() = KonanDistribution(project.konanHome)
|
||||
|
||||
fun Project.nativePlatformLibraries(target: KonanTarget): IdeaKotlinBinaryDependencyMatcher? =
|
||||
IdeaKotlinBinaryDependencyMatcher.InDirectory(project.konanDistribution.platformLibsDir.resolve(target.name))
|
||||
fun Project.nativePlatformLibraries(target: KonanTarget): IdeaKpmBinaryDependencyMatcher? =
|
||||
IdeaKpmBinaryDependencyMatcher.InDirectory(project.konanDistribution.platformLibsDir.resolve(target.name))
|
||||
.takeIf { target.enabledOnCurrentHost }
|
||||
}
|
||||
|
||||
|
||||
+2
-7
@@ -16,13 +16,8 @@ import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.GradleKpmIosX64Variant
|
||||
import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.GradleKpmLinuxX64Variant
|
||||
import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.GradleKpmMacosX64Variant
|
||||
import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.jvm
|
||||
import java.io.ByteArrayInputStream
|
||||
import java.io.ByteArrayOutputStream
|
||||
import java.io.ObjectInputStream
|
||||
import java.io.ObjectOutputStream
|
||||
import kotlin.test.Test
|
||||
import kotlin.test.assertEquals
|
||||
import kotlin.test.fail
|
||||
|
||||
class IdeaKotlinProjectModelSerializableTest : AbstractKpmExtensionTest() {
|
||||
|
||||
@@ -56,8 +51,8 @@ class IdeaKotlinProjectModelSerializableTest : AbstractKpmExtensionTest() {
|
||||
assertSerializeAndDeserializeEquals(kotlin.buildIdeaKotlinProjectModel())
|
||||
}
|
||||
|
||||
private fun assertSerializeAndDeserializeEquals(model: IdeaKotlinProjectModel) {
|
||||
val deserializedModel = model.serialize().deserialize<IdeaKotlinProjectModel>()
|
||||
private fun assertSerializeAndDeserializeEquals(model: IdeaKpmProject) {
|
||||
val deserializedModel = model.serialize().deserialize<IdeaKpmProject>()
|
||||
|
||||
assertEquals(
|
||||
model.toString(), deserializedModel.toString(),
|
||||
|
||||
+1
-1
@@ -14,7 +14,7 @@ import org.jetbrains.kotlin.gradle.android.androidPrototype
|
||||
import org.jetbrains.kotlin.gradle.assumeAndroidSdkAvailable
|
||||
import org.jetbrains.kotlin.gradle.kpm.applyKpmPlugin
|
||||
import org.jetbrains.kotlin.gradle.kpm.buildIdeaKotlinProjectModel
|
||||
import org.jetbrains.kotlin.gradle.kpm.idea.IdeaKotlinDependency.Companion.CLASSPATH_BINARY_TYPE
|
||||
import org.jetbrains.kotlin.gradle.kpm.idea.IdeaKpmDependency.Companion.CLASSPATH_BINARY_TYPE
|
||||
import org.jetbrains.kotlin.gradle.kpm.idea.testFixtures.assertContainsFragment
|
||||
import org.jetbrains.kotlin.gradle.kpm.idea.testFixtures.assertContainsModule
|
||||
import org.jetbrains.kotlin.gradle.kpm.idea.testFixtures.assertIsNotEmpty
|
||||
|
||||
+5
-5
@@ -10,8 +10,8 @@ package org.jetbrains.kotlin.gradle.kpm.idea
|
||||
import org.jetbrains.kotlin.gradle.enableDefaultStdlibDependency
|
||||
import org.jetbrains.kotlin.gradle.kpm.applyKpmPlugin
|
||||
import org.jetbrains.kotlin.gradle.kpm.buildIdeaKotlinProjectModel
|
||||
import org.jetbrains.kotlin.gradle.kpm.idea.IdeaKotlinDependency.Companion.CLASSPATH_BINARY_TYPE
|
||||
import org.jetbrains.kotlin.gradle.kpm.idea.testFixtures.IdeaKotlinBinaryDependencyMatcher
|
||||
import org.jetbrains.kotlin.gradle.kpm.idea.IdeaKpmDependency.Companion.CLASSPATH_BINARY_TYPE
|
||||
import org.jetbrains.kotlin.gradle.kpm.idea.testFixtures.IdeaKpmBinaryDependencyMatcher
|
||||
import org.jetbrains.kotlin.gradle.kpm.idea.testFixtures.assertContainsFragment
|
||||
import org.jetbrains.kotlin.gradle.kpm.idea.testFixtures.assertIsNotEmpty
|
||||
import org.jetbrains.kotlin.gradle.kpm.idea.testFixtures.assertResolvedBinaryDependencies
|
||||
@@ -58,7 +58,7 @@ class StdlibKotlinIdeaDependencyResolutionTest : AbstractLightweightIdeaDependen
|
||||
/* native fragments only references dependencies from the native distribution */
|
||||
listOf("iosCommon", "iosX64", "iosArm64").forEach { fragmentName ->
|
||||
module.assertContainsFragment(fragmentName).assertResolvedBinaryDependencies(
|
||||
CLASSPATH_BINARY_TYPE, IdeaKotlinBinaryDependencyMatcher.InDirectory(project.konanDistribution.root)
|
||||
CLASSPATH_BINARY_TYPE, IdeaKpmBinaryDependencyMatcher.InDirectory(project.konanDistribution.root)
|
||||
)
|
||||
}
|
||||
}
|
||||
@@ -112,7 +112,7 @@ class StdlibKotlinIdeaDependencyResolutionTest : AbstractLightweightIdeaDependen
|
||||
listOf("iosCommon", "iosX64", "iosArm64").forEach { fragmentName ->
|
||||
module.assertContainsFragment(fragmentName).assertResolvedBinaryDependencies(
|
||||
CLASSPATH_BINARY_TYPE,
|
||||
IdeaKotlinBinaryDependencyMatcher.InDirectory(project.konanDistribution.root),
|
||||
IdeaKpmBinaryDependencyMatcher.InDirectory(project.konanDistribution.root),
|
||||
|
||||
/* Actually not correct as well, since those are jvm dependencies. Filtering is not easily possible here, as well */
|
||||
"org.jetbrains.kotlin:kotlin-stdlib:1.6.10",
|
||||
@@ -155,7 +155,7 @@ class StdlibKotlinIdeaDependencyResolutionTest : AbstractLightweightIdeaDependen
|
||||
listOf("iosCommon", "iosX64", "iosArm64").forEach { fragmentName ->
|
||||
module.assertContainsFragment(fragmentName).assertResolvedBinaryDependencies(
|
||||
CLASSPATH_BINARY_TYPE,
|
||||
IdeaKotlinBinaryDependencyMatcher.InDirectory(project.konanDistribution.root),
|
||||
IdeaKpmBinaryDependencyMatcher.InDirectory(project.konanDistribution.root),
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user