| apply plugin: 'com.android.application' |
| |
| // Global Parameters accepted |
| // APK_NUMBER_VERSION - version number of apk |
| // APK_VERSION - build number like #9999Z, for dev builds appended to app_version like 2.0.0 in no_translate.xml) |
| // flavor Z : M=-master, D=-design, B=-Blackberry, MD=-main-default, MQA=-main-qt-arm, MQDA=-main-qt-default-arm, S=-sherpafy |
| // TARGET_APP_NAME - app name |
| // APP_EDITION - date stamp of builds |
| // APP_FEATURES - features +play_market +gps_status -parking_plugin -blackberry -free_version -amazon |
| |
| |
| // 1. To be done Filter fonts |
| // <unzip src="OsmAndCore_android.aar" dest="."> |
| // <patternset> |
| // <include name="assets/**/map/fonts/OpenSans/*"/> |
| // <include name="assets/**/map/fonts/NotoSans/*"/> |
| // </patternset> |
| // </unzip> |
| // Less important |
| |
| android { |
| compileSdkVersion 21 |
| buildToolsVersion "21.1.2" |
| |
| signingConfigs { |
| development { |
| storeFile file("../keystores/debug.keystore") |
| storePassword "android" |
| keyAlias "androiddebugkey" |
| keyPassword "android" |
| } |
| |
| publishing { |
| storeFile file("/var/lib/jenkins/osmand_key") |
| storePassword System.getenv("OSMAND_APK_PASSWORD") |
| keyAlias "osmand" |
| keyPassword System.getenv("OSMAND_APK_PASSWORD") |
| } |
| } |
| |
| defaultConfig { |
| minSdkVersion 9 |
| targetSdkVersion 21 |
| |
| versionCode System.getenv("APK_NUMBER_VERSION") ? System.getenv("APK_NUMBER_VERSION").toInteger() : versionCode |
| //versionName already assigned in code |
| //versionName System.getenv("APK_VERSION")? System.getenv("APK_VERSION").toString(): versionName |
| } |
| |
| lintOptions { |
| lintConfig file("lint.xml") |
| abortOnError false |
| warningsAsErrors false |
| } |
| |
| // This is from OsmAndCore_android.aar - for some reason it's not inherited |
| aaptOptions { |
| // Don't compress any embedded resources |
| noCompress "qz" |
| } |
| |
| dexOptions { |
| jumboMode = true |
| } |
| |
| sourceSets { |
| main { |
| manifest.srcFile "AndroidManifest.xml" |
| jni.srcDirs = [] |
| jniLibs.srcDirs = ["libs"] |
| aidl.srcDirs = ["src"] |
| java.srcDirs = ["src"] |
| resources.srcDirs = ["src"] |
| renderscript.srcDirs = ["src"] |
| res.srcDirs = ["res"] |
| assets.srcDirs = ["assets"] |
| } |
| free { |
| manifest.srcFile "AndroidManifest-free.xml" |
| } |
| |
| legacy { |
| jniLibs.srcDirs = ["libgnustl"] |
| } |
| } |
| |
| flavorDimensions "version", "coreversion", "abi" |
| productFlavors { |
| // ABI |
| armv7 { |
| flavorDimension "abi" |
| ndk { |
| abiFilter "armeabi-v7a" |
| } |
| } |
| armv5 { |
| flavorDimension "abi" |
| ndk { |
| abiFilter "armeabi" |
| } |
| } |
| x86 { |
| flavorDimension "abi" |
| ndk { |
| abiFilter "x86" |
| } |
| } |
| mips { |
| flavorDimension "abi" |
| ndk { |
| abiFilter "mips" |
| } |
| } |
| fat { |
| flavorDimension "abi" |
| } |
| |
| // Version |
| free { |
| flavorDimension "version" |
| applicationId "net.osmand" |
| } |
| full { |
| flavorDimension "version" |
| applicationId "net.osmand.plus" |
| } |
| |
| // CoreVersion |
| legacy { |
| flavorDimension "coreversion" |
| } |
| |
| qtcore { |
| flavorDimension "coreversion" |
| } |
| |
| qtcoredebug { |
| flavorDimension "coreversion" |
| } |
| } |
| |
| buildTypes { |
| debug { |
| // proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-project.txt' |
| // minifyEnabled true |
| // proguardFiles 'proguard-project.txt' |
| signingConfig signingConfigs.development |
| } |
| release { |
| // proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-project.txt' |
| // minifyEnabled true |
| //proguardFiles 'proguard-project.txt' |
| signingConfig signingConfigs.development |
| } |
| } |
| } |
| |
| def replaceNoTranslate(line) { |
| if (line.contains("\"app_name\"") && System.getenv("TARGET_APP_NAME")) { |
| return line.replaceAll(">[^<]*<", ">" + System.getenv("TARGET_APP_NAME") + "<") |
| } |
| if (line.contains("\"app_edition\"") && System.getenv("APP_EDITION")) { |
| return line.replaceAll(">[^<]*<", ">" + System.getenv("APP_EDITION") + "<") |
| } |
| if (line.contains("\"app_version\"") && System.getenv("APK_VERSION")) { |
| return line.replaceAll(">[^<]*<", ">" + System.getenv("APK_VERSION") + "<") |
| } |
| if (line.contains("\"app_version\"") && System.getenv("APK_VERSION_SUFFIX")) { |
| // appends build number to version number for dev builds |
| return line.replaceAll("</", System.getenv("APK_VERSION_SUFFIX") + "</") |
| } |
| if (line.contains("\"versionFeatures\"")) { |
| return line.replaceAll(">[^<]*<", ">" + "-play_market +gps_status -parking_plugin -blackberry -amazon -route_nav" + "<") |
| } |
| return line; |
| } |
| |
| task updateNoTranslate(type: Copy) { |
| from('.') { |
| include 'no_translate.xml' |
| filter { |
| line -> replaceNoTranslate(line); |
| } |
| } |
| into 'res/values/' |
| } |
| |
| task collectVoiceAssets(type: Sync) { |
| from "../../resources/voice" |
| into "assets/voice" |
| include "**/*.p" |
| } |
| |
| task collectHelpContentsAssets(type: Sync) { |
| from "../../help/help" |
| into "assets/help" |
| include "*.html" |
| include "images/**/*.png" |
| |
| from "assets/" |
| into "assets/help" |
| include "style.css" |
| } |
| |
| task collectRoutingResources(type: Sync) { |
| from "../../resources/routing" |
| into "src/net/osmand/router" |
| include "*.xml" |
| } |
| |
| task collectMiscResources(type: Copy) { |
| into "src/net/osmand/osm" |
| from("../../resources/obf_creation") { |
| include "rendering_types.xml" |
| } |
| from("../../resources/poi") { |
| include "poi_types.xml" |
| } |
| } |
| |
| task collectRenderingStylesResources(type: Sync) { |
| from "../../resources/rendering_styles" |
| into "src/net/osmand/render" |
| include "*.xml" |
| } |
| |
| task collectRegionsInfoResources(type: Copy) { |
| from "../../resources/countries-info" |
| into "src/net/osmand/map" |
| include "regions.ocbf" |
| } |
| |
| task copyStyleIcons(type: Copy) { |
| from "../../resources/rendering_styles/style-icons/" |
| into "res/" |
| include "**/*.png" |
| } |
| |
| task collectExternalResources << {} |
| collectExternalResources.dependsOn collectVoiceAssets, |
| collectHelpContentsAssets, |
| collectRoutingResources, |
| collectRenderingStylesResources, |
| collectRegionsInfoResources, |
| collectMiscResources, |
| copyStyleIcons, |
| updateNoTranslate |
| // tasks.whenTaskAdded { task -> |
| // if (task.name.startsWith("generate") && task.name.endsWith("Resources")) { |
| // task.dependsOn collectExternalResources |
| // } |
| // } |
| |
| // Legacy core build |
| import org.apache.tools.ant.taskdefs.condition.Os |
| |
| task buildOsmAndCore(type: Exec) { |
| description "Build Legacy OsmAndCore" |
| |
| if (!Os.isFamily(Os.FAMILY_WINDOWS)) { |
| commandLine "bash", file("./old-ndk-build.sh").getAbsolutePath() |
| } else { |
| commandLine "cmd", "/c", "echo", "Not supported" |
| } |
| } |
| |
| task cleanupDuplicatesInCore() { |
| dependsOn buildOsmAndCore |
| // doesn't work for legacy debug builds |
| doLast { |
| file("libgnustl/armeabi").mkdirs() |
| file("libs/armeabi/libgnustl_shared.so").renameTo(file("libgnustl/armeabi/libgnustl_shared.so")) |
| file("libgnustl/armeabi-v7a").mkdirs() |
| file("libs/armeabi-v7a/libgnustl_shared.so").renameTo(file("libgnustl/armeabi-v7a/libgnustl_shared.so")) |
| file("libgnustl/mips").mkdirs() |
| file("libs/mips/libgnustl_shared.so").renameTo(file("libgnustl/mips/libgnustl_shared.so")) |
| file("libgnustl/x86").mkdirs() |
| file("libs/x86/libgnustl_shared.so").renameTo(file("libgnustl/x86/libgnustl_shared.so")) |
| } |
| } |
| tasks.withType(JavaCompile) { |
| compileTask -> compileTask.dependsOn << [collectExternalResources, buildOsmAndCore, cleanupDuplicatesInCore] |
| } |
| |
| clean.dependsOn 'cleanNoTranslate' |
| |
| task cleanNoTranslate() { |
| delete ('res/values/no_translate.xml') |
| } |
| |
| repositories { |
| ivy { |
| name = "OsmAndBinariesIvy" |
| url = "http://builder.osmand.net" |
| layout "pattern", { |
| artifact "ivy/[organisation]/[module]/[revision]/[artifact]-[revision].[ext]" |
| } |
| } |
| // mavenCentral() |
| } |
| |
| dependencies { |
| compile project(path: ":OsmAnd-java", configuration: "android") |
| compile project(":eclipse-compile:appcompat") |
| compile fileTree( |
| dir: "libs", |
| include: ["*.jar"], |
| exclude: [ |
| "QtAndroid-bundled.jar", |
| "QtAndroidAccessibility-bundled.jar", |
| "OsmAndCore_android.jar", |
| "OsmAndCore_wrapper.jar"]) |
| // compile "com.github.ksoichiro:android-observablescrollview:1.5.0" |
| // compile "com.android.support:appcompat-v7:21.0.3" |
| // compile "com.github.shell-software:fab:1.0.5" |
| legacyCompile "net.osmand:OsmAndCore_android:0.1-SNAPSHOT@jar" |
| } |