apply plugin: 'com.android.application'

android {
    compileSdkVersion 32

    defaultConfig {
        applicationId "org.freedesktop.gstreamer.webrtc"
        minSdkVersion 15
        targetSdkVersion 32
        versionCode 1
        versionName "1.0"
        archivesBaseName = "$applicationId-v$versionCode"

        externalNativeBuild {
            ndkBuild {
                def gstRoot

                if (project.hasProperty('gstAndroidRoot'))
                    gstRoot = project.gstAndroidRoot
                else
                    gstRoot = System.env.GSTREAMER_ROOT_ANDROID

                if (gstRoot == null)
                    throw new GradleException('GSTREAMER_ROOT_ANDROID must be set, or "gstAndroidRoot" must be defined in your gradle.properties in the top level directory of the unpacked universal GStreamer Android binaries')

                arguments "NDK_APPLICATION_MK=src/main/jni/Application.mk", "GSTREAMER_JAVA_SRC_DIR=src/main/java", "GSTREAMER_ROOT_ANDROID=$gstRoot", "GSTREAMER_ASSETS_DIR=src/main/assets", "V=1"

                targets "gstwebrtc"

                // All archs except MIPS and MIPS64 are supported
                abiFilters 'armeabi-v7a', 'arm64-v8a', 'x86', 'x86_64'
            }
        }
    }

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

    externalNativeBuild {
        ndkBuild {
            path 'src/main/jni/Android.mk'
        }
    }

    lintOptions {
        abortOnError false
    }
}

afterEvaluate {
    if (project.hasProperty('compileDebugJavaWithJavac'))
        compileDebugJavaWithJavac.dependsOn 'externalNativeBuildDebug'
    if (project.hasProperty('compileReleaseJavaWithJavac'))
        compileReleaseJavaWithJavac.dependsOn 'externalNativeBuildRelease'
}

dependencies {
    api fileTree(dir: 'libs', include: ['*.jar'])
    testImplementation 'junit:junit:4.12'
    implementation 'com.android.support:appcompat-v7:23.1.1'
    implementation 'com.android.support.constraint:constraint-layout:1.0.2'
}