plugins {
    id 'com.android.library'
    id 'maven-publish'
    id 'kotlin-android'
}

android {
    namespace 'org.opencv'
    compileSdk ${COMPILE_SDK}

    defaultConfig {
        minSdk ${MIN_SDK}
        targetSdk ${TARGET_SDK}

        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
        externalNativeBuild {
            cmake {
                cppFlags ""
                arguments "-DANDROID_STL=${LIB_TYPE}"
            }
        }
        ndk {
            abiFilters ${ABI_FILTERS}
        }
    }

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_${JAVA_VERSION}
        targetCompatibility JavaVersion.VERSION_${JAVA_VERSION}
    }
    externalNativeBuild {
        cmake {
            path file('src/main/cpp/CMakeLists.txt')
        }
    }
    buildFeatures {
        prefabPublishing true
        buildConfig true
    }
    prefab {
        ${LIB_NAME} {
            headers "src/main/cpp/include"
        }
    }
    sourceSets {
        main {
            java.srcDirs = ['src/main/java']
            //jniLibs.srcDirs = ['libs']
        }
    }

    publishing {
        singleVariant('release') {
            withSourcesJar()
            withJavadocJar()
        }
    }
}

publishing {
    publications {
        release(MavenPublication) {
            // Builds aar, sources jar and javadoc jar from project sources and creates maven
            groupId = 'org.opencv'
            artifactId = '${PACKAGE_NAME}'
            version = '${OPENCV_VERSION}'
            afterEvaluate {
                from components.release
            }
        }
        modified(MavenPublication) {
            // Creates maven from opencv-release.aar
            groupId = 'org.opencv'
            artifactId = '${PACKAGE_NAME}'
            version = '${OPENCV_VERSION}'
            artifact("opencv-release.aar")
            pom {
                name = "OpenCV"
                description = "Open Source Computer Vision Library"
                url = "https://opencv.org/"
                licenses {
                    license {
                        name = "The Apache License, Version 2.0"
                        url = "https://github.com/opencv/opencv/blob/master/LICENSE"
                    }
                }
                developers {
                    developer {
                        id = "admin"
                        name = "OpenCV Team"
                        email = "admin@opencv.org"
                    }
                }
                scm {
                    connection = "scm:git:https://github.com/opencv/opencv.git"
                    url = "https://github.com/opencv/opencv"
                }
            }
        }
    }
    repositories {
        maven {
            name = 'myrepo'
            url = "${project.buildDir}/repo"
        }
    }
}

dependencies {
}