apply plugin: 'com.android.application'

android {
    compileSdkVersion 31
    ndkVersion "23.1.7779620"
    defaultConfig {
        applicationId "com.prefabulated.swappy"
        minSdkVersion 19
        targetSdkVersion 31
        versionCode 4
        versionName "1.1.2"
        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
        externalNativeBuild {
            cmake {
            }
        }
    }
    buildTypes {
        debug {
        }
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
    externalNativeBuild {
        cmake {
            path "CMakeLists.txt"
        }
    }
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
    lintOptions {
        abortOnError false
    }
    buildFeatures {
        prefab true
    }
}

allprojects {
    gradle.projectsEvaluated {
        tasks.withType(JavaCompile) {
            options.compilerArgs << "-Xlint:deprecation"
        }
    }
}

dependencies {
    implementation 'androidx.appcompat:appcompat:1.3.1'
    implementation 'androidx.preference:preference:1.1.1'

    // Uncomment the line below (implementation fileTree..)
    // and comment out "implementation project(":games-frame-pacing")"
    // to use a locally built .aar
    // See ../settings.gradle as well
    //implementation fileTree(dir: '../../../', include: ['games-frame-pacing-release.aar'])
    implementation project(':games-frame-pacing')
}
