scratchjr/android/ScratchJr/app/build.gradle
Chris Garrity 1be3feb791 ensure ‘switchToFree’ gets run before generating PNGs
The assemble.depends on doens’t seem to ensure that the correct sources are copied to the HTML5 directory
2019-10-18 10:55:27 -04:00

109 lines
3.1 KiB
Groovy

apply plugin: 'com.android.application'
android {
compileSdkVersion 28
buildToolsVersion "28.0.3"
defaultConfig {
applicationId "org.scratchjr.android"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
flavorDimensions 'scratchjrversion'
productFlavors {
free {
dimension = 'scratchjrversion'
applicationId "org.scratchjr.androidfree"
minSdkVersion 19
targetSdkVersion 28
versionCode 21
versionName "1.2.0"
}
}
}
dependencies {
implementation fileTree(include: ['*.jar'], dir: 'libs')
implementation 'com.google.android.gms:play-services-location:17.0.0'
implementation 'androidx.appcompat:appcompat:1.1.0'
implementation 'com.google.android.gms:play-services-analytics:17.0.0'
}
def appModuleRootFolder = '.'
def srcDir = 'src'
def googleServicesJson = 'google-services.json'
def commonHome = '../../..'
def html5Assets = 'src/main/assets/HTML5'
task switchToFree(type: Copy) {
def buildType = 'free'
from "${commonHome}/editions/${buildType}/src"
into html5Assets
}
task switchToFreeGA(type: Copy) {
def buildType = 'free'
from "${commonHome}/editions/${buildType}/android-resources"
include "$googleServicesJson"
into "$appModuleRootFolder"
}
task generateWebpackBundle(type: Exec) {
workingDir '../../../bin'
commandLine './bundle-compile.sh'
}
class GenerateScratchJrPNGsTask extends DefaultTask {
File commonHome = project.file("../../..")
File binDir = project.file("${commonHome}/bin")
@OutputDirectory
File generatedAssets = project.file("src/main/assets")
File generatedHtml5Assets = project.file("${generatedAssets}/HTML5")
File pngLibrary = project.file("${generatedHtml5Assets}/pnglibrary")
File svgLibrary = project.file("${generatedHtml5Assets}/svglibrary")
@TaskAction
def go() {
pngLibrary.mkdirs()
ant.exec(executable: "${binDir}/convert-svg-to-png.py",
failOnError: true)
{
arg(value: "-i ${svgLibrary}/")
arg(value: "-o ${pngLibrary}/")
}
}
}
class CleanScratchJrResourcesTask extends DefaultTask {
File generatedAssets = project.file('src/main/assets')
@TaskAction
def go() {
generatedAssets.deleteDir()
}
}
task generateScratchJrPNGs(type: GenerateScratchJrPNGsTask)
task cleanScratchJrResources(type: CleanScratchJrResourcesTask)
afterEvaluate {
preBuild.dependsOn generateWebpackBundle
processFreeDebugGoogleServices.dependsOn switchToFreeGA
processFreeReleaseGoogleServices.dependsOn switchToFreeGA
generateFreeReleaseResources.dependsOn switchToFree
generateFreeDebugResources.dependsOn switchToFree
generateFreeReleaseResources.dependsOn generateScratchJrPNGs
generateFreeDebugResources.dependsOn generateScratchJrPNGs
generateScratchJrPNGs.mustRunAfter switchToFree
}
clean.dependsOn('cleanScratchJrResources')
apply plugin: 'com.google.gms.google-services'