Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -14,11 +14,9 @@ import org.gradle.api.artifacts.dsl.DependencyHandler
import org.gradle.api.artifacts.dsl.RepositoryHandler
import org.gradle.api.artifacts.repositories.MavenArtifactRepository
import org.gradle.api.plugins.ExtensionAware
import org.jetbrains.compose.android.AndroidExtension
import org.jetbrains.compose.desktop.DesktopExtension
import org.jetbrains.compose.desktop.application.internal.configureDesktop
import org.jetbrains.compose.desktop.preview.internal.initializePreview
import org.jetbrains.compose.experimental.dsl.ExperimentalExtension
import org.jetbrains.compose.experimental.internal.configureExperimentalTargetsFlagsCheck
import org.jetbrains.compose.internal.KOTLIN_MPP_PLUGIN_ID
import org.jetbrains.compose.internal.mppExt
Expand All @@ -37,8 +35,6 @@ abstract class ComposePlugin : Plugin<Project> {
override fun apply(project: Project) {
val composeExtension = project.extensions.create("compose", ComposeExtension::class.java, project)
val desktopExtension = composeExtension.extensions.create("desktop", DesktopExtension::class.java)
val androidExtension = composeExtension.extensions.create("android", AndroidExtension::class.java)
val experimentalExtension = composeExtension.extensions.create("experimental", ExperimentalExtension::class.java)
val resourcesExtension = composeExtension.extensions.create("resources", ResourcesExtension::class.java)

project.dependencies.extensions.add("compose", Dependencies(project))
Expand Down Expand Up @@ -69,89 +65,121 @@ abstract class ComposePlugin : Plugin<Project> {
@Suppress("DEPRECATION")
class Dependencies(project: Project) {
val desktop = DesktopDependencies
@Deprecated("Specify dependency via version catalog", replaceWith = ReplaceWith("\"org.jetbrains.compose.animation:animation:${ComposeBuildConfig.composeVersion}\""))
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What about helper constant/function?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It would have been nice to remove repetition from replaceWith argument, but it is not possible due to const expression requirement. The message is temprorary and the whole will be removed soon.

val animation get() = composeDependency("org.jetbrains.compose.animation:animation")
@Deprecated("Specify dependency via version catalog", replaceWith = ReplaceWith("\"org.jetbrains.compose.animation:animation-graphics:${ComposeBuildConfig.composeVersion}\""))
val animationGraphics get() = composeDependency("org.jetbrains.compose.animation:animation-graphics")
@Deprecated("Specify dependency via version catalog", replaceWith = ReplaceWith("\"org.jetbrains.compose.foundation:foundation:${ComposeBuildConfig.composeVersion}\""))
val foundation get() = composeDependency("org.jetbrains.compose.foundation:foundation")
@Deprecated("Specify dependency via version catalog", replaceWith = ReplaceWith("\"org.jetbrains.compose.material:material:${ComposeBuildConfig.composeVersion}\""))
val material get() = composeDependency("org.jetbrains.compose.material:material")
@Deprecated("Specify dependency via version catalog", replaceWith = ReplaceWith("\"org.jetbrains.compose.material3:material3:${ComposeBuildConfig.composeMaterial3Version}\""))
val material3 get() = composeMaterial3Dependency("org.jetbrains.compose.material3:material3")
@Deprecated("Specify dependency via version catalog", replaceWith = ReplaceWith("\"org.jetbrains.compose.material3:material3-adaptive-navigation-suite:${ComposeBuildConfig.composeMaterial3Version}\""))
val material3AdaptiveNavigationSuite get() = composeMaterial3Dependency("org.jetbrains.compose.material3:material3-adaptive-navigation-suite")
@Deprecated("Specify dependency via version catalog", replaceWith = ReplaceWith("\"org.jetbrains.compose.runtime:runtime:${ComposeBuildConfig.composeVersion}\""))
val runtime get() = composeDependency("org.jetbrains.compose.runtime:runtime")
@Deprecated("Specify dependency via version catalog", replaceWith = ReplaceWith("\"org.jetbrains.compose.runtime:runtime-saveable:${ComposeBuildConfig.composeVersion}\""))
val runtimeSaveable get() = composeDependency("org.jetbrains.compose.runtime:runtime-saveable")
@Deprecated("Specify dependency via version catalog", replaceWith = ReplaceWith("\"org.jetbrains.compose.ui:ui:${ComposeBuildConfig.composeVersion}\""))
val ui get() = composeDependency("org.jetbrains.compose.ui:ui")
@Deprecated("Use desktop.uiTestJUnit4", replaceWith = ReplaceWith("desktop.uiTestJUnit4"))
@ExperimentalComposeLibrary
val uiTestJUnit4 get() = composeDependency("org.jetbrains.compose.ui:ui-test-junit4")
@Deprecated("Specify dependency via version catalog", replaceWith = ReplaceWith("\"org.jetbrains.compose.ui:ui-test:${ComposeBuildConfig.composeVersion}\""))
@ExperimentalComposeLibrary
val uiTest get() = composeDependency("org.jetbrains.compose.ui:ui-test")
@Deprecated("Use org.jetbrains.compose.ui:ui-tooling-preview module instead", replaceWith = ReplaceWith("\"org.jetbrains.compose.ui:ui-tooling:${ComposeBuildConfig.composeVersion}\""))
val uiTooling get() = composeDependency("org.jetbrains.compose.ui:ui-tooling")
@Deprecated("Specify dependency via version catalog", replaceWith = ReplaceWith("\"org.jetbrains.compose.ui:ui-util:${ComposeBuildConfig.composeVersion}\""))
val uiUtil get() = composeDependency("org.jetbrains.compose.ui:ui-util")
@Deprecated("Specify dependency via version catalog", replaceWith = ReplaceWith("\"org.jetbrains.compose.ui:ui-tooling-preview:${ComposeBuildConfig.composeVersion}\""))
val preview get() = composeDependency("org.jetbrains.compose.ui:ui-tooling-preview")
@Deprecated("Specify dependency via version catalog", replaceWith = ReplaceWith("\"org.jetbrains.compose.material:material-icons-extended:1.7.3\""))
val materialIconsExtended get() = "org.jetbrains.compose.material:material-icons-extended:1.7.3"
@Deprecated("Specify dependency via version catalog")
val components get() = CommonComponentsDependencies
@Deprecated("Use compose.html", replaceWith = ReplaceWith("html"))
@Deprecated("Use compose.html", replaceWith = ReplaceWith("html"), level = DeprecationLevel.ERROR)
val web: WebDependencies get() = WebDependencies
@Deprecated("Specify dependency via version catalog")
val html: HtmlDependencies get() = HtmlDependencies
}

@Deprecated("Specify dependency via version catalog")
object DesktopDependencies {
@Deprecated("Specify dependency via version catalog")
val components = DesktopComponentsDependencies

@Deprecated("Specify dependency via version catalog", replaceWith = ReplaceWith("\"org.jetbrains.compose.desktop:desktop:${ComposeBuildConfig.composeVersion}\""))
val common = composeDependency("org.jetbrains.compose.desktop:desktop")
@Deprecated("Specify dependency via version catalog", replaceWith = ReplaceWith("\"org.jetbrains.compose.desktop:desktop-jvm-linux-x64:${ComposeBuildConfig.composeVersion}\""))
val linux_x64 = composeDependency("org.jetbrains.compose.desktop:desktop-jvm-linux-x64")
@Deprecated("Specify dependency via version catalog", replaceWith = ReplaceWith("\"org.jetbrains.compose.desktop:desktop-jvm-linux-arm64:${ComposeBuildConfig.composeVersion}\""))
val linux_arm64 = composeDependency("org.jetbrains.compose.desktop:desktop-jvm-linux-arm64")
@Deprecated("Specify dependency via version catalog", replaceWith = ReplaceWith("\"org.jetbrains.compose.desktop:desktop-jvm-windows-x64:${ComposeBuildConfig.composeVersion}\""))
val windows_x64 = composeDependency("org.jetbrains.compose.desktop:desktop-jvm-windows-x64")
@Deprecated("Specify dependency via version catalog", replaceWith = ReplaceWith("\"org.jetbrains.compose.desktop:desktop-jvm-windows-arm64:${ComposeBuildConfig.composeVersion}\""))
val windows_arm64 = composeDependency("org.jetbrains.compose.desktop:desktop-jvm-windows-arm64")
@Deprecated("Specify dependency via version catalog", replaceWith = ReplaceWith("\"org.jetbrains.compose.desktop:desktop-jvm-macos-x64:${ComposeBuildConfig.composeVersion}\""))
val macos_x64 = composeDependency("org.jetbrains.compose.desktop:desktop-jvm-macos-x64")
@Deprecated("Specify dependency via version catalog", replaceWith = ReplaceWith("\"org.jetbrains.compose.desktop:desktop-jvm-macos-arm64:${ComposeBuildConfig.composeVersion}\""))
val macos_arm64 = composeDependency("org.jetbrains.compose.desktop:desktop-jvm-macos-arm64")

@Deprecated("Specify dependency via version catalog", replaceWith = ReplaceWith("\"org.jetbrains.compose.ui:ui-test-junit4:${ComposeBuildConfig.composeVersion}\""))
val uiTestJUnit4 get() = composeDependency("org.jetbrains.compose.ui:ui-test-junit4")

val currentOs by lazy {
composeDependency("org.jetbrains.compose.desktop:desktop-jvm-${currentTarget.id}")
}
}

@Deprecated("Specify dependency via version catalog")
object CommonComponentsDependencies {
@Deprecated("Specify dependency via version catalog", replaceWith = ReplaceWith("\"org.jetbrains.compose.components:components-resources:${ComposeBuildConfig.composeVersion}\""))
val resources = composeDependency("org.jetbrains.compose.components:components-resources")
@Deprecated(
"Use org.jetbrains.compose.ui:ui-tooling-preview module instead",
ReplaceWith("compose.preview")
)
@Deprecated("Specify dependency via version catalog", replaceWith = ReplaceWith("\"org.jetbrains.compose.ui:ui-tooling-preview:${ComposeBuildConfig.composeVersion}\""))
val uiToolingPreview = composeDependency("org.jetbrains.compose.components:components-ui-tooling-preview")
}

@Deprecated("Specify dependency via version catalog")
object DesktopComponentsDependencies {
@Deprecated("Specify dependency via version catalog", replaceWith = ReplaceWith("\"org.jetbrains.compose.components:components-splitpane:${ComposeBuildConfig.composeVersion}\""))
@ExperimentalComposeLibrary
val splitPane = composeDependency("org.jetbrains.compose.components:components-splitpane")

@Deprecated("Specify dependency via version catalog", replaceWith = ReplaceWith("\"org.jetbrains.compose.components:components-animatedimage:${ComposeBuildConfig.composeVersion}\""))
@ExperimentalComposeLibrary
val animatedImage = composeDependency("org.jetbrains.compose.components:components-animatedimage")
}

@Deprecated("Use compose.html")
object WebDependencies {
@Deprecated("Specify dependency via version catalog", replaceWith = ReplaceWith("\"org.jetbrains.compose.html:html-core:${ComposeBuildConfig.composeVersion}\""))
val core by lazy {
composeDependency("org.jetbrains.compose.html:html-core")
}

@Deprecated("Specify dependency via version catalog", replaceWith = ReplaceWith("\"org.jetbrains.compose.html:html-svg:${ComposeBuildConfig.composeVersion}\""))
val svg by lazy {
composeDependency("org.jetbrains.compose.html:html-svg")
}

@Deprecated("Specify dependency via version catalog", replaceWith = ReplaceWith("\"org.jetbrains.compose.html:html-test-utils:${ComposeBuildConfig.composeVersion}\""))
val testUtils by lazy {
composeDependency("org.jetbrains.compose.html:html-test-utils")
}
}

@Deprecated("Specify dependency via version catalog")
object HtmlDependencies {
@Deprecated("Specify dependency via version catalog", replaceWith = ReplaceWith("\"org.jetbrains.compose.html:html-core:${ComposeBuildConfig.composeVersion}\""))
val core by lazy {
composeDependency("org.jetbrains.compose.html:html-core")
}

@Deprecated("Specify dependency via version catalog", replaceWith = ReplaceWith("\"org.jetbrains.compose.html:html-svg:${ComposeBuildConfig.composeVersion}\""))
val svg by lazy {
composeDependency("org.jetbrains.compose.html:html-svg")
}

@Deprecated("Specify dependency via version catalog", replaceWith = ReplaceWith("\"org.jetbrains.compose.html:html-test-utils:${ComposeBuildConfig.composeVersion}\""))
val testUtils by lazy {
composeDependency("org.jetbrains.compose.html:html-test-utils")
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,5 @@ package org.jetbrains.compose

// We write explicitly about OptIn, because IDEA doesn't suggest it.
@RequiresOptIn("This library is experimental and can be unstable. Add @OptIn(org.jetbrains.compose.ExperimentalComposeLibrary::class) annotation.")
@Deprecated("Please specify dependency via version catalog")
annotation class ExperimentalComposeLibrary

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.