@@ -30,8 +30,6 @@ import org.jetbrains.compose.web.internal.configureWeb
30
30
import org.jetbrains.kotlin.gradle.plugin.KotlinDependencyHandler
31
31
import org.jetbrains.kotlin.gradle.plugin.getKotlinPluginVersion
32
32
33
- internal val composeVersion get() = ComposeBuildConfig .composeVersion
34
-
35
33
abstract class ComposePlugin : Plugin <Project > {
36
34
override fun apply (project : Project ) {
37
35
val composeExtension = project.extensions.create(" compose" , ComposeExtension ::class .java, project)
@@ -63,46 +61,53 @@ abstract class ComposePlugin : Plugin<Project> {
63
61
}
64
62
}
65
63
64
+ // Please sort them in the order of stable, experimental, and deprecated,
65
+ // and keep them in alphabetical order.
66
+ // Thus make it easier to find a missing dependency.
66
67
@Suppress(" DEPRECATION" )
67
68
class Dependencies (project : Project ) {
68
- val desktop = DesktopDependencies
69
69
val compiler = CompilerDependencies (project)
70
- val animation get() = composeDependency(" org.jetbrains.compose.animation:animation" )
71
- val animationGraphics get() = composeDependency(" org.jetbrains.compose.animation:animation-graphics" )
72
- val foundation get() = composeDependency(" org.jetbrains.compose.foundation:foundation" )
73
- val material get() = composeDependency(" org.jetbrains.compose.material:material" )
74
- val material3 get() = composeDependency(" org.jetbrains.compose.material3:material3" )
75
- val material3AdaptiveNavigationSuite get() = composeDependency(" org.jetbrains.compose.material3:material3-adaptive-navigation-suite" )
76
- val runtime get() = composeDependency(" org.jetbrains.compose.runtime:runtime" )
77
- val runtimeSaveable get() = composeDependency(" org.jetbrains.compose.runtime:runtime-saveable" )
78
- val ui get() = composeDependency(" org.jetbrains.compose.ui:ui" )
79
- @Deprecated(" Use desktop.uiTestJUnit4" , replaceWith = ReplaceWith (" desktop.uiTestJUnit4" ))
80
- @ExperimentalComposeLibrary
81
- val uiTestJUnit4 get() = composeDependency(" org.jetbrains.compose.ui:ui-test-junit4" )
70
+ val components = CommonComponentsDependencies
71
+ val desktop = DesktopDependencies
72
+ val html: HtmlDependencies = HtmlDependencies
73
+
74
+ val animation = composeDependency(" org.jetbrains.compose.animation:animation" )
75
+ val animationGraphics = composeDependency(" org.jetbrains.compose.animation:animation-graphics" )
76
+ val foundation = composeDependency(" org.jetbrains.compose.foundation:foundation" )
77
+ val material3 = composeDependency(" org.jetbrains.compose.material3:material3" )
78
+ val material3AdaptiveNavigationSuite = composeDependency(" org.jetbrains.compose.material3:material3-adaptive-navigation-suite" )
79
+ val material = composeDependency(" org.jetbrains.compose.material:material" )
80
+ val materialIconsExtended = " org.jetbrains.compose.material:material-icons-extended:1.7.3"
81
+ val preview = composeDependency(" org.jetbrains.compose.ui:ui-tooling-preview" )
82
+ val runtime = composeDependency(" org.jetbrains.compose.runtime:runtime" )
83
+ val runtimeSaveable = composeDependency(" org.jetbrains.compose.runtime:runtime-saveable" )
84
+ val ui = composeDependency(" org.jetbrains.compose.ui:ui" )
85
+ val uiTooling = composeDependency(" org.jetbrains.compose.ui:ui-tooling" )
86
+ val uiUtil = composeDependency(" org.jetbrains.compose.ui:ui-util" )
87
+
82
88
@ExperimentalComposeLibrary
83
- val uiTest get() = composeDependency(" org.jetbrains.compose.ui:ui-test" )
84
- val uiTooling get() = composeDependency(" org.jetbrains.compose.ui:ui-tooling" )
85
- val uiUtil get() = composeDependency(" org.jetbrains.compose.ui:ui-util" )
86
- val preview get() = composeDependency(" org.jetbrains.compose.ui:ui-tooling-preview" )
87
- val materialIconsExtended get() = " org.jetbrains.compose.material:material-icons-extended:1.7.3"
88
- val components get() = CommonComponentsDependencies
89
+ val uiTest = composeDependency(" org.jetbrains.compose.ui:ui-test" )
90
+
89
91
@Deprecated(" Use compose.html" , replaceWith = ReplaceWith (" html" ))
90
92
val web: WebDependencies get() = WebDependencies
91
- val html: HtmlDependencies get() = HtmlDependencies
93
+
94
+ @Deprecated(" Use desktop.uiTestJUnit4" , replaceWith = ReplaceWith (" desktop.uiTestJUnit4" ))
95
+ @ExperimentalComposeLibrary
96
+ val uiTestJUnit4 = composeDependency(" org.jetbrains.compose.ui:ui-test-junit4" )
92
97
}
93
98
94
99
object DesktopDependencies {
95
100
val components = DesktopComponentsDependencies
96
101
97
102
val common = composeDependency(" org.jetbrains.compose.desktop:desktop" )
98
- val linux_x64 = composeDependency(" org.jetbrains.compose.desktop:desktop-jvm-linux-x64" )
99
103
val linux_arm64 = composeDependency(" org.jetbrains.compose.desktop:desktop-jvm-linux-arm64" )
100
- val windows_x64 = composeDependency(" org.jetbrains.compose.desktop:desktop-jvm-windows-x64" )
101
- val windows_arm64 = composeDependency(" org.jetbrains.compose.desktop:desktop-jvm-windows-arm64" )
102
- val macos_x64 = composeDependency(" org.jetbrains.compose.desktop:desktop-jvm-macos-x64" )
104
+ val linux_x64 = composeDependency(" org.jetbrains.compose.desktop:desktop-jvm-linux-x64" )
103
105
val macos_arm64 = composeDependency(" org.jetbrains.compose.desktop:desktop-jvm-macos-arm64" )
106
+ val macos_x64 = composeDependency(" org.jetbrains.compose.desktop:desktop-jvm-macos-x64" )
107
+ val windows_arm64 = composeDependency(" org.jetbrains.compose.desktop:desktop-jvm-windows-arm64" )
108
+ val windows_x64 = composeDependency(" org.jetbrains.compose.desktop:desktop-jvm-windows-x64" )
104
109
105
- val uiTestJUnit4 get() = composeDependency(" org.jetbrains.compose.ui:ui-test-junit4" )
110
+ val uiTestJUnit4 = composeDependency(" org.jetbrains.compose.ui:ui-test-junit4" )
106
111
107
112
val currentOs by lazy {
108
113
composeDependency(" org.jetbrains.compose.desktop:desktop-jvm-${currentTarget.id} " )
@@ -111,7 +116,7 @@ abstract class ComposePlugin : Plugin<Project> {
111
116
112
117
class CompilerDependencies (private val project : Project ) {
113
118
fun forKotlin (version : String ) = " org.jetbrains.compose.compiler:compiler:" +
114
- ComposeCompilerCompatibility .compilerVersionFor(version)
119
+ ComposeCompilerCompatibility .compilerVersionFor(version)
115
120
116
121
/* *
117
122
* Compose Compiler that is chosen by the version of Kotlin applied to the Gradle project
@@ -126,39 +131,23 @@ abstract class ComposePlugin : Plugin<Project> {
126
131
127
132
object DesktopComponentsDependencies {
128
133
@ExperimentalComposeLibrary
129
- val splitPane = composeDependency(" org.jetbrains.compose.components:components-splitpane " )
134
+ val animatedImage = composeDependency(" org.jetbrains.compose.components:components-animatedimage " )
130
135
131
136
@ExperimentalComposeLibrary
132
- val animatedImage = composeDependency(" org.jetbrains.compose.components:components-animatedimage " )
137
+ val splitPane = composeDependency(" org.jetbrains.compose.components:components-splitpane " )
133
138
}
134
139
135
140
@Deprecated(" Use compose.html" )
136
141
object WebDependencies {
137
- val core by lazy {
138
- composeDependency(" org.jetbrains.compose.html:html-core" )
139
- }
140
-
141
- val svg by lazy {
142
- composeDependency(" org.jetbrains.compose.html:html-svg" )
143
- }
144
-
145
- val testUtils by lazy {
146
- composeDependency(" org.jetbrains.compose.html:html-test-utils" )
147
- }
142
+ val core = composeDependency(" org.jetbrains.compose.html:html-core" )
143
+ val svg = composeDependency(" org.jetbrains.compose.html:html-svg" )
144
+ val testUtils = composeDependency(" org.jetbrains.compose.html:html-test-utils" )
148
145
}
149
146
150
147
object HtmlDependencies {
151
- val core by lazy {
152
- composeDependency(" org.jetbrains.compose.html:html-core" )
153
- }
154
-
155
- val svg by lazy {
156
- composeDependency(" org.jetbrains.compose.html:html-svg" )
157
- }
158
-
159
- val testUtils by lazy {
160
- composeDependency(" org.jetbrains.compose.html:html-test-utils" )
161
- }
148
+ val core = composeDependency(" org.jetbrains.compose.html:html-core" )
149
+ val svg = composeDependency(" org.jetbrains.compose.html:html-svg" )
150
+ val testUtils = composeDependency(" org.jetbrains.compose.html:html-test-utils" )
162
151
}
163
152
}
164
153
@@ -169,7 +158,7 @@ fun KotlinDependencyHandler.compose(groupWithArtifact: String) = composeDependen
169
158
170
159
fun DependencyHandler.compose (groupWithArtifact : String ) = composeDependency(groupWithArtifact)
171
160
172
- private fun composeDependency (groupWithArtifact : String ) = " $groupWithArtifact :$composeVersion "
161
+ private fun composeDependency (groupWithArtifact : String ) = " $groupWithArtifact :${ ComposeBuildConfig . composeVersion} "
173
162
174
163
private fun setUpGroovyDslExtensions (project : Project ) {
175
164
project.plugins.withId(" org.jetbrains.kotlin.multiplatform" ) {
0 commit comments