diff --git a/.github/workflows/generate_dokka.yml b/.github/workflows/generate_dokka.yml index af303ca56..025bc244d 100644 --- a/.github/workflows/generate_dokka.yml +++ b/.github/workflows/generate_dokka.yml @@ -41,6 +41,8 @@ jobs: run: | cd $GITHUB_WORKSPACE/dokka/ rm -rf "./-cloudstream" + rm -rf "./app" + rm -rf "./library" - name: Setup JDK 17 uses: actions/setup-java@v4 diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 8dd688584..df0ba1fb5 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -1,4 +1,6 @@ import com.android.build.gradle.internal.cxx.configure.gradleLocalProperties +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 @@ -266,4 +268,23 @@ tasks.withType { jvmTarget.set(javaTarget) freeCompilerArgs.add("-Xjvm-default=all-compatibility") } +} + +dokka { + moduleName = "App" + dokkaSourceSets { + main { + analysisPlatform = KotlinPlatform.JVM + documentedVisibilities( + VisibilityModifier.Public, + VisibilityModifier.Protected + ) + + sourceLink { + localDirectory = file("..") + remoteUrl("https://github.com/recloudstream/cloudstream/tree/master") + remoteLineSuffix = "#L" + } + } + } } \ No newline at end of file diff --git a/docs/build.gradle.kts b/docs/build.gradle.kts index 3b15f8110..203b93818 100644 --- a/docs/build.gradle.kts +++ b/docs/build.gradle.kts @@ -1,110 +1,13 @@ -import org.jetbrains.kotlin.gradle.dsl.JvmTarget -import java.net.URI - plugins { - id("com.android.library") - id("kotlin-android") + kotlin("jvm") id("org.jetbrains.dokka") } -val javaTarget = JvmTarget.fromTarget(libs.versions.jvmTarget.get()) - -android { - compileSdk = libs.versions.compileSdk.get().toInt() - sourceSets["main"].manifest.srcFile("src/androidMain/AndroidManifest.xml") - - defaultConfig { - minSdk = libs.versions.minSdk.get().toInt() - } - - namespace = "com.lagradost.api" - - compileOptions { - sourceCompatibility = JavaVersion.toVersion(javaTarget.target) - targetCompatibility = JavaVersion.toVersion(javaTarget.target) - } - - @Suppress("UnstableApiUsage") - testOptions { - targetSdk = libs.versions.targetSdk.get().toInt() - } - - lint { - targetSdk = libs.versions.targetSdk.get().toInt() - } -} - -val dokkaImplementation: Configuration by configurations.creating { - // This ensures you can access artifacts - isCanBeResolved = true - isTransitive = true -} - dependencies { - dokkaImplementation(libs.junit.ktx) - dokkaImplementation(libs.core.ktx) - dokkaImplementation(libs.appcompat) - dokkaImplementation(libs.navigation.ui.ktx) - dokkaImplementation(libs.lifecycle.livedata.ktx) - dokkaImplementation(libs.lifecycle.viewmodel.ktx) - dokkaImplementation(libs.navigation.fragment.ktx) - dokkaImplementation(libs.preference.ktx) - dokkaImplementation(libs.material) - dokkaImplementation(libs.constraintlayout) - dokkaImplementation(libs.swiperefreshlayout) - dokkaImplementation(libs.guava) - dokkaImplementation(libs.auto.service.ksp) - dokkaImplementation(libs.bundles.media3) - dokkaImplementation(libs.colorpicker) // Subtitle Color Picker - dokkaImplementation(libs.bundles.nextlibMedia3) - dokkaImplementation(libs.newpipeextractor) - dokkaImplementation(libs.juniversalchardet) // Subtitle Decoding - dokkaImplementation(libs.acra.core) - dokkaImplementation(libs.acra.toast) - dokkaImplementation(libs.shimmer) // Shimmering Effect (Loading Skeleton) - dokkaImplementation(libs.palette.ktx) // Palette for Images -> Colors - dokkaImplementation(libs.tvprovider) - dokkaImplementation(libs.overlappingpanels) // Gestures - dokkaImplementation(libs.biometric) // Fingerprint Authentication - dokkaImplementation(libs.previewseekbar.media3) // SeekBar Preview - dokkaImplementation(libs.qrcode.kotlin) // QR Code for PIN Auth on TV - dokkaImplementation(libs.rhino) // Run JavaScript - dokkaImplementation(libs.fuzzywuzzy) // Library/Ext Searching with Levenshtein Distance - dokkaImplementation(libs.safefile) // To Prevent the URI File Fu*kery - dokkaImplementation(libs.conscrypt.android) // To Fix SSL Fu*kery on Android 9 - dokkaImplementation(libs.tmdb.java) // TMDB API v3 Wrapper Made with RetroFit - dokkaImplementation(libs.jackson.module.kotlin) // JSON Parser - dokkaImplementation(libs.work.runtime) - dokkaImplementation(libs.work.runtime.ktx) - dokkaImplementation(libs.nicehttp) // HTTP Lib + dokka(project(":app:")) + dokka(project(":library:")) } dokka { - dokkaSourceSets { - moduleName = "Cloudstream" - register("cloudstream") { - listOf("androidMain", "commonMain").forEach { srcName -> - sourceRoots.from("../library/src/$srcName/kotlin") - } - sourceRoots.from(file("../app/src/main/java")) - - classpath.from(android.bootClasspath) - classpath.from(dokkaImplementation.files) - - sourceLink { - localDirectory = file("..") - remoteUrl("https://github.com/recloudstream/cloudstream/tree/master") - remoteLineSuffix = "#L" - } - - externalDocumentationLinks { - dokkaImplementation.dependencies.forEach { - register(it.name) { - url = URI("https://javadoc.io/doc/${it.group}/${it.name}/${it.version}") - packageListUrl = URI("https://javadoc.io/doc/${it.group}/${it.name}/${it.version}/package-list") - } - } - } - } - } + moduleName = "Cloudstream" } \ No newline at end of file diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 3d17ad88b..e677f5f1d 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,7 +1,6 @@ [versions] acraCore = "5.11.3" appcompat = "1.7.0" -autoServiceKsp = "1.2.0" biometric = "1.2.0-alpha05" buildkonfigGradlePlugin = "0.15.2" coil = "3.0.4" @@ -14,7 +13,6 @@ dokkaGradlePlugin = "2.0.0" espressoCore = "3.6.1" fuzzywuzzy = "1.4.0" gradle = "8.8.0" -guava = "33.3.1-android" jacksonModuleKotlin = "2.13.1" json = "20240303" junit = "4.13.2" @@ -58,7 +56,6 @@ torrentserver-aniyomi = { module = "com.github.Diegopyl1209:torrentserver-aniyom acra-core = { module = "ch.acra:acra-core", version.ref = "acraCore" } acra-toast = { module = "ch.acra:acra-toast", version.ref = "acraCore" } appcompat = { module = "androidx.appcompat:appcompat", version.ref = "appcompat" } -auto-service-ksp = { module = "dev.zacsweers.autoservice:auto-service-ksp", version.ref = "autoServiceKsp" } biometric = { module = "androidx.biometric:biometric", version.ref = "biometric" } buildkonfig-gradle-plugin = { module = "com.codingfeline.buildkonfig:buildkonfig-gradle-plugin", version.ref = "buildkonfigGradlePlugin" } coil = { module = "io.coil-kt.coil3:coil", version.ref = "coil" } @@ -74,7 +71,6 @@ espresso-core = { module = "androidx.test.espresso:espresso-core", version.ref = ext-junit = { module = "androidx.test.ext:junit", version.ref = "junitVersion" } fuzzywuzzy = { module = "me.xdrop:fuzzywuzzy", version.ref = "fuzzywuzzy" } gradle = { module = "com.android.tools.build:gradle", version.ref = "gradle" } -guava = { module = "com.google.guava:guava", version.ref = "guava" } jackson-module-kotlin = { module = "com.fasterxml.jackson.module:jackson-module-kotlin", version.ref = "jacksonModuleKotlin" } jetbrains-kotlin-gradle-plugin = { module = "org.jetbrains.kotlin:kotlin-gradle-plugin", version.ref = "kotlinGradlePluginVersion" } json = { module = "org.json:json", version.ref = "json" } diff --git a/library/build.gradle.kts b/library/build.gradle.kts index b571aaa11..bc73b3dad 100644 --- a/library/build.gradle.kts +++ b/library/build.gradle.kts @@ -1,4 +1,6 @@ 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 @@ -7,6 +9,7 @@ plugins { id("maven-publish") id("com.android.library") id("com.codingfeline.buildkonfig") + id("org.jetbrains.dokka") } val javaTarget = JvmTarget.fromTarget(libs.versions.jvmTarget.get()) @@ -85,4 +88,23 @@ publishing { 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" + } + } + } } \ No newline at end of file