apply plugin: 'com.android.library'
/*
You might have to download JDK8 and set JAVA8_HOME (or set the jdk to Java 8 via Project Structure).
For detailed instructions, see https://github.com/evant/gradle-retrolambda
 */
apply plugin: 'me.tatarka.retrolambda'

android {
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
    compileSdkVersion 21
    buildToolsVersion "21.1.2"

    defaultConfig {
        minSdkVersion 21
        targetSdkVersion 21
        versionCode 1
        versionName "1.0"
    }
}

dependencies {
    provided(
            /* If the application wishes to use support libraries, it should include them as compile
            dependencies in its own build.gradle. */
            'com.android.support:appcompat-v7:23.0.1',

            'org.glassfish:javax.annotation:10.0-b28',
            /*
            https://projectlombok.org/setup/android.html
            Follow Android Studio instructions at the bottom of the page to install the Lombok
            Plugin.
             */
            'org.projectlombok:lombok:1.16.6',
            'org.slf4j:slf4j-api:1.7.12'
    )


    testCompile(
            'org.mockito:mockito-core:1.10.19',
            'org.powermock:powermock-module-junit4:1.6.3',
            'org.slf4j:slf4j-simple:1.7.12'
    )

    testCompile('org.powermock:powermock-api-mockito:1.6.3') {
        exclude module: 'mockito-all'
    }

    compile(
            //'com.android.support:appcompat-v7:23.1.0',
            'com.jakewharton.rxbinding:rxbinding:0.3.0',
            'io.reactivex:rxandroid:1.0.1',
            'io.reactivex:rxjava:1.0.16',
            'io.reactivex:rxjava-async-util:0.21.0',
            'io.v:vanadium:0.1',
            'io.v:vanadium-android:0.1',
            'net.sourceforge.streamsupport:streamsupport:1.3.2'
    )
    compile fileTree(dir: 'libs', include: ['*.jar'])

    /*
    Word of caution: for local unit tests, Android log statements fail with
    UnsatisfiedLinkError (hence the slf4j-simple implementation for testCompile).

    Applications should include a suitable runtime binding, such as
    apk ('org.slf4j:slf4j-android:1.7.12')
    */
}
