plugins {
    id 'com.android.application'
    id 'kotlin-android'
}

println 'matterSdkSourceBuild='+matterSdkSourceBuild
println 'matterBuildSrcDir='+matterBuildSrcDir
println 'matterUTestLib='+matterUTestLib

android {
    compileSdkVersion 30
    buildToolsVersion "30.0.3"

    defaultConfig {
        applicationId "com.tcl.chip.chiptest"
        minSdkVersion 26
        targetSdkVersion 30
        versionCode 1
        versionName "1.0"

        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"

        ndk {abiFilters 'arm64-v8a'}

        externalNativeBuild {
            cmake {
                arguments "-DMATTER_SDK_SOURCE_BUILD="+matterSdkSourceBuild \
                    , "-DMATTER_SDK_BUILD_ROOT="+matterBuildSrcDir \
                    , "-DMATTER_SDK_UTEST_LIB="+matterUTestLib
            }
        }
    }

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

        debug {
            packagingOptions {
                doNotStrip '**/*.so'
            }
        }
    }
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
    kotlinOptions {
        jvmTarget = '1.8'
    }

    externalNativeBuild {
        cmake {
            path file('src/main/cpp/CMakeLists.txt')
            version '3.10.2'
        }
    }

    buildFeatures {
        viewBinding true
    }
}

dependencies {
    if(!matterSdkSourceBuild.toBoolean()) {
        implementation fileTree(dir: "libs", include: ["*.jar"])
    }

    implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
    implementation 'androidx.core:core-ktx:1.6.0'
    implementation 'androidx.appcompat:appcompat:1.3.1'
    implementation 'com.google.android.material:material:1.4.0'
    implementation 'androidx.constraintlayout:constraintlayout:2.1.0'
    testImplementation 'junit:junit:4.+'
    androidTestImplementation 'androidx.test.ext:junit:1.1.3'
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0'
}