@callstack/react-native-brownfield 4.0.0 → 4.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/gradle-plugin/brownfield/config/detekt/detekt.yml +1 -1
- package/gradle-plugin/brownfield/gradle.properties +1 -1
- package/gradle-plugin/brownfield/gradlew +0 -0
- package/gradle-plugin/brownfield/src/main/kotlin/com/callstack/react/brownfield/expo/utils/LocalMavenUtils.kt +2 -5
- package/gradle-plugin/brownfield/src/main/kotlin/com/callstack/react/brownfield/plugin/ProjectConfigurations.kt +3 -5
- package/gradle-plugin/brownfield/src/main/kotlin/com/callstack/react/brownfield/plugin/RNBrownfieldPlugin.kt +20 -26
- package/gradle-plugin/brownfield/src/main/kotlin/com/callstack/react/brownfield/plugin/RNSourceSets.kt +23 -35
- package/gradle-plugin/brownfield/src/main/kotlin/com/callstack/react/brownfield/processors/AssetTaskProcessor.kt +51 -16
- package/gradle-plugin/brownfield/src/main/kotlin/com/callstack/react/brownfield/processors/ExplodeTaskProvider.kt +6 -7
- package/gradle-plugin/brownfield/src/main/kotlin/com/callstack/react/brownfield/processors/JNILibsProcessor.kt +133 -108
- package/gradle-plugin/brownfield/src/main/kotlin/com/callstack/react/brownfield/processors/ManifestTaskProcessor.kt +26 -62
- package/gradle-plugin/brownfield/src/main/kotlin/com/callstack/react/brownfield/processors/MergeProcessor.kt +7 -29
- package/gradle-plugin/brownfield/src/main/kotlin/com/callstack/react/brownfield/processors/ProguardProcessor.kt +9 -46
- package/gradle-plugin/brownfield/src/main/kotlin/com/callstack/react/brownfield/processors/ResourceTaskProcessor.kt +49 -11
- package/gradle-plugin/brownfield/src/main/kotlin/com/callstack/react/brownfield/processors/VariantHelper.kt +52 -47
- package/gradle-plugin/brownfield/src/main/kotlin/com/callstack/react/brownfield/processors/VariantTaskProvider.kt +31 -63
- package/gradle-plugin/brownfield/src/main/kotlin/com/callstack/react/brownfield/shared/BundleTaskProvider.kt +72 -27
- package/gradle-plugin/brownfield/src/main/kotlin/com/callstack/react/brownfield/shared/Constants.kt +0 -1
- package/gradle-plugin/brownfield/src/main/kotlin/com/callstack/react/brownfield/shared/ExplodeAarTask.kt +2 -20
- package/gradle-plugin/brownfield/src/main/kotlin/com/callstack/react/brownfield/shared/Logging.kt +1 -1
- package/gradle-plugin/brownfield/src/main/kotlin/com/callstack/react/brownfield/shared/MergeClassesTask.kt +70 -0
- package/gradle-plugin/brownfield/src/main/kotlin/com/callstack/react/brownfield/shared/MergeLibraryManifestTask.kt +178 -0
- package/gradle-plugin/brownfield/src/main/kotlin/com/callstack/react/brownfield/utils/AndroidArchiveLibrary.kt +0 -4
- package/gradle-plugin/brownfield/src/main/kotlin/com/callstack/react/brownfield/utils/DirectoryManager.kt +0 -5
- package/gradle-plugin/brownfield/src/main/kotlin/com/callstack/react/brownfield/utils/Extension.kt +8 -9
- package/gradle-plugin/brownfield/src/main/kotlin/com/callstack/react/brownfield/utils/Utils.kt +2 -34
- package/lib/commonjs/expo-config-plugin/android/utils/constants.js +1 -1
- package/lib/commonjs/expo-config-plugin/android/utils/formatHelpers.js +2 -0
- package/lib/commonjs/expo-config-plugin/android/utils/formatHelpers.js.map +1 -0
- package/lib/commonjs/expo-config-plugin/android/utils/gradleHelpers.js +1 -1
- package/lib/commonjs/expo-config-plugin/android/utils/gradleHelpers.js.map +1 -1
- package/lib/commonjs/expo-config-plugin/android/withAndroidModuleFiles.js +1 -1
- package/lib/commonjs/expo-config-plugin/android/withAndroidModuleFiles.js.map +1 -1
- package/lib/commonjs/expo-config-plugin/android/withBrownfieldAndroid.js +1 -1
- package/lib/commonjs/expo-config-plugin/android/withBrownfieldAndroid.js.map +1 -1
- package/lib/commonjs/expo-config-plugin/template/android/build.gradle.kts +6 -0
- package/lib/commonjs/scripts/brownfield.js +0 -0
- package/lib/module/expo-config-plugin/android/utils/constants.js +1 -1
- package/lib/module/expo-config-plugin/android/utils/formatHelpers.js +2 -0
- package/lib/module/expo-config-plugin/android/utils/formatHelpers.js.map +1 -0
- package/lib/module/expo-config-plugin/android/utils/gradleHelpers.js +1 -1
- package/lib/module/expo-config-plugin/android/utils/gradleHelpers.js.map +1 -1
- package/lib/module/expo-config-plugin/android/withAndroidModuleFiles.js +1 -1
- package/lib/module/expo-config-plugin/android/withAndroidModuleFiles.js.map +1 -1
- package/lib/module/expo-config-plugin/android/withBrownfieldAndroid.js +1 -1
- package/lib/module/expo-config-plugin/android/withBrownfieldAndroid.js.map +1 -1
- package/lib/module/expo-config-plugin/template/android/build.gradle.kts +6 -0
- package/lib/typescript/commonjs/src/expo-config-plugin/android/utils/constants.d.ts +2 -2
- package/lib/typescript/commonjs/src/expo-config-plugin/android/utils/formatHelpers.d.ts +2 -0
- package/lib/typescript/commonjs/src/expo-config-plugin/android/utils/formatHelpers.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/expo-config-plugin/android/utils/gradleHelpers.d.ts +9 -1
- package/lib/typescript/commonjs/src/expo-config-plugin/android/utils/gradleHelpers.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/expo-config-plugin/android/withAndroidModuleFiles.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/expo-config-plugin/android/withBrownfieldAndroid.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/expo-config-plugin/types/android/BrownfieldPluginAndroidConfig.d.ts +10 -0
- package/lib/typescript/commonjs/src/expo-config-plugin/types/android/BrownfieldPluginAndroidConfig.d.ts.map +1 -1
- package/lib/typescript/module/src/expo-config-plugin/android/utils/constants.d.ts +2 -2
- package/lib/typescript/module/src/expo-config-plugin/android/utils/formatHelpers.d.ts +2 -0
- package/lib/typescript/module/src/expo-config-plugin/android/utils/formatHelpers.d.ts.map +1 -0
- package/lib/typescript/module/src/expo-config-plugin/android/utils/gradleHelpers.d.ts +9 -1
- package/lib/typescript/module/src/expo-config-plugin/android/utils/gradleHelpers.d.ts.map +1 -1
- package/lib/typescript/module/src/expo-config-plugin/android/withAndroidModuleFiles.d.ts.map +1 -1
- package/lib/typescript/module/src/expo-config-plugin/android/withBrownfieldAndroid.d.ts.map +1 -1
- package/lib/typescript/module/src/expo-config-plugin/types/android/BrownfieldPluginAndroidConfig.d.ts +10 -0
- package/lib/typescript/module/src/expo-config-plugin/types/android/BrownfieldPluginAndroidConfig.d.ts.map +1 -1
- package/package.json +3 -3
- package/src/expo-config-plugin/android/utils/constants.ts +1 -1
- package/src/expo-config-plugin/android/utils/formatHelpers.ts +7 -0
- package/src/expo-config-plugin/android/utils/gradleHelpers.ts +114 -8
- package/src/expo-config-plugin/android/withAndroidModuleFiles.ts +20 -0
- package/src/expo-config-plugin/android/withBrownfieldAndroid.ts +20 -4
- package/src/expo-config-plugin/template/android/build.gradle.kts +6 -0
- package/src/expo-config-plugin/types/android/BrownfieldPluginAndroidConfig.ts +12 -0
- package/CHANGELOG.md +0 -300
|
File without changes
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
package com.callstack.react.brownfield.expo.utils
|
|
2
2
|
|
|
3
|
-
import com.android.build.
|
|
3
|
+
import com.android.build.api.dsl.LibraryExtension
|
|
4
4
|
import org.gradle.api.Project
|
|
5
5
|
import java.io.File
|
|
6
6
|
|
|
@@ -68,10 +68,7 @@ object LocalMavenUtils {
|
|
|
68
68
|
BrownfieldPublishingInfo(
|
|
69
69
|
groupId = groupId,
|
|
70
70
|
artifactId = artifactId,
|
|
71
|
-
version = (
|
|
72
|
-
targetProjectAndroidLibExt.defaultConfig.versionName
|
|
73
|
-
?: targetProject.version.toString()
|
|
74
|
-
),
|
|
71
|
+
version = targetProject.version.toString(),
|
|
75
72
|
)
|
|
76
73
|
)
|
|
77
74
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
package com.callstack.react.brownfield.plugin
|
|
2
2
|
|
|
3
|
+
import com.android.build.api.dsl.LibraryExtension
|
|
3
4
|
import com.android.build.api.variant.LibraryAndroidComponentsExtension
|
|
4
|
-
import com.android.build.gradle.LibraryExtension
|
|
5
5
|
import com.callstack.react.brownfield.shared.Logging
|
|
6
6
|
import com.callstack.react.brownfield.utils.capitalized
|
|
7
7
|
import org.gradle.api.Project
|
|
@@ -70,7 +70,6 @@ class ProjectConfigurations(private val project: Project) {
|
|
|
70
70
|
val configuration = project.configurations.create(configName)
|
|
71
71
|
|
|
72
72
|
configuration.extendsFrom(project.configurations.getByName("implementation"))
|
|
73
|
-
configuration.isVisible = false
|
|
74
73
|
configuration.isTransitive = false
|
|
75
74
|
|
|
76
75
|
val androidComponents = project.extensions.getByType(LibraryAndroidComponentsExtension::class.java)
|
|
@@ -96,9 +95,8 @@ class ProjectConfigurations(private val project: Project) {
|
|
|
96
95
|
from: AttributeContainer,
|
|
97
96
|
into: AttributeContainer,
|
|
98
97
|
) {
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
into.attribute(key, value)
|
|
98
|
+
from.getAttribute(key)?.let {
|
|
99
|
+
into.attribute(key, it)
|
|
102
100
|
}
|
|
103
101
|
}
|
|
104
102
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
package com.callstack.react.brownfield.plugin
|
|
2
2
|
|
|
3
|
-
import com.android.build.
|
|
4
|
-
import com.android.build.
|
|
3
|
+
import com.android.build.api.variant.LibraryAndroidComponentsExtension
|
|
4
|
+
import com.android.build.api.variant.LibraryVariant
|
|
5
5
|
import com.callstack.react.brownfield.artifacts.ArtifactsResolver
|
|
6
6
|
import com.callstack.react.brownfield.expo.ExpoPublishingHelper
|
|
7
7
|
import com.callstack.react.brownfield.expo.utils.ExpoGradleProjectProjection
|
|
@@ -11,6 +11,7 @@ import com.callstack.react.brownfield.processors.JNILibsProcessor
|
|
|
11
11
|
import com.callstack.react.brownfield.processors.ManifestTaskProcessor
|
|
12
12
|
import com.callstack.react.brownfield.processors.ProguardProcessor
|
|
13
13
|
import com.callstack.react.brownfield.processors.ResourceTaskProcessor
|
|
14
|
+
import com.callstack.react.brownfield.processors.VariantHelper
|
|
14
15
|
import com.callstack.react.brownfield.processors.VariantPackagesProperty
|
|
15
16
|
import com.callstack.react.brownfield.processors.VariantTaskProvider
|
|
16
17
|
import com.callstack.react.brownfield.shared.BaseProject
|
|
@@ -21,6 +22,7 @@ import com.callstack.react.brownfield.utils.AndroidArchiveLibrary
|
|
|
21
22
|
import com.callstack.react.brownfield.utils.DirectoryManager
|
|
22
23
|
import com.callstack.react.brownfield.utils.Extension
|
|
23
24
|
import com.callstack.react.brownfield.utils.Utils
|
|
25
|
+
import com.callstack.react.brownfield.utils.capitalized
|
|
24
26
|
import org.gradle.api.Plugin
|
|
25
27
|
import org.gradle.api.Project
|
|
26
28
|
import org.gradle.api.ProjectConfigurationException
|
|
@@ -65,10 +67,8 @@ class RNBrownfieldPlugin : Plugin<Project> {
|
|
|
65
67
|
|
|
66
68
|
val variantTaskProvider = VariantTaskProvider(project)
|
|
67
69
|
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
*/
|
|
71
|
-
project.extensions.getByType(LibraryExtension::class.java).libraryVariants.all { variant ->
|
|
70
|
+
val androidComponents = project.extensions.getByType(LibraryAndroidComponentsExtension::class.java)
|
|
71
|
+
androidComponents.onVariants { variant ->
|
|
72
72
|
configureTasks(variant, artifacts, variantTaskProvider)
|
|
73
73
|
}
|
|
74
74
|
}
|
|
@@ -124,48 +124,42 @@ class RNBrownfieldPlugin : Plugin<Project> {
|
|
|
124
124
|
variantTaskProvider: VariantTaskProvider,
|
|
125
125
|
) {
|
|
126
126
|
val variantName = variant.name
|
|
127
|
-
val capitalizedVariantName = variantName.
|
|
127
|
+
val capitalizedVariantName = variantName.capitalized()
|
|
128
128
|
|
|
129
129
|
/** ======= EXPLODE AAR =========*/
|
|
130
130
|
val explodeTask = ExplodeTaskProvider.getTask(variant, project, artifacts)
|
|
131
131
|
|
|
132
132
|
/** ======= Pre<Variant>Build =========*/
|
|
133
133
|
variantTaskProvider.preBuildTaskByVariant(
|
|
134
|
-
|
|
135
|
-
variant.buildType.name,
|
|
136
|
-
variant.buildType.isDebuggable,
|
|
134
|
+
variant,
|
|
137
135
|
explodeTask,
|
|
138
136
|
)
|
|
139
137
|
|
|
140
138
|
val aarLibraries = getAarLibraries(artifacts, variantName)
|
|
141
139
|
|
|
140
|
+
ManifestTaskProcessor.process(project, variant, aarLibraries)
|
|
141
|
+
ResourceTaskProcessor.process(project, variant, aarLibraries, explodeTask)
|
|
142
|
+
AssetTaskProcessor.process(project, variant, aarLibraries, explodeTask)
|
|
143
|
+
|
|
144
|
+
/** ======= MERGE CLASSES =========*/
|
|
145
|
+
val mergeClassesTask = variantTaskProvider.mergeClasses(aarLibraries, explodeTask, variantName)
|
|
146
|
+
VariantHelper.getAsmTransformTask(project, capitalizedVariantName).configureEach {
|
|
147
|
+
it.dependsOn(mergeClassesTask)
|
|
148
|
+
}
|
|
149
|
+
|
|
142
150
|
/**
|
|
143
151
|
* Flat IDs to be put into the variant property, required for RClass Transformer
|
|
144
152
|
*/
|
|
145
153
|
val packageIDs = aarLibraries.map { it.getPackageName() }
|
|
146
154
|
VariantPackagesProperty.getVariantPackagesProperty().put(variantName, packageIDs)
|
|
147
155
|
|
|
148
|
-
/** ======= MANIFEST MERGER =========*/
|
|
149
|
-
ManifestTaskProcessor.process(variant, project, aarLibraries)
|
|
150
|
-
|
|
151
|
-
/** ======= GENERATE RESOURCES =========*/
|
|
152
|
-
ResourceTaskProcessor.process(variant, project, aarLibraries)
|
|
153
|
-
|
|
154
|
-
/** ======= GENERATE ASSETS ========= */
|
|
155
|
-
AssetTaskProcessor.process(variant, project, aarLibraries)
|
|
156
|
-
|
|
157
156
|
/** ===== jniLibsProcessor ===== */
|
|
158
157
|
val jniLibsProcessor = JNILibsProcessor(project)
|
|
159
|
-
jniLibsProcessor.processJniLibs(aarLibraries,
|
|
158
|
+
jniLibsProcessor.processJniLibs(aarLibraries, variant)
|
|
160
159
|
|
|
161
160
|
/** ===== proguardProcessor ===== */
|
|
162
161
|
val proguardProcessor = ProguardProcessor(project)
|
|
163
162
|
val proguardRules = aarLibraries.map { it.getProguardRules() }
|
|
164
|
-
proguardProcessor.
|
|
165
|
-
proguardProcessor.processGeneratedFiles(proguardRules, capitalizedVariantName)
|
|
166
|
-
|
|
167
|
-
/** ===== processDataBinding ===== */
|
|
168
|
-
val bundleTask = variantTaskProvider.bundleTaskProvider(project, variantName)
|
|
169
|
-
variantTaskProvider.processDataBinding(bundleTask, aarLibraries, variantName)
|
|
163
|
+
proguardProcessor.processFiles(proguardRules, variantName.capitalized(), explodeTask)
|
|
170
164
|
}
|
|
171
165
|
}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
package com.callstack.react.brownfield.plugin
|
|
2
2
|
|
|
3
|
+
import com.android.build.api.dsl.LibraryExtension
|
|
3
4
|
import com.android.build.api.variant.LibraryAndroidComponentsExtension
|
|
4
|
-
import com.android.build.gradle.LibraryExtension
|
|
5
5
|
import com.callstack.react.brownfield.exceptions.NameSpaceNotFound
|
|
6
|
+
import com.callstack.react.brownfield.processors.VariantHelper
|
|
6
7
|
import com.callstack.react.brownfield.utils.Extension
|
|
7
8
|
import com.callstack.react.brownfield.utils.Utils
|
|
8
9
|
import com.callstack.react.brownfield.utils.capitalized
|
|
@@ -42,14 +43,14 @@ object RNSourceSets {
|
|
|
42
43
|
// Move the non-variant-specific configuration out of the loop
|
|
43
44
|
androidExtension.sourceSets.named("main") { sourceSet ->
|
|
44
45
|
// This path is not variant-specific, so it's added once here.
|
|
45
|
-
sourceSet.java.
|
|
46
|
+
sourceSet.java.directories.add("${getModuleBuildDir()}/generated/autolinking/src/main/java")
|
|
46
47
|
}
|
|
47
48
|
|
|
48
|
-
// 2. Use the onVariants block to
|
|
49
|
+
// 2. Use the onVariants block to wire RN bundle outputs via the Variant Sources API
|
|
49
50
|
componentsExtension.onVariants { variant ->
|
|
50
51
|
val variantName = variant.name
|
|
51
52
|
val bundledAssetsVariantName =
|
|
52
|
-
|
|
53
|
+
VariantHelper.getBundledAssetsVariantName(
|
|
53
54
|
variantName = variantName,
|
|
54
55
|
buildTypeName = variant.buildType,
|
|
55
56
|
isDebuggable = variant.debuggable,
|
|
@@ -57,37 +58,24 @@ object RNSourceSets {
|
|
|
57
58
|
val capitalizedBundledAssetsVariantName = bundledAssetsVariantName.capitalized()
|
|
58
59
|
val appProject = getAppProject()
|
|
59
60
|
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
sourceSet.jniLibs.srcDir(
|
|
79
|
-
project.files(libsDir).builtBy(copyTaskName),
|
|
80
|
-
)
|
|
81
|
-
}
|
|
82
|
-
if (Utils.hasExpoUpdates(appProject, variant.name)) {
|
|
83
|
-
val updateResourcesTask = appProject.tasks.named(updateResourcesPathSegment)
|
|
84
|
-
sourceSet.assets.srcDir(
|
|
85
|
-
project.files("$appBuildDir/generated/assets/$updateResourcesPathSegment").builtBy(updateResourcesTask),
|
|
86
|
-
)
|
|
87
|
-
sourceSet.res.srcDir(
|
|
88
|
-
project.files("$appBuildDir/generated/res/$updateResourcesPathSegment").builtBy(updateResourcesTask),
|
|
89
|
-
)
|
|
90
|
-
}
|
|
61
|
+
val bundlePathSegments =
|
|
62
|
+
listOf(
|
|
63
|
+
// outputs for RN <= 0.81
|
|
64
|
+
"createBundle${capitalizedBundledAssetsVariantName}JsAndAssets",
|
|
65
|
+
// outputs for RN >= 0.82
|
|
66
|
+
"react/$bundledAssetsVariantName",
|
|
67
|
+
)
|
|
68
|
+
|
|
69
|
+
val appBuildDir = getAppBuildDir()
|
|
70
|
+
bundlePathSegments.forEach { segment ->
|
|
71
|
+
variant.sources.assets?.addStaticSourceDirectory("$appBuildDir/generated/assets/$segment")
|
|
72
|
+
variant.sources.res?.addStaticSourceDirectory("$appBuildDir/generated/res/$segment")
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
if (Utils.hasExpoUpdates(appProject, variantName)) {
|
|
76
|
+
val updateResourcesPathSegment = VariantHelper.getExpoUpdatesResourcesTaskName(variant.name)
|
|
77
|
+
variant.sources.assets?.addStaticSourceDirectory("$appBuildDir/generated/assets/$updateResourcesPathSegment")
|
|
78
|
+
variant.sources.res?.addStaticSourceDirectory("$appBuildDir/generated/res/$updateResourcesPathSegment")
|
|
91
79
|
}
|
|
92
80
|
}
|
|
93
81
|
}
|
|
@@ -1,29 +1,64 @@
|
|
|
1
1
|
package com.callstack.react.brownfield.processors
|
|
2
2
|
|
|
3
|
-
import com.android.build.
|
|
4
|
-
import com.
|
|
3
|
+
import com.android.build.api.variant.LibraryVariant
|
|
4
|
+
import com.callstack.react.brownfield.shared.ExplodeAarTask
|
|
5
5
|
import com.callstack.react.brownfield.utils.AndroidArchiveLibrary
|
|
6
|
+
import com.callstack.react.brownfield.utils.capitalized
|
|
7
|
+
import org.gradle.api.DefaultTask
|
|
6
8
|
import org.gradle.api.Project
|
|
9
|
+
import org.gradle.api.file.ConfigurableFileCollection
|
|
10
|
+
import org.gradle.api.file.DirectoryProperty
|
|
11
|
+
import org.gradle.api.tasks.CacheableTask
|
|
12
|
+
import org.gradle.api.tasks.InputFiles
|
|
13
|
+
import org.gradle.api.tasks.OutputDirectory
|
|
14
|
+
import org.gradle.api.tasks.PathSensitive
|
|
15
|
+
import org.gradle.api.tasks.PathSensitivity
|
|
16
|
+
import org.gradle.api.tasks.TaskAction
|
|
17
|
+
import org.gradle.api.tasks.TaskProvider
|
|
18
|
+
|
|
19
|
+
@CacheableTask
|
|
20
|
+
abstract class CopyExplodedAssetsTask : DefaultTask() {
|
|
21
|
+
@get:InputFiles
|
|
22
|
+
@get:PathSensitive(PathSensitivity.RELATIVE)
|
|
23
|
+
abstract val inputAssetDirs: ConfigurableFileCollection
|
|
24
|
+
|
|
25
|
+
@get:OutputDirectory
|
|
26
|
+
abstract val outputDirectory: DirectoryProperty
|
|
27
|
+
|
|
28
|
+
@TaskAction
|
|
29
|
+
fun run() {
|
|
30
|
+
val out = outputDirectory.get().asFile
|
|
31
|
+
out.deleteRecursively()
|
|
32
|
+
out.mkdirs()
|
|
33
|
+
inputAssetDirs.forEach { assetDir ->
|
|
34
|
+
if (assetDir.exists()) {
|
|
35
|
+
assetDir.copyRecursively(out, overwrite = true)
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
}
|
|
7
40
|
|
|
8
41
|
object AssetTaskProcessor {
|
|
9
42
|
fun process(
|
|
10
|
-
variant: LibraryVariant,
|
|
11
43
|
project: Project,
|
|
44
|
+
variant: LibraryVariant,
|
|
12
45
|
aarLibraries: List<AndroidArchiveLibrary>,
|
|
46
|
+
explodeTask: TaskProvider<ExplodeAarTask>,
|
|
13
47
|
) {
|
|
14
|
-
val
|
|
15
|
-
|
|
16
|
-
val
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
if (!filteredAarLibs.isEmpty()) {
|
|
24
|
-
sourceSet.assets.srcDirs(filteredAarLibs.map { it.getAssetsDir() })
|
|
25
|
-
}
|
|
48
|
+
val capitalized = variant.name.capitalized()
|
|
49
|
+
val assetDirs = aarLibraries.map { it.getAssetsDir() }
|
|
50
|
+
val copyAssetsTask =
|
|
51
|
+
project.tasks.register(
|
|
52
|
+
"copyExplodedAssetsFor$capitalized",
|
|
53
|
+
CopyExplodedAssetsTask::class.java,
|
|
54
|
+
) { task ->
|
|
55
|
+
task.inputAssetDirs.setFrom(assetDirs)
|
|
56
|
+
task.dependsOn(explodeTask)
|
|
26
57
|
}
|
|
27
|
-
|
|
58
|
+
|
|
59
|
+
variant.sources.assets?.addGeneratedSourceDirectory(
|
|
60
|
+
copyAssetsTask,
|
|
61
|
+
CopyExplodedAssetsTask::outputDirectory,
|
|
62
|
+
)
|
|
28
63
|
}
|
|
29
64
|
}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
package com.callstack.react.brownfield.processors
|
|
2
2
|
|
|
3
|
-
import com.android.build.
|
|
3
|
+
import com.android.build.api.variant.LibraryVariant
|
|
4
4
|
import com.callstack.react.brownfield.shared.BundleTaskProvider
|
|
5
5
|
import com.callstack.react.brownfield.shared.ExplodeAarTask
|
|
6
6
|
import com.callstack.react.brownfield.shared.UnresolvedArtifactInfo
|
|
7
|
+
import com.callstack.react.brownfield.utils.Extension
|
|
7
8
|
import com.callstack.react.brownfield.utils.capitalized
|
|
8
9
|
import org.gradle.api.Project
|
|
9
10
|
import org.gradle.api.Task
|
|
@@ -20,25 +21,23 @@ object ExplodeTaskProvider {
|
|
|
20
21
|
val variantTaskProvider = VariantTaskProvider(project)
|
|
21
22
|
val bundleProvider = BundleTaskProvider(variantTaskProvider)
|
|
22
23
|
val capitalizedVariantName = variant.name.capitalized()
|
|
24
|
+
val projectExt = project.extensions.getByType(Extension::class.java)
|
|
23
25
|
|
|
24
26
|
return project.tasks.register(
|
|
25
27
|
"explode${capitalizedVariantName}Aar",
|
|
26
28
|
ExplodeAarTask::class.java,
|
|
27
29
|
) { task ->
|
|
28
30
|
task.variantName.set(variant.name)
|
|
29
|
-
task.minifyEnabled.set(variant.buildType.isMinifyEnabled)
|
|
30
31
|
|
|
31
32
|
val finalArtifacts = mutableListOf<UnresolvedArtifactInfo>()
|
|
32
33
|
artifacts.forEach { art ->
|
|
33
34
|
var artifactPath = art.file
|
|
34
35
|
if (art.isExpoPublishDependency != true) {
|
|
35
|
-
val defaultTaskName = "bundle${capitalizedVariantName}Aar"
|
|
36
36
|
val dependencyProject = project.project(":${art.moduleName}")
|
|
37
|
-
val bundleTaskProvider = bundleProvider.getBundleTask(dependencyProject, variant)
|
|
38
|
-
val taskName = bundleTaskProvider
|
|
39
|
-
|
|
37
|
+
val bundleTaskProvider = bundleProvider.getBundleTask(dependencyProject, variant, projectExt.missingDimensionStrategies)
|
|
38
|
+
val taskName = bundleTaskProvider.name
|
|
40
39
|
dependencyProject.tasks.findByName(taskName)?.let { task.dependsOn(it) }
|
|
41
|
-
artifactPath = createArtifactFile(bundleTaskProvider
|
|
40
|
+
artifactPath = createArtifactFile(bundleTaskProvider.get()).absolutePath
|
|
42
41
|
}
|
|
43
42
|
|
|
44
43
|
finalArtifacts.add(
|