plugins { id "org.jetbrains.dokka" id 'com.android.library' id 'kotlin-android' id 'kotlin-kapt' id 'kotlinx-serialization' id 'com.google.protobuf' } android { compileSdkVersion androidSdk.compileVersion buildToolsVersion "30.0.3" defaultConfig { minSdkVersion androidSdk.minVersion targetSdkVersion androidSdk.targetVersion testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" consumerProguardFiles 'consumer-rules.pro' buildConfigField "String", "VERSION_NAME", "\"$VERSION_NAME\"" } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' } } sourceSets { main.java.srcDirs += "${protobuf.generatedFilesBaseDir}/main/javalite" } testOptions { unitTests { includeAndroidResources = true } } compileOptions { sourceCompatibility java_version targetCompatibility java_version } kotlinOptions { freeCompilerArgs = ["-Xinline-classes", "-Xopt-in=kotlin.RequiresOptIn"] jvmTarget = java_version } } protobuf { protoc { artifact = "com.google.protobuf:protoc:${versions.protobuf}" } generateProtoTasks { all().each { task -> task.builtins { java { } } } } } dokkaHtml { moduleName.set("livekit-android-sdk") dokkaSourceSets { configureEach { skipEmptyPackages.set(true) includeNonPublic.set(false) includes.from("module.md") displayName.set("SDK") sourceLink { localDirectory.set(file("src/main/java")) // URL showing where the source code can be accessed through the web browser remoteUrl.set(new URL( "https://github.com/livekit/client-sdk-android/tree/master/livekit-android-sdk/src/main/java")) // Suffix which is used to append the line number to the URL. Use #L for GitHub remoteLineSuffix.set("#L") } perPackageOption { matchingRegex.set(".*\\.dagger.*") suppress.set(true) } perPackageOption { matchingRegex.set(".*\\.util.*") suppress.set(true) } } } } dependencies { protobuf files(generated.protoSrc) implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" implementation deps.kotlinx_coroutines implementation 'org.jetbrains.kotlinx:kotlinx-serialization-json:1.1.0' api 'com.github.webrtc-sdk:android:92.4515.02' api "com.squareup.okhttp3:okhttp:4.9.0" implementation "androidx.annotation:annotation:1.2.0" implementation "androidx.core:core:${versions.androidx_core}" implementation "com.google.protobuf:protobuf-java:${versions.protobuf}" implementation "com.google.protobuf:protobuf-java-util:${versions.protobuf}" implementation "androidx.compose.ui:ui:$compose_version" implementation 'com.google.dagger:dagger:2.38' kapt 'com.google.dagger:dagger-compiler:2.38' implementation deps.timber implementation 'com.vdurmont:semver4j:3.1.0' testImplementation 'junit:junit:4.13.2' testImplementation 'org.robolectric:robolectric:4.6' testImplementation 'org.mockito:mockito-core:4.0.0' testImplementation "org.mockito.kotlin:mockito-kotlin:4.0.0" testImplementation 'androidx.test:core:1.4.0' testImplementation "org.jetbrains.kotlinx:kotlinx-coroutines-test:1.5.0" kaptTest 'com.google.dagger:dagger-compiler:2.38' androidTestImplementation 'androidx.test.ext:junit:1.1.3' androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0' } apply from: rootProject.file('gradle/gradle-mvn-push.gradle') afterEvaluate { publishing { publications { // Creates a Maven publication called "release". release(MavenPublication) { // Applies the component for the release build variant. from components.release // You can then customize attributes of the publication as shown below. groupId = GROUP artifactId = POM_ARTIFACT_ID version = VERSION_NAME } } } }