import com.android.build.gradle.internal.cxx.configure.gradleLocalProperties import com.codingfeline.buildkonfig.compiler.FieldSpec import org.jetbrains.dokka.gradle.engine.parameters.KotlinPlatform import org.jetbrains.dokka.gradle.engine.parameters.VisibilityModifier import org.jetbrains.kotlin.gradle.dsl.JvmTarget import org.jetbrains.kotlin.gradle.tasks.KotlinJvmCompile plugins { id("maven-publish") // Gradle core plugin alias(libs.plugins.kotlin.multiplatform) alias(libs.plugins.android.lint) alias(libs.plugins.android.multiplatform.library) alias(libs.plugins.buildkonfig) alias(libs.plugins.dokka) } val javaTarget = JvmTarget.fromTarget(libs.versions.jvmTarget.get()) kotlin { version = "1.0.1" android { // If this is the same com.lagradost.cloudstream3.R stops working namespace = "com.lagradost.api" compileSdk = libs.versions.compileSdk.get().toInt() minSdk = libs.versions.minSdk.get().toInt() compilerOptions { jvmTarget.set(javaTarget) } lint { targetSdk = libs.versions.targetSdk.get().toInt() } } jvm() compilerOptions { freeCompilerArgs.addAll( "-Xexpect-actual-classes", "-Xannotation-default-target=param-property" ) } sourceSets { all { languageSettings.optIn("com.lagradost.cloudstream3.Prerelease") } commonMain.dependencies { implementation(libs.nicehttp) // HTTP Lib implementation(libs.jackson.module.kotlin) // JSON Parser implementation(libs.kotlinx.coroutines.core) implementation(libs.fuzzywuzzy) // Match Extractors implementation(libs.jsoup) // HTML Parser implementation(libs.rhino) // Run JavaScript implementation(libs.newpipeextractor) implementation(libs.tmdb.java) // TMDB API v3 Wrapper Made with RetroFit } } } tasks.withType { compilerOptions { jvmTarget.set(javaTarget) } } buildkonfig { packageName = "com.lagradost.api" exposeObjectWithName = "BuildConfig" defaultConfigs { val isDebug = kotlin.runCatching { extra.get("isDebug") }.getOrNull() == true if (isDebug) { logger.quiet("Compiling library with debug flag") } else { logger.quiet("Compiling library with release flag") } buildConfigField(FieldSpec.Type.BOOLEAN, "DEBUG", isDebug.toString()) // Reads local.properties val localProperties = gradleLocalProperties(rootDir, project.providers) buildConfigField( FieldSpec.Type.STRING, "MDL_API_KEY", (System.getenv("MDL_API_KEY") ?: localProperties["mdl.key"]).toString() ) } } publishing { publications { withType { groupId = "com.lagradost.api" } } } dokka { moduleName = "Library" dokkaSourceSets { configureEach { analysisPlatform = KotlinPlatform.AndroidJVM documentedVisibilities( VisibilityModifier.Public, VisibilityModifier.Protected ) sourceLink { localDirectory = file("..") remoteUrl("https://github.com/recloudstream/cloudstream/tree/master") remoteLineSuffix = "#L" } } } }