Skip to content

Commit d2582ee

Browse files
committed
Move hasExternalNativeTask validation to ProjectTypeVerifier
1 parent 0da2df1 commit d2582ee

File tree

3 files changed

+27
-27
lines changed

3 files changed

+27
-27
lines changed

embrace-gradle-plugin/src/main/java/io/embrace/android/gradle/plugin/config/ProjectTypeVerifier.kt

Lines changed: 15 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
package io.embrace.android.gradle.plugin.config
22

33
import io.embrace.android.gradle.plugin.agp.AgpWrapper
4+
import io.embrace.android.gradle.plugin.gradle.isTaskRegistered
5+
import org.gradle.api.Project
46
import org.gradle.api.provider.Provider
57

68
internal object ProjectTypeVerifier {
@@ -10,9 +12,11 @@ internal object ProjectTypeVerifier {
1012
unitySymbolsDir: Provider<UnitySymbolsDir>,
1113
agpWrapper: AgpWrapper,
1214
behavior: PluginBehavior,
15+
variantName: String,
16+
project: Project,
1317
): ProjectType {
1418
return when {
15-
isNative(agpWrapper, behavior) -> ProjectType.NATIVE
19+
isNative(agpWrapper, behavior, variantName, project) -> ProjectType.NATIVE
1620
isUnity(unitySymbolsDir.orNull) -> ProjectType.UNITY
1721
else -> ProjectType.OTHER
1822
}
@@ -27,13 +31,18 @@ internal object ProjectTypeVerifier {
2731
*/
2832
private fun isNative(
2933
agpWrapper: AgpWrapper,
30-
behavior: PluginBehavior
34+
behavior: PluginBehavior,
35+
variantName: String,
36+
project: Project,
3137
): Boolean {
32-
return agpWrapper.usesCMake || agpWrapper.usesNdkBuild ||
38+
return agpWrapper.usesCMake || agpWrapper.usesNdkBuild || hasExternalNativeTask(variantName, project) ||
3339
usesCustomNativeBuild(behavior)
3440
}
3541

36-
private fun usesCustomNativeBuild(behavior: PluginBehavior): Boolean {
37-
return !behavior.customSymbolsDirectory.isNullOrEmpty()
38-
}
42+
private fun usesCustomNativeBuild(behavior: PluginBehavior) = !behavior.customSymbolsDirectory.isNullOrEmpty()
43+
44+
private fun hasExternalNativeTask(variantName: String, project: Project) = project.isTaskRegistered(
45+
"externalNativeBuild",
46+
variantName
47+
)
3948
}

embrace-gradle-plugin/src/main/java/io/embrace/android/gradle/plugin/tasks/ndk/NdkUploadTaskRegistration.kt

Lines changed: 2 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@ package io.embrace.android.gradle.plugin.tasks.ndk
33
import io.embrace.android.gradle.plugin.config.PluginBehavior
44
import io.embrace.android.gradle.plugin.config.ProjectType
55
import io.embrace.android.gradle.plugin.config.UnitySymbolsDir
6-
import io.embrace.android.gradle.plugin.gradle.isTaskRegistered
76
import io.embrace.android.gradle.plugin.gradle.nullSafeMap
87
import io.embrace.android.gradle.plugin.gradle.registerTask
98
import io.embrace.android.gradle.plugin.gradle.safeFlatMap
@@ -122,29 +121,14 @@ class NdkUploadTaskRegistration(
122121
}
123122
}
124123

125-
val taskContainer = project.tasks
126124
ndkUploadTaskProvider.configure { ndkUploadTask: NdkUploadTask ->
127125
ndkUploadTask.onlyIf { embraceConfig?.ndkEnabled ?: true }
128126
ndkUploadTask.ndkType.set(
129127
projectType.map {
130128
when (it) {
131129
ProjectType.UNITY -> NdkType.UNITY
132-
ProjectType.NATIVE -> {
133-
if (behavior.customSymbolsDirectory.isNullOrEmpty() ||
134-
taskContainer.isTaskRegistered(
135-
"externalNativeBuild",
136-
variantConfig.variantName
137-
)
138-
) {
139-
NdkType.NATIVE
140-
} else {
141-
NdkType.UNDEFINED
142-
}
143-
}
144-
145-
else -> {
146-
NdkType.UNDEFINED
147-
}
130+
ProjectType.NATIVE -> NdkType.NATIVE
131+
else -> NdkType.UNDEFINED
148132
}
149133
}
150134
)

embrace-gradle-plugin/src/main/java/io/embrace/android/gradle/plugin/tasks/registration/TaskRegistrar.kt

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ class TaskRegistrar(
3030
private val embraceVariantConfigurationBuilder: EmbraceVariantConfigurationBuilder,
3131
private val variantConfigurationsListProperty: ListProperty<VariantConfig>,
3232
private val networkService: NetworkService,
33-
private val agpWrapper: AgpWrapper
33+
private val agpWrapper: AgpWrapper,
3434
) {
3535

3636
/**
@@ -72,7 +72,7 @@ class TaskRegistrar(
7272
}
7373
val variantConfig = variantConfigurationsListProperty.get().first { it.variantName == variant.name }
7474
val symbolsDir = getSymbolsDir(variantConfig)
75-
val projectType = getProjectType(symbolsDir, agpWrapper)
75+
val projectType = getProjectType(symbolsDir, agpWrapper, variantConfig.variantName, project)
7676
NdkUploadTaskRegistration(behavior, symbolsDir, projectType).register(params)
7777
if (behavior.isIl2CppMappingFilesUploadEnabled) {
7878
Il2CppUploadTaskRegistration().register(params)
@@ -107,11 +107,18 @@ class TaskRegistrar(
107107
)
108108
}
109109

110-
private fun getProjectType(symbolsDir: Provider<UnitySymbolsDir>, agpWrapper: AgpWrapper) = project.provider {
110+
private fun getProjectType(
111+
symbolsDir: Provider<UnitySymbolsDir>,
112+
agpWrapper: AgpWrapper,
113+
variantName: String,
114+
project: Project,
115+
) = this.project.provider {
111116
ProjectTypeVerifier.getProjectType(
112117
symbolsDir,
113118
agpWrapper,
114119
behavior,
120+
variantName,
121+
project
115122
)
116123
}
117124

0 commit comments

Comments
 (0)