/**
 * Include this gradle file if you are building against this as a standalone gradle library project,
 * as opposed to building it as part of the git-tree. This is typically the file you want to include
 * if you create a new project in Android Studio.
 *
 * For example, you can include the following in your settings.gradle file:
 *      include ':setupcompat'
 *      project(':setupcompat').projectDir = new File(PATH_TO_THIS_DIRECTORY)
 *
 * And then you can include the :setupcompat project as one of your dependencies
 *      dependencies {
 *          implementation project(path: ':setupcompat')
 *      }
 */

apply plugin: 'com.android.library'

android {
    // Not specifying compileSdkVersion here so clients can specify it; must be at least Q

    defaultConfig {
        minSdkVersion 14
        targetSdkVersion 28
    }

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard.flags'
        }
    }

    sourceSets.main {
        manifest.srcFile 'AndroidManifest.xml'
        java.srcDirs = ['main/java', 'partnerconfig/java']
        aidl.srcDirs = ['main/aidl']
        res.srcDirs = ['main/res']
    }

    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
}

dependencies {
    implementation "androidx.annotation:annotation:1.0.0"
}
