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

android {
    compileSdk 34
    defaultConfig {
        minSdkVersion 21
        targetSdkVersion 34

        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
        consumerProguardFiles "consumer-rules.pro"
    }

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_17
        targetCompatibility JavaVersion.VERSION_17
    }
    kotlinOptions {
        jvmTarget = '17'
    }
    buildFeatures.buildConfig = true
    namespace 'com.xinbida.wukongim'
}

configurations {
    // 创建一个新的配置用于嵌入依赖
    embedded
    implementation.extendsFrom(embedded)
}

dependencies {
    implementation platform("org.jetbrains.kotlin:kotlin-bom:$kotlin_version")
    implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
    implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version"
    
    // 使用 embedded 配置来包含需要打包进 AAR 的依赖
    embedded files('libs/xSocket-2.8.15.jar')
    embedded "net.zetetic:android-database-sqlcipher:4.5.4"
    embedded "androidx.sqlite:sqlite-ktx:2.5.0"
    embedded 'org.whispersystems:curve25519-android:0.5.0'
    embedded 'org.whispersystems:signal-protocol-android:2.8.1'
    
    // multidex 通常不需要打包进去，保持 implementation
    implementation 'com.android.support:multidex:1.0.3'
}

afterEvaluate {
    publishing {
        publications {
            release(MavenPublication) {
                from components.release
                
                // 配置 pom 以包含传递依赖
                pom {
                    name = 'WKIMLib'
                    description = 'WuKong IM Android Library'
                    
                    licenses {
                        license {
                            name = 'The Apache License, Version 2.0'
                            url = 'http://www.apache.org/licenses/LICENSE-2.0.txt'
                        }
                    }
                }
                
                groupId = 'com.xinbida.wukongim'
                artifactId = 'WKIMLib_local'
                version = '1.0.7'
            }
        }
        repositories {
            maven {
                name = 'localRepo'
                url = uri("${project.rootDir}/repository")
            }
        }
    }
}

android.libraryVariants.all { variant ->
    def name = variant.name.capitalize()
    task("generate${name}Javadoc", type: Javadoc) {
        description "Generates Javadoc for $variant.name."
        source = variant.sourceSets.collect { it.java.sourceFiles }.inject { m, i -> m + i }
        classpath += project.files(android.getBootClasspath().join(File.pathSeparator))
        classpath += configurations.implementation
        options.addStringOption('Xdoclint:none', '-quiet')
        options.addStringOption('encoding', 'UTF-8')
        options.addStringOption('charSet', 'UTF-8')
    }
}

