2019-04-10 17:43:01 +02:00
buildscript {
repositories {
maven { url 'https://maven.fabric.io/public' }
jcenter ( )
}
dependencies {
classpath 'io.fabric.tools:gradle:1.+'
2019-05-03 00:27:49 +02:00
classpath 'com.dicedmelon.gradle:jacoco-android:0.1.4'
2019-04-10 17:43:01 +02:00
}
}
apply plugin: "com.android.application"
2019-04-10 00:33:05 +02:00
apply plugin: 'kotlin-android-extensions'
apply plugin: 'kotlin-android'
2019-04-10 17:43:01 +02:00
apply plugin: 'com.google.gms.google-services'
apply plugin: "io.fabric"
apply plugin: "jacoco-android"
apply plugin: 'com.jakewharton.butterknife'
ext {
supportLibraryVersion = "27.1.1"
ormLiteVersion = "4.46"
powermockVersion = "1.7.3"
dexmakerVersion = "1.2"
butterknifeVersion = "8.8.1"
}
repositories {
maven { url 'https://maven.fabric.io/public' }
jcenter { url "https://jcenter.bintray.com/" }
2019-04-10 00:33:05 +02:00
mavenCentral ( )
2019-04-10 17:43:01 +02:00
}
def generateGitBuild = { - >
StringBuilder stringBuilder = new StringBuilder ( ) ;
try {
def stdout = new ByteArrayOutputStream ( )
exec {
commandLine 'git' , 'describe' , '--always'
standardOutput = stdout
}
String commitObject = stdout . toString ( ) . trim ( )
stringBuilder . append ( commitObject )
} catch ( ignored ) {
stringBuilder . append ( 'NoGitSystemAvailable' )
}
return stringBuilder . toString ( )
}
2019-04-11 10:16:52 +02:00
def generateGitRemote = { - >
StringBuilder stringBuilder = new StringBuilder ( ) ;
try {
def stdout = new ByteArrayOutputStream ( )
exec {
commandLine 'git' , 'remote' , 'get-url' , 'origin'
standardOutput = stdout
}
String commitObject = stdout . toString ( ) . trim ( )
stringBuilder . append ( commitObject )
} catch ( ignored ) {
stringBuilder . append ( 'NoGitSystemAvailable' )
}
return stringBuilder . toString ( )
}
2019-04-10 17:43:01 +02:00
def generateDate = { - >
StringBuilder stringBuilder = new StringBuilder ( ) ;
stringBuilder . append ( ( new Date ( ) ) . format ( 'yyyy.MM.dd-HH:mm' ) )
return stringBuilder . toString ( )
}
2019-04-16 11:15:40 +02:00
def isMaster = { - >
return ! version . contains ( '-' )
}
def allCommited = { - >
StringBuilder stringBuilder = new StringBuilder ( ) ;
try {
def stdout = new ByteArrayOutputStream ( )
exec {
2019-04-25 20:42:34 +02:00
commandLine 'git' , 'status' , '-s'
2019-04-16 11:15:40 +02:00
standardOutput = stdout
}
String commitObject = stdout . toString ( ) . trim ( )
stringBuilder . append ( commitObject )
} catch ( ignored ) {
return false ; // NoGitSystemAvailable
}
2019-04-25 20:42:34 +02:00
return stringBuilder . toString ( ) . isEmpty ( )
2019-04-25 18:59:10 +02:00
2019-04-16 11:15:40 +02:00
}
2019-04-10 17:43:01 +02:00
tasks . matching { it instanceof Test } . all {
testLogging . events = [ "failed" , "skipped" , "started" ]
testLogging . exceptionFormat = "full"
}
android {
compileSdkVersion 27
defaultConfig {
minSdkVersion 21
2019-05-05 18:22:10 +02:00
targetSdkVersion 26
2019-04-10 17:43:01 +02:00
multiDexEnabled true
versionCode 1500
2019-05-02 21:51:55 +02:00
// dev_version: 2.3.1-dev
2019-06-29 17:24:47 +02:00
version "medtronic-0.11.8-SNAPSHOT"
2019-04-10 17:43:01 +02:00
buildConfigField "String" , "VERSION" , '"' + version + '"'
buildConfigField "String" , "BUILDVERSION" , '"' + generateGitBuild ( ) + '-' + generateDate ( ) + '"'
buildConfigField "String" , "HEAD" , '"' + generateGitBuild ( ) + '"'
2019-05-03 00:27:49 +02:00
buildConfigField "String" , "REMOTE" , '"' + generateGitRemote ( ) + '"'
2019-05-02 21:51:55 +02:00
buildConfigField "String" , "DEV_VERSION" , '"2.3.1-dev"'
2019-06-25 15:50:41 +02:00
buildConfigField "String" , "DEV_DATE" , '"21.6.2019"'
buildConfigField "String" , "DEV_CHECKIN" , '"8d9c18dd359dc671dfb1b9f75dd454e29df640f2"'
2019-04-10 17:43:01 +02:00
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
// if you change minSdkVersion to less than 11, you need to change executeTask for wear
ndk {
moduleName "BleCommandUtil"
}
}
2019-04-10 00:33:05 +02:00
kotlinOptions {
jvmTarget = '1.8'
}
2019-04-10 17:43:01 +02:00
lintOptions {
// TODO remove once wear dependency com.google.android.gms:play-services-wearable:7.3.0
// has been upgraded (requiring significant code changes), which currently fails release
// build with a deprecation warning
// abortOnError false
// (disabled entirely to avoid reports on the error, which would still be displayed
// and it's easy to overlook that it's ignored)
checkReleaseBuilds false
disable 'MissingTranslation'
disable 'ExtraTranslation'
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile ( 'proguard-android.txt' ) , 'proguard-rules.pro'
}
debug {
testCoverageEnabled ( project . hasProperty ( 'coverage' ) )
}
}
productFlavors {
flavorDimensions "standard"
full {
applicationId "info.nightscout.androidaps"
dimension "standard"
resValue "string" , "app_name" , "AndroidAPS"
versionName version
manifestPlaceholders = [
appIcon : "@mipmap/ic_launcher" ,
appIconRound: "@mipmap/ic_launcher_round"
]
}
pumpcontrol {
applicationId "info.nightscout.aapspumpcontrol"
dimension "standard"
resValue "string" , "app_name" , "Pumpcontrol"
versionName version + "-pumpcontrol"
manifestPlaceholders = [
appIcon : "@mipmap/ic_pumpcontrol" ,
appIconRound: "@null"
]
}
nsclient {
applicationId "info.nightscout.nsclient"
dimension "standard"
resValue "string" , "app_name" , "NSClient"
versionName version + "-nsclient"
manifestPlaceholders = [
appIcon : "@mipmap/ic_yellowowl" ,
appIconRound: "@null"
]
}
nsclient2 {
applicationId "info.nightscout.nsclient2"
dimension "standard"
resValue "string" , "app_name" , "NSClient2"
versionName version + "-nsclient"
manifestPlaceholders = [
appIcon : "@mipmap/ic_yellowowl" ,
appIconRound: "@null"
]
}
}
compileOptions {
sourceCompatibility JavaVersion . VERSION_1_8
targetCompatibility JavaVersion . VERSION_1_8
}
testOptions {
unitTests . returnDefaultValues = true
unitTests . includeAndroidResources = true
}
useLibrary "org.apache.http.legacy"
}
allprojects {
repositories {
jcenter ( )
flatDir {
dirs 'libs'
}
}
}
configurations {
libs
}
dependencies {
wearApp project ( ':wear' )
implementation fileTree ( include: [ '*.jar' ] , dir: 'libs' )
implementation 'com.google.android.gms:play-services-wearable:16.0.1'
implementation 'com.google.firebase:firebase-core:16.0.8'
implementation ( "com.crashlytics.sdk.android:crashlytics:2.9.9@aar" ) {
transitive = true ;
}
libs "MilosKozak:danars-support-lib:master@zip"
implementation "com.android.support:appcompat-v7:${supportLibraryVersion}"
implementation "com.android.support:support-v13:${supportLibraryVersion}"
implementation "com.android.support:support-v4:${supportLibraryVersion}"
implementation "com.android.support:cardview-v7:${supportLibraryVersion}"
implementation "com.android.support:recyclerview-v7:${supportLibraryVersion}"
implementation "com.android.support:gridlayout-v7:${supportLibraryVersion}"
implementation "com.android.support:design:${supportLibraryVersion}"
implementation "com.android.support:percent:${supportLibraryVersion}"
implementation "com.wdullaer:materialdatetimepicker:2.3.0"
implementation "com.squareup:otto:1.3.7"
implementation "com.j256.ormlite:ormlite-core:${ormLiteVersion}"
implementation "com.j256.ormlite:ormlite-android:${ormLiteVersion}"
implementation ( "com.github.tony19:logback-android-classic:1.1.1-6" ) {
exclude group: "com.google.android" , module: "android"
}
implementation "org.apache.commons:commons-lang3:3.7"
implementation "org.slf4j:slf4j-api:1.7.21"
// Graphview cannot be upgraded
implementation "com.jjoe64:graphview:4.0.1"
implementation "com.joanzapata.iconify:android-iconify-fontawesome:2.1.1"
implementation 'com.android.support.constraint:constraint-layout:1.1.3'
implementation ( name: "android-edittext-validator-v1.3.4-mod" , ext: "aar" )
implementation 'com.madgag.spongycastle:core:1.58.0.0'
implementation ( "com.google.android:flexbox:0.3.0" ) {
exclude group: "com.android.support"
}
implementation ( "io.socket:socket.io-client:1.0.0" ) {
// excluding org.json which is provided by Android
exclude group: "org.json" , module: "json"
}
implementation "com.google.code.gson:gson:2.8.2"
implementation "com.google.guava:guava:24.1-jre"
implementation "net.danlew:android.joda:2.9.9.1"
implementation "uk.com.robust-it:cloning:1.9.9"
implementation 'org.mozilla:rhino:1.7.7.2'
2019-05-05 18:22:10 +02:00
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
2019-04-10 17:43:01 +02:00
implementation "com.jakewharton:butterknife:${butterknifeVersion}"
annotationProcessor "com.jakewharton:butterknife-compiler:${butterknifeVersion}"
testImplementation "junit:junit:4.12"
testImplementation "org.json:json:20140107"
testImplementation "org.mockito:mockito-core:2.8.47"
testImplementation "org.powermock:powermock-api-mockito2:${powermockVersion}"
testImplementation "org.powermock:powermock-module-junit4-rule-agent:${powermockVersion}"
testImplementation "org.powermock:powermock-module-junit4-rule:${powermockVersion}"
testImplementation "org.powermock:powermock-module-junit4:${powermockVersion}"
testImplementation "joda-time:joda-time:2.9.9"
2019-06-09 17:58:23 +02:00
testImplementation ( "com.google.truth:truth:0.39" ) {
exclude group: "com.google.guava" , module: "guava"
}
testImplementation ( "org.robolectric:robolectric:3.8" ) {
exclude group: "com.google.guava" , module: "guava"
}
2019-04-10 17:43:01 +02:00
testImplementation "org.skyscreamer:jsonassert:1.5.0"
2019-05-04 21:34:46 +02:00
testImplementation "org.hamcrest:hamcrest-all:1.3"
2019-06-09 17:58:23 +02:00
testImplementation ( "uk.org.lidalia:slf4j-test:1.2.0" ) {
exclude group: "com.google.guava" , module: "guava"
}
2019-04-10 17:43:01 +02:00
androidTestImplementation "org.mockito:mockito-core:2.8.47"
androidTestImplementation "com.google.dexmaker:dexmaker:${dexmakerVersion}"
androidTestImplementation "com.google.dexmaker:dexmaker-mockito:${dexmakerVersion}"
}
task unzip ( type: Copy ) {
def zipPath = configurations . libs . find { it . name . startsWith ( "danars" ) }
def zipFile = file ( zipPath )
def outputDir = file ( "${buildDir}/unpacked/dist" )
from zipTree ( zipFile )
into outputDir
}
task copyLibs ( dependsOn: unzip , type: Copy ) {
def src = file ( "${buildDir}/unpacked/dist/danars-support-lib-master" )
def target = file ( "src/main/jniLibs/" )
from src
into target
}
task full_clean ( type: Delete ) {
delete file ( "src/main/jniLibs" )
}
clean . dependsOn full_clean
2018-04-20 17:27:31 +02:00
preBuild . dependsOn copyLibs
2019-04-16 11:15:40 +02:00
printf ( '--------------\n' )
printf ( 'isMaster: %s\n' , isMaster ( ) . toString ( ) )
printf ( 'allCommited: %s\n' , allCommited ( ) . toString ( ) )
printf ( '--------------\n' )
if ( isMaster ( ) & & ! allCommited ( ) ) {
throw new GradleException ( 'There are uncommitted changes or git system is not available. Clone sources again as described in wiki and do not allow gradle update' )
}