plugins {
    id 'com.android.library'
}

android {
    compileSdk 30

    defaultConfig {
        minSdk 21
        targetSdk 30
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner 'androidx.test.runner.AndroidJUnitRunner'
    }

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
    externalNativeBuild {
        cmake {
            // Lowest version of cmake that is available on the Android SDK that
            // is greater than or equal to 3.13 is 3.18.1.
            version '3.18.1'
            path 'src/main/jni/CMakeLists.txt'
        }
    }
}

dependencies {
    implementation "androidx.annotation:annotation:1.6.0"
    androidTestImplementation 'junit:junit:4.+'
    androidTestImplementation 'androidx.test.ext:junit:1.1.5'
    androidTestImplementation 'com.google.truth:truth:1.1.3'
    androidTestImplementation 'androidx.test:runner:1.5.2'
}
