From 74a901364dd9ee24cb24646596924c4fb8273235 Mon Sep 17 00:00:00 2001 From: omigamedev Date: Sun, 30 Sep 2018 14:58:10 +0200 Subject: [PATCH] add flavor (debug/release) to android project build script --- android/build.gradle | 45 +++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 42 insertions(+), 3 deletions(-) diff --git a/android/build.gradle b/android/build.gradle index 7d1c96d..ad0a783 100644 --- a/android/build.gradle +++ b/android/build.gradle @@ -1,3 +1,6 @@ +import java.util.regex.Matcher +import java.util.regex.Pattern + buildscript { repositories { google() @@ -22,10 +25,36 @@ allprojects { apply plugin: "com.android.application" 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.load(project.rootProject.file('local.properties').newDataInputStream()) 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 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_tag = "git describe --tags --abbrev=0".execute().text.trim() +println classpath + android { compileSdkVersion 26 android.buildToolsVersion "28.0.3" @@ -115,7 +146,7 @@ preBuild.dependsOn(copyFiles) task generateVersioning(type: Exec) { workingDir "$projectDir/../" - commandLine 'python', 'scripts/pre-build.py', 'release' + commandLine 'python', 'scripts/pre-build.py', flavor } copyFiles.dependsOn(generateVersioning) @@ -123,7 +154,15 @@ task generateJavaH(type: Exec) { workingDir "$projectDir" 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 { google()