add flavor (debug/release) to android project build script

This commit is contained in:
2018-09-30 14:58:10 +02:00
parent 0ec8435357
commit 74a901364d

View File

@@ -1,3 +1,6 @@
import java.util.regex.Matcher
import java.util.regex.Pattern
buildscript { buildscript {
repositories { repositories {
google() google()
@@ -22,10 +25,36 @@ allprojects {
apply plugin: "com.android.application" apply plugin: "com.android.application"
apply plugin: "com.gladed.androidgitversion" apply plugin: "com.gladed.androidgitversion"
def getCurrentFlavor() {
Gradle gradle = getGradle()
if (gradle.getStartParameter().getTaskRequests().args.size() == 0)
return ""
String tskReqStr = gradle.getStartParameter().getTaskRequests().args[0][0]
Pattern pattern;
if( tskReqStr.contains( "assemble" ) )
pattern = Pattern.compile("assemble(\\w*)(Release|Debug)")
else
pattern = Pattern.compile("generate(\\w*)(Release|Debug)")
Matcher matcher = pattern.matcher( tskReqStr )
if( matcher.find() )
return matcher.group(2).toLowerCase()
else
{
println "NO MATCH FOUND"
return "";
}
}
def flavor = getCurrentFlavor()
def flavor_cap = getCurrentFlavor().capitalize()
Properties properties = new Properties() Properties properties = new Properties()
properties.load(project.rootProject.file('local.properties').newDataInputStream()) properties.load(project.rootProject.file('local.properties').newDataInputStream())
def sdkDir = properties.getProperty("sdk.dir") def sdkDir = properties.getProperty("sdk.dir")
def classpath = "build/intermediates/classes/debug:" + sdkDir + "/platforms/android-26/android.jar" def classpath = "build/intermediates/javac/${flavor}/compile${flavor_cap}JavaWithJavac/classes:${sdkDir}/platforms/android-26/android.jar"
def activity = "com.omixlab.panopainter.MainActivity" def activity = "com.omixlab.panopainter.MainActivity"
def outpath = "src/main/cpp" def outpath = "src/main/cpp"
@@ -34,6 +63,8 @@ def ver_hash = "git log --pretty=format:%h -n 1".execute().text.trim()
def ver_count = Integer.parseInt("git rev-list --count HEAD".execute().text.trim()) def ver_count = Integer.parseInt("git rev-list --count HEAD".execute().text.trim())
def ver_tag = "git describe --tags --abbrev=0".execute().text.trim() def ver_tag = "git describe --tags --abbrev=0".execute().text.trim()
println classpath
android { android {
compileSdkVersion 26 compileSdkVersion 26
android.buildToolsVersion "28.0.3" android.buildToolsVersion "28.0.3"
@@ -115,7 +146,7 @@ preBuild.dependsOn(copyFiles)
task generateVersioning(type: Exec) { task generateVersioning(type: Exec) {
workingDir "$projectDir/../" workingDir "$projectDir/../"
commandLine 'python', 'scripts/pre-build.py', 'release' commandLine 'python', 'scripts/pre-build.py', flavor
} }
copyFiles.dependsOn(generateVersioning) copyFiles.dependsOn(generateVersioning)
@@ -123,7 +154,15 @@ task generateJavaH(type: Exec) {
workingDir "$projectDir" workingDir "$projectDir"
commandLine 'javah', "-jni", "-force", "-cp", "$classpath", "-d", "$outpath", "$activity" commandLine 'javah', "-jni", "-force", "-cp", "$classpath", "-d", "$outpath", "$activity"
} }
generateVersioning.dependsOn(generateJavaH) //generateVersioning.dependsOn(generateJavaH)
tasks.whenTaskAdded { task ->
if (task.name.contains('externalNativeBuild')) {
// This dependecy *is* set. This can be seen by using task copyLibs(type: Copy, dependsOn: 'bundleDebug')
// together with this and get a circular dependency.
task.dependsOn generateJavaH
}
}
repositories { repositories {
google() google()