parent
1d1fc49b51
commit
d1c859a2ae
8 changed files with 39 additions and 112 deletions
@ -1,97 +0,0 @@ |
||||
import org.apache.tools.ant.taskdefs.condition.Os |
||||
|
||||
def config = project.hasProperty("react") ? project.react : []; |
||||
|
||||
def bundleAssetName = config.bundleAssetName ?: "index.android.bundle" |
||||
def entryFile = config.entryFile ?: "index.android.js" |
||||
|
||||
// because elvis operator |
||||
def elvisFile(thing) { |
||||
return thing ? file(thing) : null; |
||||
} |
||||
|
||||
def reactRoot = elvisFile(config.root) ?: file("../../") |
||||
def inputExcludes = config.inputExcludes ?: ["android/**", "ios/**"] |
||||
|
||||
void runBefore(String dependentTaskName, Task task) { |
||||
Task dependentTask = tasks.findByPath(dependentTaskName); |
||||
if (dependentTask != null) { |
||||
dependentTask.dependsOn task |
||||
} |
||||
} |
||||
|
||||
gradle.projectsEvaluated { |
||||
// Grab all build types and product flavors |
||||
def buildTypes = android.buildTypes.collect { type -> type.name } |
||||
def productFlavors = android.productFlavors.collect { flavor -> flavor.name } |
||||
|
||||
// When no product flavors defined, use empty |
||||
if (!productFlavors) productFlavors.add('') |
||||
|
||||
productFlavors.each { productFlavorName -> |
||||
buildTypes.each { buildTypeName -> |
||||
// Create variant and target names |
||||
def targetName = "${productFlavorName.capitalize()}${buildTypeName.capitalize()}" |
||||
def targetPath = productFlavorName ? |
||||
"${productFlavorName}/${buildTypeName}" : |
||||
"${buildTypeName}" |
||||
|
||||
// React js bundle directories |
||||
def jsBundleDirConfigName = "jsBundleDir${targetName}" |
||||
def jsBundleDir = elvisFile(config."$jsBundleDirConfigName") ?: |
||||
file("$buildDir/intermediates/assets/${targetPath}") |
||||
|
||||
def resourcesDirConfigName = "jsBundleDir${targetName}" |
||||
def resourcesDir = elvisFile(config."${resourcesDirConfigName}") ?: |
||||
file("$buildDir/intermediates/res/merged/${targetPath}") |
||||
def jsBundleFile = file("$jsBundleDir/$bundleAssetName") |
||||
|
||||
// Bundle task name for variant |
||||
def bundleJsAndAssetsTaskName = "bundle${targetName}JsAndAssets" |
||||
|
||||
def currentBundleTask = tasks.create( |
||||
name: bundleJsAndAssetsTaskName, |
||||
type: Exec) { |
||||
group = "react" |
||||
description = "bundle JS and assets for ${targetName}." |
||||
|
||||
// Create dirs if they are not there (e.g. the "clean" task just ran) |
||||
doFirst { |
||||
jsBundleDir.mkdirs() |
||||
resourcesDir.mkdirs() |
||||
} |
||||
|
||||
// Set up inputs and outputs so gradle can cache the result |
||||
inputs.files fileTree(dir: reactRoot, excludes: inputExcludes) |
||||
outputs.dir jsBundleDir |
||||
outputs.dir resourcesDir |
||||
|
||||
// Set up the call to the react-native cli |
||||
workingDir reactRoot |
||||
|
||||
// Set up dev mode |
||||
def devEnabled = !targetName.toLowerCase().contains("release") |
||||
if (Os.isFamily(Os.FAMILY_WINDOWS)) { |
||||
commandLine "cmd", "/c", "react-native", "bundle", "--platform", "android", "--dev", "${devEnabled}", |
||||
"--entry-file", entryFile, "--bundle-output", jsBundleFile, "--assets-dest", resourcesDir |
||||
} else { |
||||
commandLine "react-native", "bundle", "--platform", "android", "--dev", "${devEnabled}", |
||||
"--entry-file", entryFile, "--bundle-output", jsBundleFile, "--assets-dest", resourcesDir |
||||
} |
||||
|
||||
enabled config."bundleIn${targetName}" || |
||||
config."bundleIn${buildTypeName.capitalize()}" ?: |
||||
targetName.toLowerCase().contains("release") |
||||
} |
||||
|
||||
// Hook bundle${productFlavor}${buildType}JsAndAssets into the android build process |
||||
currentBundleTask.dependsOn("merge${targetName}Resources") |
||||
currentBundleTask.dependsOn("merge${targetName}Assets") |
||||
|
||||
runBefore("processArmeabi-v7a${targetName}Resources", currentBundleTask) |
||||
runBefore("processX86${targetName}Resources", currentBundleTask) |
||||
runBefore("processUniversal${targetName}Resources", currentBundleTask) |
||||
runBefore("process${targetName}Resources", currentBundleTask) |
||||
} |
||||
} |
||||
} |
@ -1,6 +1,5 @@ |
||||
#Wed Aug 24 16:23:50 IDT 2016 |
||||
distributionBase=GRADLE_USER_HOME |
||||
distributionPath=wrapper/dists |
||||
zipStoreBase=GRADLE_USER_HOME |
||||
zipStorePath=wrapper/dists |
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-2.2-all.zip |
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-2.4-all.zip |
||||
|
@ -0,0 +1,8 @@ |
||||
keystore( |
||||
name = 'debug', |
||||
store = 'debug.keystore', |
||||
properties = 'debug.keystore.properties', |
||||
visibility = [ |
||||
'PUBLIC', |
||||
], |
||||
) |
@ -0,0 +1,4 @@ |
||||
key.store=debug.keystore |
||||
key.alias=androiddebugkey |
||||
key.store.password=android |
||||
key.alias.password=android |
Loading…
Reference in new issue