Skip to content

Commit 5f61ccc

Browse files
authored
Revert "Refactor klib manifest workaround for k/native targets (#2237)" (#2238)
This reverts commit ea4c7a4. PR #2237 The reason for revert is https://youtrack.jetbrains.com/issue/CMP-7847/Refactor-artifactRedirection.modulesForKNativeManifest#focus=Comments-27-12349989.0-0 ## Testing N/A ## Release Notes N/A
1 parent ce216ed commit 5f61ccc

File tree

2 files changed

+22
-28
lines changed

2 files changed

+22
-28
lines changed

buildSrc/private/src/main/kotlin/androidx/build/jetbrains/JetBrainsAndroidXImplPlugin.kt

Lines changed: 11 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -81,33 +81,14 @@ open class JetbrainsExtensions(
8181
fun KotlinNativeTarget.substituteForRedirectedPublishedDependencies() {
8282
val main = compilations.getByName("main")
8383
val test = compilations.getByName("test")
84+
val kNativeManifestRedirectingModulesRaw =
85+
project.property("artifactRedirection.modulesForKNativeManifest") as String
8486

85-
val targetName = name.lowercase()
86-
// The target name in a dependency project might be different from this project,
87-
// so we check for an alternative name too.
88-
// Historically, we had such aliases only for the 'ios <-> uikit' pair.
89-
val altName = if (targetName.startsWith("ios")) {
90-
targetName.replace("ios", "uikit")
91-
} else if (targetName.startsWith("uikit")) {
92-
targetName.replace("uikit", "ios")
93-
} else {
94-
null
95-
}
96-
97-
val rootProjectName = project.rootProject.name // compose-multiplatform-core
98-
99-
val redirectedProjects = project.rootProject.subprojects.mapNotNull { project ->
100-
project.takeIf {
101-
// we are not interested in intermediate (structural) projects which are not published.
102-
// they have a group name with rootProjectName in it
103-
!it.group.toString().contains(rootProjectName)
104-
}?.artifactRedirection()?.takeIf {
105-
it.targetNames.contains(targetName) || it.targetNames.contains(altName)
106-
}?.let {
107-
project.path to it.groupId + ":" + project.name + ":" + it.versionForTargetOrDefault(targetName)
87+
val projectPathToRedirectingVersionMap = kNativeManifestRedirectingModulesRaw
88+
.split(",").associate {
89+
val pair = it.split("=")
90+
pair[0] to project.property(pair[1]) as String
10891
}
109-
}
110-
11192
listOf(main, test).flatMap {
11293
val configurations = it.configurations
11394
listOf(
@@ -121,9 +102,11 @@ open class JetbrainsExtensions(
121102
}.forEach { c ->
122103
c?.resolutionStrategy {
123104
it.dependencySubstitution {
124-
redirectedProjects.forEach { entry ->
125-
val path = entry.first
126-
val artifact = entry.second
105+
projectPathToRedirectingVersionMap.forEach { path, version ->
106+
val pathElements = path.split(":").filter { it.isNotEmpty() }
107+
val group = pathElements.dropLast(1).joinToString(".")
108+
val module = pathElements.last()
109+
val artifact = "androidx.$group:$module:$version"
127110
it.substitute(it.project(path)).using(it.module(artifact))
128111
}
129112
}

gradle.properties

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -121,6 +121,17 @@ artifactRedirection.version.androidx.performance=1.0.0-alpha01
121121
artifactRedirection.version.androidx.savedstate=1.3.0
122122
artifactRedirection.version.androidx.window=1.4.0
123123

124+
# For the purpose of substituteForRedirectedPublishedDependencies (look for it in the code)
125+
artifactRedirection.modulesForKNativeManifest=\
126+
:annotation:annotation=artifactRedirection.version.androidx.annotation,\
127+
:collection:collection=artifactRedirection.version.androidx.collection,\
128+
:graphics:graphics-shapes=artifactRedirection.version.androidx.graphics,\
129+
:lifecycle:lifecycle-common=artifactRedirection.version.androidx.lifecycle,\
130+
:lifecycle:lifecycle-runtime=artifactRedirection.version.androidx.lifecycle,\
131+
:lifecycle:lifecycle-viewmodel=artifactRedirection.version.androidx.lifecycle,\
132+
:lifecycle:lifecycle-viewmodel-savedstate=artifactRedirection.version.androidx.lifecycle,\
133+
:savedstate:savedstate=artifactRedirection.version.androidx.savedstate
134+
124135
# Enable atomicfu IR transformations
125136
kotlinx.atomicfu.enableJvmIrTransformation=true
126137
kotlinx.atomicfu.enableNativeIrTransformation=true

0 commit comments

Comments
 (0)