Skip to content

Commit 4869d5b

Browse files
author
Mihail Slavchev
committed
revert old logic
1 parent 7bf035b commit 4869d5b

1 file changed

Lines changed: 45 additions & 26 deletions

File tree

build/project-template-gradle/build.gradle

Lines changed: 45 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,6 @@ def nodeModulesDir = "../../node_modules/"
4040
def libDir = "../../lib/Android/"
4141
def pluginNames = new ArrayList<String>()
4242
def configDir = file(configurationsDir)
43-
def firstApplicationBuildType = ""
4443

4544
def compiteCompileSdkVersion () {
4645
if(project.hasProperty("compileSdk")) {
@@ -128,19 +127,15 @@ android {
128127

129128
applicationVariants.all { variant ->
130129
renameResultApks(variant)
131-
132-
if (firstApplicationBuildType == "") {
133-
firstApplicationBuildType = variant.buildType.name;
134-
}
135130

136-
def mergeAssetsTask = variant.dex
131+
def mergeAssetsTask = variant.mergeAssets
137132
if(project.hasProperty("runSBGenerator")) {
138-
runBindingGenerator.dependsOn(buildMetadata)
133+
runBindingGenerator.dependsOn(copyMetadata)
139134
rbg.dependsOn(runBindingGenerator)
140135
mergeAssetsTask.dependsOn(rbg)
141136
}
142137
else {
143-
mergeAssetsTask.dependsOn(buildMetadata)
138+
mergeAssetsTask.dependsOn(copyMetadata)
144139
}
145140
}
146141
}
@@ -323,6 +318,10 @@ task cleanLocalAarFiles(type: Delete) {
323318
delete fileTree(dir: "libs/aar", include: ["*.aar"])
324319
}
325320

321+
task deleteJavaDir (type: Delete) {
322+
delete "$rootDir/src/main/java"
323+
}
324+
326325
task ensureMetadataOutDir {
327326
def outputDir = file("$rootDir/metadata/output")
328327
outputDir.mkdirs()
@@ -348,8 +347,6 @@ task collectAllJars {
348347
allJarPaths.add(currentJarFile.getAbsolutePath())
349348
}
350349

351-
allJarPaths.add("$rootDir/build/intermediates/classes");
352-
353350
metadataParams.add("metadata-generator.jar")
354351
metadataParams.add("../metadata/output")
355352
for(def i = 0; i < allJarPaths.size(); i++) {
@@ -358,37 +355,56 @@ task collectAllJars {
358355
}
359356
}
360357

361-
task buildMetadata (type: JavaExec) {
362-
description "builds metadata with provided jar dependencies"
358+
task isMetadataGenerationNecessary {
359+
description "checks if new metadata is necessary based on jar and aar dependencies used"
360+
def inputFile = new File("build/metadataUTD")
361+
def metadataDir = new File("metadata/output");
363362

364-
inputs.files(allJarPaths)
365-
inputs.dir("build/intermediates/classes")
363+
inputs.file inputFile
364+
outputs.upToDateWhen {
365+
inputFile.exists() &&
366+
metadataDir.exists() &&
367+
metadataDir.list().length == 3 &&
368+
(inputFile.text.trim() == metadataParams.toString().trim())
369+
}
366370

367-
outputs.files("metadata/output/treeNodeStream.dat", "metadata/output/treeStringsStream.dat", "metadata/output/treeValueStream.dat")
371+
doLast {
372+
inputFile.text = metadataParams
373+
}
374+
}
368375

376+
task buildMetadata (type: JavaExec) {
377+
description "builds metadata with provided jar dependencies"
378+
outputs.upToDateWhen {
379+
!isMetadataGenerationNecessary.didWork
380+
}
381+
369382
doFirst {
370383
workingDir "build-tools"
371384

372385
main "-jar"
373386

374387
args metadataParams.toArray()
375388
}
376-
377-
doLast {
378-
copy {
379-
from "metadata/output"
380-
into "build/intermediates/assets/${firstApplicationBuildType}/metadata"
381-
}
389+
}
390+
391+
task copyMetadata(type: Copy) {
392+
description "moves metadata to the right place before packaging is done"
393+
outputs.upToDateWhen {
394+
!buildMetadata.didWork
382395
}
396+
397+
from "metadata/output"
398+
into "src/main/assets/metadata"
383399
}
384400

385401

386402
task deleteExplodedAarFolder (type: Delete) {
387403

388404
outputs.upToDateWhen {
389-
!buildMetadata.didWork
405+
!isMetadataGenerationNecessary.didWork
390406
}
391-
407+
392408
def explodedAarDir = project.buildDir.getAbsolutePath() + "/intermediates/exploded-aar"
393409
delete explodedAarDir
394410
}
@@ -417,9 +433,12 @@ task rbg (dependsOn: "asbg:generatebindings")
417433
// 5. plugin extend (apply from include files)
418434

419435
// --execution phase
420-
ensureMetadataOutDir.dependsOn(cleanLocalAarFiles)
436+
deleteJavaDir.dependsOn(cleanLocalAarFiles)
437+
ensureMetadataOutDir.dependsOn(deleteJavaDir)
421438
collectAllJars.dependsOn(ensureMetadataOutDir)
422-
buildMetadata.dependsOn(collectAllJars)
439+
isMetadataGenerationNecessary.dependsOn(collectAllJars)
440+
buildMetadata.dependsOn(isMetadataGenerationNecessary)
441+
copyMetadata.dependsOn(buildMetadata)
423442

424443
//DO NOT UNCOMMENT
425444
// mergeAssets.dependsOn(copyMetadata) -> look in CONFIGURATIONS(top) in android.applicationVariants to see how it's done
@@ -438,4 +457,4 @@ task buildapk {
438457
}
439458

440459
dependsOn deleteExplodedAarFolder
441-
}
460+
}

0 commit comments

Comments
 (0)