aboutsummaryrefslogtreecommitdiff
path: root/build-logic/src/main/kotlin/dokkabuild/internal/GradleKotlinDslAccessors.kt
blob: 7b854f16f6677b758faf4e6a249c1ac4e76f0508 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
/*
 * Copyright 2014-2023 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license.
 */

@file:Suppress("PackageDirectoryMismatch")

package org.gradle.kotlin.dsl // for convenience use a default package for gradle.kts scripts

import org.gradle.api.Project
import org.gradle.accessors.dm.LibrariesForLibs
import dokkabuild.DokkaBuildProperties

/*
 * Utility functions for accessing Gradle extensions that are created by convention plugins.
 *
 * (Gradle can't generate the nice DSL accessors for the project that defines them)
 *
 * These functions are not needed outside the convention plugins project and should be marked as
 * `internal`
 */


/**
 * workaround for accessing version-catalog in convention plugins
 *
 * See https://github.com/gradle/gradle/issues/15383#issuecomment-779893192
 */
internal val Project.libs : LibrariesForLibs
    get() = extensions.getByType()

/**
 * Retrieves the [dokkaBuild][org.jetbrains.DokkaBuildProperties] extension.
 */
internal val Project.dokkaBuild: DokkaBuildProperties
    get() = extensions.getByType()

/**
 * Configures the [dokkaBuild][org.jetbrains.DokkaBuildProperties] extension.
 */
internal fun Project.dokkaBuild(configure: DokkaBuildProperties.() -> Unit) =
    extensions.configure(configure)