aboutsummaryrefslogtreecommitdiff
path: root/core
diff options
context:
space:
mode:
Diffstat (limited to 'core')
-rw-r--r--core/src/main/kotlin/configuration.kt8
-rw-r--r--core/src/main/kotlin/defaultConfiguration.kt4
-rw-r--r--core/src/main/kotlin/model/CompositeSourceSetID.kt2
-rw-r--r--core/src/test/kotlin/utilities/DokkaConfigurationJsonTest.kt8
-rw-r--r--core/test-api/src/main/kotlin/testApi/testRunner/TestDokkaConfigurationBuilder.kt39
5 files changed, 35 insertions, 26 deletions
diff --git a/core/src/main/kotlin/configuration.kt b/core/src/main/kotlin/configuration.kt
index 2aa252e1..9a1ff602 100644
--- a/core/src/main/kotlin/configuration.kt
+++ b/core/src/main/kotlin/configuration.kt
@@ -9,6 +9,7 @@ import java.io.Serializable
import java.net.URL
object DokkaDefaults {
+ val moduleName: String = "root"
val outputDir = File("./dokka")
const val format: String = "html"
val cacheRoot: File? = null
@@ -58,12 +59,13 @@ interface DokkaConfigurationBuilder<T : Any> {
fun <T : Any> Iterable<DokkaConfigurationBuilder<T>>.build(): List<T> = this.map { it.build() }
+
data class DokkaSourceSetID(
- val moduleName: String,
+ val scopeId: String,
val sourceSetName: String
) : Serializable {
override fun toString(): String {
- return "$moduleName/$sourceSetName"
+ return "$scopeId/$sourceSetName"
}
}
@@ -72,6 +74,7 @@ fun DokkaConfigurationImpl(json: String): DokkaConfigurationImpl = parseJson(jso
fun DokkaConfiguration.toJsonString(): String = toJsonString(this)
interface DokkaConfiguration : Serializable {
+ val moduleName: String
val outputDir: File
val cacheRoot: File?
val offlineMode: Boolean
@@ -84,7 +87,6 @@ interface DokkaConfiguration : Serializable {
interface DokkaSourceSet : Serializable {
val sourceSetID: DokkaSourceSetID
val displayName: String
- val moduleDisplayName: String
val classpath: List<File>
val sourceRoots: Set<File>
val dependentSourceSets: Set<DokkaSourceSetID>
diff --git a/core/src/main/kotlin/defaultConfiguration.kt b/core/src/main/kotlin/defaultConfiguration.kt
index 8bd2d976..3fcc7aac 100644
--- a/core/src/main/kotlin/defaultConfiguration.kt
+++ b/core/src/main/kotlin/defaultConfiguration.kt
@@ -5,6 +5,7 @@ import java.io.File
import java.net.URL
data class DokkaConfigurationImpl(
+ override val moduleName: String = DokkaDefaults.moduleName,
override val outputDir: File = DokkaDefaults.outputDir,
override val cacheRoot: File? = DokkaDefaults.cacheRoot,
override val offlineMode: Boolean = DokkaDefaults.offlineMode,
@@ -12,12 +13,11 @@ data class DokkaConfigurationImpl(
override val pluginsClasspath: List<File> = emptyList(),
override val pluginsConfiguration: Map<String, String> = emptyMap(),
override val modules: List<DokkaModuleDescriptionImpl> = emptyList(),
- override val failOnWarning: Boolean = DokkaDefaults.failOnWarning
+ override val failOnWarning: Boolean = DokkaDefaults.failOnWarning,
) : DokkaConfiguration
data class DokkaSourceSetImpl(
- override val moduleDisplayName: String,
override val displayName: String = DokkaDefaults.sourceSetDisplayName,
override val sourceSetID: DokkaSourceSetID,
override val classpath: List<File> = emptyList(),
diff --git a/core/src/main/kotlin/model/CompositeSourceSetID.kt b/core/src/main/kotlin/model/CompositeSourceSetID.kt
index 3c1cf7de..9f38dafb 100644
--- a/core/src/main/kotlin/model/CompositeSourceSetID.kt
+++ b/core/src/main/kotlin/model/CompositeSourceSetID.kt
@@ -14,7 +14,7 @@ data class CompositeSourceSetID(
}
val merged = DokkaSourceSetID(
- moduleName = children.map { it.moduleName }.reduce { acc, s -> "$acc+$s" },
+ scopeId = children.map { it.scopeId }.reduce { acc, s -> "$acc+$s" },
sourceSetName = children.map { it.sourceSetName }.reduce { acc, s -> "$acc+$s" }
)
diff --git a/core/src/test/kotlin/utilities/DokkaConfigurationJsonTest.kt b/core/src/test/kotlin/utilities/DokkaConfigurationJsonTest.kt
index 8efc84c6..ba33ab92 100644
--- a/core/src/test/kotlin/utilities/DokkaConfigurationJsonTest.kt
+++ b/core/src/test/kotlin/utilities/DokkaConfigurationJsonTest.kt
@@ -9,11 +9,11 @@ class DokkaConfigurationJsonTest {
@Test
fun `simple configuration toJsonString then parseJson`() {
val configuration = DokkaConfigurationImpl(
+ moduleName = "moduleName",
outputDir = File("customOutputDir"),
pluginsClasspath = listOf(File("plugins/customPlugin.jar")),
sourceSets = listOf(
DokkaSourceSetImpl(
- moduleDisplayName = "customModuleDisplayName",
sourceRoots = setOf(File("customSourceRoot")),
sourceSetID = DokkaSourceSetID("customModuleName", "customSourceSetName")
)
@@ -29,13 +29,13 @@ class DokkaConfigurationJsonTest {
fun `parse simple configuration json`() {
val json = """
{
+ "moduleName": "moduleName",
"outputDir": "customOutputDir",
"pluginsClasspath": [ "plugins/customPlugin.jar" ],
"sourceSets": [
{
- "moduleDisplayName": "customModuleDisplayName",
"sourceSetID": {
- "moduleName": "customModuleName",
+ "scopeId": "customModuleName",
"sourceSetName": "customSourceSetName"
},
"sourceRoots": [ "customSourceRoot" ],
@@ -48,11 +48,11 @@ class DokkaConfigurationJsonTest {
val parsedConfiguration = DokkaConfigurationImpl(json)
assertEquals(
DokkaConfigurationImpl(
+ moduleName = "moduleName",
outputDir = File("customOutputDir"),
pluginsClasspath = listOf(File("plugins/customPlugin.jar")),
sourceSets = listOf(
DokkaSourceSetImpl(
- moduleDisplayName = "customModuleDisplayName",
sourceRoots = setOf(File("customSourceRoot")),
sourceSetID = DokkaSourceSetID("customModuleName", "customSourceSetName"),
classpath = listOf(File("classpath/custom1.jar"), File("classpath/custom2.jar"))
diff --git a/core/test-api/src/main/kotlin/testApi/testRunner/TestDokkaConfigurationBuilder.kt b/core/test-api/src/main/kotlin/testApi/testRunner/TestDokkaConfigurationBuilder.kt
index 5bf7e52d..f6cb99db 100644
--- a/core/test-api/src/main/kotlin/testApi/testRunner/TestDokkaConfigurationBuilder.kt
+++ b/core/test-api/src/main/kotlin/testApi/testRunner/TestDokkaConfigurationBuilder.kt
@@ -16,6 +16,13 @@ annotation class DokkaConfigurationDsl
@DokkaConfigurationDsl
class TestDokkaConfigurationBuilder {
+
+ var moduleName: String = "root"
+ set(value) {
+ check(lazySourceSets.isEmpty()) { "Cannot set moduleName after adding source sets" }
+ field = value
+ }
+
var outputDir: String = "out"
var format: String = "html"
var offlineMode: Boolean = false
@@ -23,12 +30,13 @@ class TestDokkaConfigurationBuilder {
var pluginsClasspath: List<File> = emptyList()
var pluginsConfigurations: Map<String, String> = emptyMap()
var failOnWarning: Boolean = false
- private val sourceSets = mutableListOf<DokkaSourceSetImpl>()
+ private val lazySourceSets = mutableListOf<Lazy<DokkaSourceSetImpl>>()
fun build() = DokkaConfigurationImpl(
+ moduleName = moduleName,
outputDir = File(outputDir),
cacheRoot = cacheRoot?.let(::File),
offlineMode = offlineMode,
- sourceSets = sourceSets.toList(),
+ sourceSets = lazySourceSets.map { it.value }.toList(),
pluginsClasspath = pluginsClasspath,
pluginsConfiguration = pluginsConfigurations,
modules = emptyList(),
@@ -36,28 +44,29 @@ class TestDokkaConfigurationBuilder {
)
fun sourceSets(block: SourceSetsBuilder.() -> Unit) {
- sourceSets.addAll(SourceSetsBuilder().apply(block))
+ lazySourceSets.addAll(SourceSetsBuilder(moduleName).apply(block))
}
- fun add(sourceSet: DokkaSourceSetImpl) {
- sourceSets.add(sourceSet)
+ fun sourceSet(block: DokkaSourceSetBuilder.() -> Unit): Lazy<DokkaSourceSetImpl> {
+ val lazySourceSet = lazy { DokkaSourceSetBuilder(moduleName).apply(block).build() }
+ lazySourceSets.add(lazySourceSet)
+ return lazySourceSet
}
-}
-@DokkaConfigurationDsl
-class SourceSetsBuilder : ArrayList<DokkaSourceSetImpl>() {
- fun sourceSet(block: DokkaSourceSetBuilder.() -> Unit): DokkaConfiguration.DokkaSourceSet =
- DokkaSourceSetBuilder().apply(block).build().apply(::add)
+ fun unattachedSourceSet(block: DokkaSourceSetBuilder.() -> Unit): DokkaSourceSetImpl {
+ return DokkaSourceSetBuilder(moduleName).apply(block).build()
+ }
}
-fun sourceSet(block: DokkaSourceSetBuilder.() -> Unit): DokkaSourceSetImpl {
- return DokkaSourceSetBuilder().apply(block).build()
+@DokkaConfigurationDsl
+class SourceSetsBuilder(val moduleName: String) : ArrayList<Lazy<DokkaSourceSetImpl>>() {
+ fun sourceSet(block: DokkaSourceSetBuilder.() -> Unit): Lazy<DokkaConfiguration.DokkaSourceSet> =
+ lazy { DokkaSourceSetBuilder(moduleName).apply(block).build() }.apply(::add)
}
@DokkaConfigurationDsl
class DokkaSourceSetBuilder(
- var moduleName: String = "root",
- var moduleDisplayName: String? = null,
+ private val moduleName: String,
var name: String = "main",
var displayName: String = "JVM",
var classpath: List<String> = emptyList(),
@@ -81,7 +90,6 @@ class DokkaSourceSetBuilder(
var sourceLinks: List<SourceLinkDefinitionImpl> = emptyList()
) {
fun build() = DokkaSourceSetImpl(
- moduleDisplayName = moduleDisplayName ?: moduleName,
displayName = displayName,
sourceSetID = DokkaSourceSetID(moduleName, name),
classpath = classpath.map(::File),
@@ -107,7 +115,6 @@ class DokkaSourceSetBuilder(
}
val defaultSourceSet = DokkaSourceSetImpl(
- moduleDisplayName = "DEFAULT",
displayName = "DEFAULT",
sourceSetID = DokkaSourceSetID("DEFAULT", "DEFAULT"),
classpath = emptyList(),