2021-10-19 17:53:06 -05:00
|
|
|
/**
|
|
|
|
* build.common.gradle
|
|
|
|
*
|
|
|
|
* Try to avoid editing this file, as it may be updated from time to time as the FTC SDK
|
|
|
|
* evolves. Rather, if it is necessary to customize the build process, do those edits in
|
|
|
|
* the build.gradle file in TeamCode.
|
|
|
|
*
|
|
|
|
* This file contains the necessary content of the 'build.gradle' files for robot controller
|
|
|
|
* applications built using the FTC SDK. Each individual 'build.gradle' in those applications
|
|
|
|
* can simply contain the one line:
|
|
|
|
*
|
|
|
|
* apply from: '../build.common.gradle'
|
|
|
|
*
|
|
|
|
* which will pick up this file here. This approach allows makes it easier to integrate
|
|
|
|
* updates to the FTC SDK into your code.
|
|
|
|
*/
|
|
|
|
|
|
|
|
import java.util.regex.Pattern
|
|
|
|
|
|
|
|
apply plugin: 'com.android.application'
|
|
|
|
|
|
|
|
android {
|
|
|
|
|
|
|
|
compileSdkVersion 29
|
|
|
|
|
|
|
|
signingConfigs {
|
|
|
|
release {
|
|
|
|
def apkStoreFile = System.getenv("APK_SIGNING_STORE_FILE")
|
|
|
|
if (apkStoreFile != null) {
|
|
|
|
keyAlias System.getenv("APK_SIGNING_KEY_ALIAS")
|
|
|
|
keyPassword System.getenv("APK_SIGNING_KEY_PASSWORD")
|
|
|
|
storeFile file(System.getenv("APK_SIGNING_STORE_FILE"))
|
|
|
|
storePassword System.getenv("APK_SIGNING_STORE_PASSWORD")
|
|
|
|
} else {
|
|
|
|
keyAlias 'androiddebugkey'
|
|
|
|
keyPassword 'android'
|
|
|
|
storeFile rootProject.file('libs/ftc.debug.keystore')
|
|
|
|
storePassword 'android'
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
debug {
|
|
|
|
keyAlias 'androiddebugkey'
|
|
|
|
keyPassword 'android'
|
|
|
|
storeFile rootProject.file('libs/ftc.debug.keystore')
|
|
|
|
storePassword 'android'
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
aaptOptions {
|
|
|
|
noCompress "tflite"
|
|
|
|
}
|
|
|
|
|
|
|
|
defaultConfig {
|
|
|
|
signingConfig signingConfigs.debug
|
|
|
|
applicationId 'com.qualcomm.ftcrobotcontroller'
|
|
|
|
minSdkVersion 23
|
|
|
|
//noinspection ExpiredTargetSdkVersion
|
|
|
|
targetSdkVersion 28
|
|
|
|
|
|
|
|
/**
|
|
|
|
* We keep the versionCode and versionName of robot controller applications in sync with
|
|
|
|
* the master information published in the AndroidManifest.xml file of the FtcRobotController
|
|
|
|
* module. This helps avoid confusion that might arise from having multiple versions of
|
|
|
|
* a robot controller app simultaneously installed on a robot controller device.
|
|
|
|
*
|
|
|
|
* We accomplish this with the help of a funky little Groovy script that maintains that
|
|
|
|
* correspondence automatically.
|
|
|
|
*
|
|
|
|
* @see <a href="http://developer.android.com/tools/building/configuring-gradle.html">Configure Your Build</a>
|
|
|
|
* @see <a href="http://developer.android.com/tools/publishing/versioning.html">Versioning Your App</a>
|
|
|
|
*/
|
|
|
|
def manifestFile = project(':FtcRobotController').file('src/main/AndroidManifest.xml');
|
|
|
|
def manifestText = manifestFile.getText()
|
|
|
|
//
|
|
|
|
def vCodePattern = Pattern.compile("versionCode=\"(\\d+(\\.\\d+)*)\"")
|
|
|
|
def matcher = vCodePattern.matcher(manifestText)
|
|
|
|
matcher.find()
|
|
|
|
def vCode = Integer.parseInt(matcher.group(1))
|
|
|
|
//
|
|
|
|
def vNamePattern = Pattern.compile("versionName=\"(.*)\"")
|
|
|
|
matcher = vNamePattern.matcher(manifestText);
|
|
|
|
matcher.find()
|
|
|
|
def vName = matcher.group(1)
|
|
|
|
//
|
|
|
|
versionCode vCode
|
|
|
|
versionName vName
|
|
|
|
}
|
|
|
|
|
|
|
|
// Advanced user code might just want to use Vuforia directly, so we set up the libs as needed
|
|
|
|
// http://google.github.io/android-gradle-dsl/current/com.android.build.gradle.internal.dsl.BuildType.html
|
|
|
|
buildTypes {
|
|
|
|
release {
|
|
|
|
signingConfig signingConfigs.release
|
|
|
|
|
|
|
|
ndk {
|
2021-11-04 15:32:45 -05:00
|
|
|
abiFilters "armeabi-v7a"
|
2021-10-19 17:53:06 -05:00
|
|
|
}
|
|
|
|
}
|
|
|
|
debug {
|
|
|
|
debuggable true
|
|
|
|
jniDebuggable true
|
|
|
|
renderscriptDebuggable true
|
|
|
|
ndk {
|
2021-11-04 15:32:45 -05:00
|
|
|
abiFilters "armeabi-v7a"
|
2021-10-19 17:53:06 -05:00
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
compileOptions {
|
|
|
|
sourceCompatibility JavaVersion.VERSION_1_8
|
|
|
|
targetCompatibility JavaVersion.VERSION_1_8
|
|
|
|
}
|
|
|
|
|
|
|
|
packagingOptions {
|
|
|
|
pickFirst '**/*.so'
|
|
|
|
}
|
|
|
|
sourceSets.main {
|
|
|
|
jni.srcDirs = []
|
|
|
|
jniLibs.srcDir rootProject.file('libs')
|
|
|
|
}
|
|
|
|
ndkVersion '21.3.6528147'
|
|
|
|
}
|
|
|
|
|
|
|
|
repositories {
|
|
|
|
flatDir {
|
|
|
|
dirs rootProject.file('libs')
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|