diff --git a/build.gradle.kts b/build.gradle.kts index b18845c278..90bc0c2dcf 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -15,6 +15,7 @@ buildscript { classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:2.3.20") classpath("org.jetbrains.kotlin:compose-compiler-gradle-plugin:2.3.21") classpath("org.jacoco:org.jacoco.core:0.8.14") + classpath("org.jetbrains.dokka:dokka-gradle-plugin:2.0.0") } } @@ -32,3 +33,25 @@ allprojects { } } } + +apply(plugin = "org.jetbrains.dokka") + +extensions.configure { + dokkaPublications.named("html") { + outputDirectory.set(rootDir.resolve("doc")) + } +} + +dependencies { + add("dokka", project(":libs:SalesforceAnalytics")) + add("dokka", project(":libs:SalesforceSDK")) + add("dokka", project(":libs:SmartStore")) + add("dokka", project(":libs:MobileSync")) + add("dokka", project(":libs:SalesforceHybrid")) + add("dokka", project(":libs:SalesforceReact")) +} + +tasks.register("javadocJar") { + from(tasks.named("dokkaGeneratePublicationHtml")) + archiveClassifier.set("javadoc") +} diff --git a/gradle.properties b/gradle.properties index 0ec9b7c8ce..2e91dfbc06 100644 --- a/gradle.properties +++ b/gradle.properties @@ -16,3 +16,4 @@ android.r8.optimizedResourceShrinking=false android.builtInKotlin=false # TODO: This should be resolved in a dedicated work item. ECJ20260423 android.newDsl=false +org.jetbrains.dokka.experimental.gradle.pluginMode=V2EnabledWithHelpers diff --git a/libs/MobileSync/build.gradle.kts b/libs/MobileSync/build.gradle.kts index 57d8ff3704..52eaecbb8c 100644 --- a/libs/MobileSync/build.gradle.kts +++ b/libs/MobileSync/build.gradle.kts @@ -7,6 +7,7 @@ plugins { `kotlin-android` `publish-module` jacoco + id("org.jetbrains.dokka") } dependencies { diff --git a/libs/SalesforceAnalytics/build.gradle.kts b/libs/SalesforceAnalytics/build.gradle.kts index fae53862ee..8aebaf42ba 100644 --- a/libs/SalesforceAnalytics/build.gradle.kts +++ b/libs/SalesforceAnalytics/build.gradle.kts @@ -7,6 +7,7 @@ plugins { `kotlin-android` `publish-module` jacoco + id("org.jetbrains.dokka") } dependencies { diff --git a/libs/SalesforceHybrid/build.gradle.kts b/libs/SalesforceHybrid/build.gradle.kts index 82341a8c8c..ffe7135af1 100644 --- a/libs/SalesforceHybrid/build.gradle.kts +++ b/libs/SalesforceHybrid/build.gradle.kts @@ -9,6 +9,7 @@ plugins { `kotlin-android` `publish-module` jacoco + id("org.jetbrains.dokka") } dependencies { diff --git a/libs/SalesforceReact/build.gradle.kts b/libs/SalesforceReact/build.gradle.kts index 33974572e5..db2e2d820b 100644 --- a/libs/SalesforceReact/build.gradle.kts +++ b/libs/SalesforceReact/build.gradle.kts @@ -18,6 +18,7 @@ plugins { `kotlin-android` `publish-module` jacoco + id("org.jetbrains.dokka") } dependencies { diff --git a/libs/SalesforceSDK/build.gradle.kts b/libs/SalesforceSDK/build.gradle.kts index 7b5681c287..b664a3d91f 100644 --- a/libs/SalesforceSDK/build.gradle.kts +++ b/libs/SalesforceSDK/build.gradle.kts @@ -10,6 +10,7 @@ plugins { kotlin("plugin.serialization") version "2.3.20" kotlin("plugin.parcelize") kotlin("plugin.compose") + id("org.jetbrains.dokka") } dependencies { diff --git a/libs/SmartStore/build.gradle.kts b/libs/SmartStore/build.gradle.kts index c8a6f7b8f3..dfd71d86f1 100644 --- a/libs/SmartStore/build.gradle.kts +++ b/libs/SmartStore/build.gradle.kts @@ -7,6 +7,7 @@ plugins { `kotlin-android` `publish-module` jacoco + id("org.jetbrains.dokka") } dependencies { diff --git a/tools/generate_doc.sh b/tools/generate_doc.sh index 9072328541..6c10e5e3d1 100755 --- a/tools/generate_doc.sh +++ b/tools/generate_doc.sh @@ -3,5 +3,5 @@ if [ ! -d "external" ] then echo "You must run this tool from the root directory of your repo clone" else - javadoc -d doc -author -version -verbose -use -doctitle "SalesforceSDK 14.0 API" -sourcepath "libs/SalesforceAnalytics/src:libs/SalesforceSDK/src:libs/SmartStore/src:libs/MobileSync/src:libs/SalesforceHybrid/src:libs/SalesforceReact/src" -subpackages com + ./gradlew dokkaGeneratePublicationHtml fi