2016-01-08 14:31:04 -05:00
|
|
|
apply plugin: 'com.android.application'
|
|
|
|
apply plugin: 'com.google.gms.google-services'
|
|
|
|
|
|
|
|
android {
|
2018-04-04 12:47:32 -04:00
|
|
|
compileSdkVersion 27
|
2016-01-08 14:31:04 -05:00
|
|
|
buildToolsVersion "21.1.2"
|
|
|
|
|
|
|
|
defaultConfig {
|
|
|
|
applicationId "org.scratchjr.android"
|
|
|
|
}
|
|
|
|
|
|
|
|
buildTypes {
|
|
|
|
release {
|
|
|
|
minifyEnabled false
|
|
|
|
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
productFlavors {
|
|
|
|
free {
|
|
|
|
applicationId "org.scratchjr.androidfree"
|
2018-04-04 12:47:32 -04:00
|
|
|
minSdkVersion 19
|
|
|
|
targetSdkVersion 27
|
2016-03-01 15:00:10 -05:00
|
|
|
versionCode 21
|
2016-02-03 15:00:55 -05:00
|
|
|
versionName "1.2.0"
|
2016-01-08 14:31:04 -05:00
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
dependencies {
|
2018-04-04 12:47:32 -04:00
|
|
|
compile fileTree(include: ['*.jar'], dir: 'libs')
|
|
|
|
compile 'com.android.support:appcompat-v7:27.1.0'
|
2016-01-08 14:31:04 -05:00
|
|
|
compile 'com.google.android.gms:play-services-analytics:8.3.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"
|
|
|
|
}
|
|
|
|
|
2016-02-03 14:11:08 -05:00
|
|
|
task generateWebpackBundle(type: Exec) {
|
|
|
|
workingDir '../../../bin'
|
|
|
|
commandLine './bundle-compile.sh'
|
|
|
|
}
|
|
|
|
|
2016-01-08 14:31:04 -05:00
|
|
|
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 {
|
2016-02-03 14:11:08 -05:00
|
|
|
preBuild.dependsOn generateWebpackBundle
|
2016-01-08 14:31:04 -05:00
|
|
|
processFreeDebugGoogleServices.dependsOn switchToFreeGA
|
|
|
|
processFreeReleaseGoogleServices.dependsOn switchToFreeGA
|
|
|
|
prepareFreeDebugDependencies.dependsOn switchToFree
|
|
|
|
prepareFreeReleaseDependencies.dependsOn switchToFree
|
|
|
|
|
|
|
|
generateFreeReleaseResources.dependsOn generateScratchJrPNGs
|
|
|
|
generateFreeDebugResources.dependsOn generateScratchJrPNGs
|
|
|
|
generateScratchJrPNGs.mustRunAfter switchToFree
|
|
|
|
}
|
|
|
|
|
|
|
|
clean.dependsOn('cleanScratchJrResources')
|