brouter/brouter-routing-app/build.gradle
2023-07-16 12:52:47 +02:00

152 lines
4.7 KiB
Groovy

import org.gradle.nativeplatform.platform.internal.DefaultNativePlatform
plugins {
id 'com.android.application'
}
android {
compileSdkVersion 33
defaultConfig {
namespace 'btools.routingapp'
applicationId "btools.routingapp"
versionCode 49
versionName project.version
resValue('string', 'app_version', defaultConfig.versionName)
setProperty("archivesBaseName", "BRouterApp." + defaultConfig.versionName)
minSdkVersion 14
targetSdkVersion 33
resConfigs "en"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}
sourceSets.main.assets.srcDirs += new File(project.buildDir, 'assets')
if (project.hasProperty("RELEASE_STORE_FILE") && RELEASE_STORE_FILE.length() > 0) {
signingConfigs {
// this uses a file ~/.gradle/gradle.properties
// with content:
// RELEASE_STORE_FILE={path to your keystore}
// RELEASE_STORE_PASSWORD=*****
// RELEASE_KEY_ALIAS=*****
// RELEASE_KEY_PASSWORD=*****
//
release {
// enable signingConfig in buildTypes to get a signed apk file
storeFile file(RELEASE_STORE_FILE)
storePassword RELEASE_STORE_PASSWORD
keyAlias RELEASE_KEY_ALIAS
keyPassword RELEASE_KEY_PASSWORD
// Optional, specify signing versions used
v1SigningEnabled true
v2SigningEnabled true
}
}
}
buildTypes {
release {
minifyEnabled false
debuggable false
if (project.hasProperty("RELEASE_STORE_FILE") && RELEASE_STORE_FILE.length() > 0) {
signingConfig signingConfigs.release
}
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
debug {
minifyEnabled false
debuggable true
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
lintOptions {
disable 'InvalidPackage'
checkReleaseBuilds false
//added this line to the build.gradle under the /android/app/build.gradle
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
applicationVariants.all {
variant ->
{
tasks["merge${variant.name.capitalize()}Assets"].dependsOn(generateProfilesZip)
tasks["merge${variant.name.capitalize()}Assets"].dependsOn(generateReadmesZip)
}
}
}
dependencies {
implementation 'androidx.appcompat:appcompat:1.6.1'
implementation "androidx.constraintlayout:constraintlayout:2.1.4"
implementation 'androidx.work:work-runtime:2.8.1'
implementation 'com.google.android.material:material:1.8.0'
implementation project(':brouter-mapaccess')
implementation project(':brouter-core')
implementation project(':brouter-expressions')
implementation project(':brouter-util')
implementation 'androidx.preference:preference:1.2.0'
testImplementation 'junit:junit:4.13.2'
androidTestImplementation 'androidx.test.ext:junit:1.1.5'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.5.1'
androidTestImplementation 'androidx.work:work-testing:2.8.1'
}
gradle.projectsEvaluated {
preBuild.dependsOn(generateProfilesZip, generateReadmesZip)
}
check.dependsOn 'checkstyle'
task checkstyle(type: Checkstyle) {
source 'src'
include '**/*.java'
exclude '**/gen/**'
classpath = files()
}
task generateProfiles(type: Exec) {
commandLine = "../misc/scripts/generate_profile_variants.sh"
}
task generateProfilesZip(type: Zip) {
if (DefaultNativePlatform.getCurrentOperatingSystem().isWindows()) {
logger.warn("Note: On Windows run script '../misc/scripts/generate_profile_variants.sh' manually to include all profiles")
} else {
dependsOn generateProfiles
}
archiveFileName = "profiles2.zip"
from("../misc/profiles2") {
exclude "all.brf"
exclude "car-traffic_analysis.brf"
exclude "car-vario.brf"
exclude "softaccess.brf"
}
destinationDirectory = layout.buildDirectory.dir("assets")
}
task generateReadmesZip(type: Zip) {
archiveFileName = "readmes.zip"
from("../docs") {
include("users/android_quickstart.md")
include("users/android_advanced.md")
include("developers/profile_developers_guide.md")
include("developers/build_segments.md")
include("privacy_policy.md")
}
destinationDirectory = layout.buildDirectory.dir("assets")
}