aboutsummaryrefslogtreecommitdiff
path: root/gradle-plugin
diff options
context:
space:
mode:
authorAlex Beggs <sunyal@gmail.com>2021-08-16 19:06:06 -0400
committerlaszio <ting-yuan@users.noreply.github.com>2021-08-16 21:25:27 -0700
commitfdbcbe5af49427729442e245fce5a16b60989ea0 (patch)
tree26e507017252285964b81f08891eacaa29d3c7ed /gradle-plugin
parent3363dc62c034fd78f853784158e0e789de81ab8a (diff)
downloadksp-fdbcbe5af49427729442e245fce5a16b60989ea0.tar.gz
Fix ktlint issues and apply ktlint to workflow
Diffstat (limited to 'gradle-plugin')
-rw-r--r--gradle-plugin/build.gradle.kts8
-rw-r--r--gradle-plugin/src/main/kotlin/com/google/devtools/ksp/gradle/KspSubplugin.kt208
-rw-r--r--gradle-plugin/src/main/kotlin/com/google/devtools/ksp/gradle/model/Ksp.kt3
-rw-r--r--gradle-plugin/src/main/kotlin/com/google/devtools/ksp/gradle/model/builder/KspModelBuilder.kt9
-rw-r--r--gradle-plugin/src/main/kotlin/com/google/devtools/ksp/gradle/model/impl/KspImpl.kt3
-rw-r--r--gradle-plugin/src/test/kotlin/com/google/devtools/ksp/gradle/GradleCompilationTest.kt2
-rw-r--r--gradle-plugin/src/test/kotlin/com/google/devtools/ksp/gradle/SourceSetConfigurationsTest.kt17
-rw-r--r--gradle-plugin/src/test/kotlin/com/google/devtools/ksp/gradle/model/builder/KspModelBuilderTest.kt3
-rw-r--r--gradle-plugin/src/test/kotlin/com/google/devtools/ksp/gradle/testing/DependencyDeclaration.kt5
-rw-r--r--gradle-plugin/src/test/kotlin/com/google/devtools/ksp/gradle/testing/KspIntegrationTestRule.kt26
-rw-r--r--gradle-plugin/src/test/kotlin/com/google/devtools/ksp/gradle/testing/TestProject.kt4
11 files changed, 156 insertions, 132 deletions
diff --git a/gradle-plugin/build.gradle.kts b/gradle-plugin/build.gradle.kts
index 983af9fc..934cb8bd 100644
--- a/gradle-plugin/build.gradle.kts
+++ b/gradle-plugin/build.gradle.kts
@@ -95,9 +95,11 @@ signing {
val testPropsOutDir = project.layout.buildDirectory.dir("test-config")
val writeTestPropsTask = tasks.register<WriteProperties>("prepareTestConfiguration") {
description = "Generates a properties file with the current environment for gradle integration tests"
- this.setOutputFile(testPropsOutDir.map {
- it.file("testprops.properties")
- })
+ this.setOutputFile(
+ testPropsOutDir.map {
+ it.file("testprops.properties")
+ }
+ )
property("kspVersion", version)
property("mavenRepoDir", File(rootProject.buildDir, "repos/test").absolutePath)
property("kspProjectRootDir", rootProject.projectDir.absolutePath)
diff --git a/gradle-plugin/src/main/kotlin/com/google/devtools/ksp/gradle/KspSubplugin.kt b/gradle-plugin/src/main/kotlin/com/google/devtools/ksp/gradle/KspSubplugin.kt
index 71c82713..b1581875 100644
--- a/gradle-plugin/src/main/kotlin/com/google/devtools/ksp/gradle/KspSubplugin.kt
+++ b/gradle-plugin/src/main/kotlin/com/google/devtools/ksp/gradle/KspSubplugin.kt
@@ -34,39 +34,18 @@ import org.gradle.api.provider.ListProperty
import org.gradle.api.provider.MapProperty
import org.gradle.api.provider.Property
import org.gradle.api.provider.Provider
-import org.gradle.api.tasks.CacheableTask
-import org.gradle.api.tasks.Input
-import org.gradle.api.tasks.InputFiles
-import org.gradle.api.tasks.Internal
-import org.gradle.api.tasks.LocalState
+import org.gradle.api.tasks.*
import org.gradle.api.tasks.Optional
-import org.gradle.api.tasks.OutputDirectory
-import org.gradle.api.tasks.PathSensitive
-import org.gradle.api.tasks.PathSensitivity
-import org.gradle.api.tasks.SourceSet
-import org.gradle.api.tasks.TaskProvider
import org.gradle.api.tasks.compile.AbstractCompile
import org.gradle.api.tasks.compile.JavaCompile
import org.gradle.language.jvm.tasks.ProcessResources
import org.gradle.tooling.provider.model.ToolingModelBuilderRegistry
import org.gradle.util.GradleVersion
-import org.jetbrains.kotlin.cli.common.arguments.Argument
-import org.jetbrains.kotlin.cli.common.arguments.CommonCompilerArguments
-import org.jetbrains.kotlin.cli.common.arguments.K2JSCompilerArguments
-import org.jetbrains.kotlin.cli.common.arguments.K2JVMCompilerArguments
-import org.jetbrains.kotlin.cli.common.arguments.K2MetadataCompilerArguments
-import org.jetbrains.kotlin.gradle.dsl.KotlinJsOptionsImpl
-import org.jetbrains.kotlin.gradle.dsl.KotlinJvmOptionsImpl
-import org.jetbrains.kotlin.gradle.dsl.KotlinMultiplatformCommonOptionsImpl
-import org.jetbrains.kotlin.gradle.dsl.KotlinSingleTargetExtension
-import org.jetbrains.kotlin.gradle.dsl.fillDefaultValues
+import org.jetbrains.kotlin.cli.common.arguments.*
+import org.jetbrains.kotlin.gradle.dsl.*
import org.jetbrains.kotlin.gradle.internal.CompilerArgumentsContributor
import org.jetbrains.kotlin.gradle.internal.compilerArgumentsConfigurationFlags
-import org.jetbrains.kotlin.gradle.internal.kapt.incremental.CLASS_STRUCTURE_ARTIFACT_TYPE
-import org.jetbrains.kotlin.gradle.internal.kapt.incremental.ClasspathSnapshot
-import org.jetbrains.kotlin.gradle.internal.kapt.incremental.KaptClasspathChanges
-import org.jetbrains.kotlin.gradle.internal.kapt.incremental.StructureTransformAction
-import org.jetbrains.kotlin.gradle.internal.kapt.incremental.StructureTransformLegacyAction
+import org.jetbrains.kotlin.gradle.internal.kapt.incremental.*
import org.jetbrains.kotlin.gradle.plugin.*
import org.jetbrains.kotlin.gradle.plugin.mpp.AbstractKotlinNativeCompilation
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinJvmAndroidCompilation
@@ -74,13 +53,9 @@ import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinJvmCompilation
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinWithJavaCompilation
import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.KotlinCompilationData
import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.KotlinNativeCompilationData
-import org.jetbrains.kotlin.gradle.tasks.AbstractKotlinCompile
+import org.jetbrains.kotlin.gradle.tasks.*
import org.jetbrains.kotlin.gradle.tasks.AbstractKotlinCompile.Configurator
-import org.jetbrains.kotlin.gradle.tasks.Kotlin2JsCompile
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
-import org.jetbrains.kotlin.gradle.tasks.KotlinCompileCommon
-import org.jetbrains.kotlin.gradle.tasks.KotlinNativeCompile
-import org.jetbrains.kotlin.gradle.tasks.SourceRoots
import org.jetbrains.kotlin.incremental.ChangedFiles
import org.jetbrains.kotlin.incremental.destinationAsFile
import org.jetbrains.kotlin.incremental.isJavaFile
@@ -90,11 +65,10 @@ import java.io.File
import java.util.*
import java.util.concurrent.Callable
import javax.inject.Inject
-import kotlin.collections.LinkedHashSet
import kotlin.reflect.KProperty1
class KspGradleSubplugin @Inject internal constructor(private val registry: ToolingModelBuilderRegistry) :
- KotlinCompilerPluginSupportPlugin {
+ KotlinCompilerPluginSupportPlugin {
companion object {
const val KSP_MAIN_CONFIGURATION_NAME = "ksp"
const val KSP_ARTIFACT_NAME = "symbol-processing"
@@ -103,27 +77,27 @@ class KspGradleSubplugin @Inject internal constructor(private val registry: Tool
@JvmStatic
fun getKspOutputDir(project: Project, sourceSetName: String) =
- File(project.project.buildDir, "generated/ksp/$sourceSetName")
+ File(project.project.buildDir, "generated/ksp/$sourceSetName")
@JvmStatic
fun getKspClassOutputDir(project: Project, sourceSetName: String) =
- File(getKspOutputDir(project, sourceSetName), "classes")
+ File(getKspOutputDir(project, sourceSetName), "classes")
@JvmStatic
fun getKspJavaOutputDir(project: Project, sourceSetName: String) =
- File(getKspOutputDir(project, sourceSetName), "java")
+ File(getKspOutputDir(project, sourceSetName), "java")
@JvmStatic
fun getKspKotlinOutputDir(project: Project, sourceSetName: String) =
- File(getKspOutputDir(project, sourceSetName), "kotlin")
+ File(getKspOutputDir(project, sourceSetName), "kotlin")
@JvmStatic
fun getKspResourceOutputDir(project: Project, sourceSetName: String) =
- File(getKspOutputDir(project, sourceSetName), "resources")
+ File(getKspOutputDir(project, sourceSetName), "resources")
@JvmStatic
fun getKspCachesDir(project: Project, sourceSetName: String) =
- File(project.project.buildDir, "kspCaches/$sourceSetName")
+ File(project.project.buildDir, "kspCaches/$sourceSetName")
@JvmStatic
private fun getSubpluginOptions(
@@ -131,7 +105,7 @@ class KspGradleSubplugin @Inject internal constructor(private val registry: Tool
kspExtension: KspExtension,
nonEmptyKspConfigurations: List<Configuration>,
sourceSetName: String,
- isIncremental: Boolean
+ isIncremental: Boolean,
): List<SubpluginOption> {
val options = mutableListOf<SubpluginOption>()
options += SubpluginOption("classOutputDir", getKspClassOutputDir(project, sourceSetName).path)
@@ -141,7 +115,10 @@ class KspGradleSubplugin @Inject internal constructor(private val registry: Tool
options += SubpluginOption("cachesDir", getKspCachesDir(project, sourceSetName).path)
options += SubpluginOption("kspOutputDir", getKspOutputDir(project, sourceSetName).path)
options += SubpluginOption("incremental", isIncremental.toString())
- options += SubpluginOption("incrementalLog", project.findProperty("ksp.incremental.log")?.toString() ?: "false")
+ options += SubpluginOption(
+ "incrementalLog",
+ project.findProperty("ksp.incremental.log")?.toString() ?: "false"
+ )
options += SubpluginOption("projectBaseDir", project.project.projectDir.canonicalPath)
options += FilesSubpluginOption("apclasspath", nonEmptyKspConfigurations.flatten())
@@ -183,7 +160,7 @@ class KspGradleSubplugin @Inject internal constructor(private val registry: Tool
registry.register(KspModelBuilder())
}
- private fun decorateKotlinExtension(project:Project) {
+ private fun decorateKotlinExtension(project: Project) {
project.extensions.configure(KotlinSingleTargetExtension::class.java) { kotlinExtension ->
kotlinExtension.target.compilations.createKspConfigurations(project) { kotlinCompilation ->
kotlinCompilation.kotlinSourceSets.map {
@@ -196,9 +173,9 @@ class KspGradleSubplugin @Inject internal constructor(private val registry: Tool
/**
* Creates a KSP configuration for each element in the object container.
*/
- internal fun<T> NamedDomainObjectContainer<T>.createKspConfigurations(
+ internal fun <T> NamedDomainObjectContainer<T>.createKspConfigurations(
project: Project,
- getKspConfigurationNames : (T)-> List<String>
+ getKspConfigurationNames: (T) -> List<String>,
) {
val mainConfiguration = project.configurations.maybeCreate(KSP_MAIN_CONFIGURATION_NAME)
all {
@@ -223,7 +200,10 @@ class KspGradleSubplugin @Inject internal constructor(private val registry: Tool
// Check version and show warning by default.
val noVersionCheck = project.findProperty("ksp.version.check")?.toString()?.toBoolean() == false
if (!noVersionCheck && !kspVersion.startsWith(kotlinVersion))
- project.logger.warn("ksp-$kspVersion might not work with kotlin-$kotlinVersion properly. Please pick the same version of ksp and kotlin plugins.")
+ project.logger.warn(
+ "ksp-$kspVersion might not work with kotlin-$kotlinVersion properly. " +
+ "Please pick the same version of ksp and kotlin plugins."
+ )
return true
}
@@ -348,7 +328,8 @@ class KspGradleSubplugin @Inject internal constructor(private val registry: Tool
configureAsAbstractCompile(kspTask)
// KotlinNativeCompile computes -Xplugin=... from compilerPluginClasspath.
- val pluginConfigurationName = (kotlinCompileTask.compilation as AbstractKotlinNativeCompilation).pluginConfigurationName
+ val pluginConfigurationName =
+ (kotlinCompileTask.compilation as AbstractKotlinNativeCompilation).pluginConfigurationName
val compilerPluginCP = project.configurations.getByName(pluginConfigurationName)
val apiDep = project.dependencies.create(apiArtifact)
compilerPluginCP.dependencies.add(apiDep)
@@ -369,7 +350,8 @@ class KspGradleSubplugin @Inject internal constructor(private val registry: Tool
}
}
- val processResourcesTaskName = (kotlinCompilation as? KotlinCompilationWithResources)?.processResourcesTaskName ?: "processResources"
+ val processResourcesTaskName =
+ (kotlinCompilation as? KotlinCompilationWithResources)?.processResourcesTaskName ?: "processResources"
project.locateTask<ProcessResources>(processResourcesTaskName)?.let { provider ->
provider.configure { resourcesTask ->
resourcesTask.dependsOn(kspTaskProvider)
@@ -392,10 +374,18 @@ class KspGradleSubplugin @Inject internal constructor(private val registry: Tool
override fun getCompilerPluginId() = KSP_PLUGIN_ID
override fun getPluginArtifact(): SubpluginArtifact =
- SubpluginArtifact(groupId = "com.google.devtools.ksp", artifactId = KSP_ARTIFACT_NAME, version = javaClass.`package`.implementationVersion)
+ SubpluginArtifact(
+ groupId = "com.google.devtools.ksp",
+ artifactId = KSP_ARTIFACT_NAME,
+ version = javaClass.`package`.implementationVersion
+ )
override fun getPluginArtifactForNative(): SubpluginArtifact? =
- SubpluginArtifact(groupId = "com.google.devtools.ksp", artifactId = KSP_ARTIFACT_NAME_NATIVE, version = javaClass.`package`.implementationVersion)
+ SubpluginArtifact(
+ groupId = "com.google.devtools.ksp",
+ artifactId = KSP_ARTIFACT_NAME_NATIVE,
+ version = javaClass.`package`.implementationVersion
+ )
val apiArtifact = "com.google.devtools.ksp:symbol-processing-api:${javaClass.`package`.implementationVersion}"
}
@@ -404,20 +394,20 @@ private val artifactType = Attribute.of("artifactType", String::class.java)
// Copied from kotlin-gradle-plugin, because they are internal.
internal inline fun <reified T : Task> Project.locateTask(name: String): TaskProvider<T>? =
- try {
- tasks.withType(T::class.java).named(name)
- } catch (e: UnknownTaskException) {
- null
- }
+ try {
+ tasks.withType(T::class.java).named(name)
+ } catch (e: UnknownTaskException) {
+ null
+ }
// Copied from kotlin-gradle-plugin, because they are internal.
internal fun findJavaTaskForKotlinCompilation(compilation: KotlinCompilation<*>): TaskProvider<out JavaCompile>? =
- when (compilation) {
- is KotlinJvmAndroidCompilation -> compilation.compileJavaTaskProvider
- is KotlinWithJavaCompilation -> compilation.compileJavaTaskProvider
- is KotlinJvmCompilation -> compilation.compileJavaTaskProvider // may be null for Kotlin-only JVM target in MPP
- else -> null
- }
+ when (compilation) {
+ is KotlinJvmAndroidCompilation -> compilation.compileJavaTaskProvider
+ is KotlinWithJavaCompilation -> compilation.compileJavaTaskProvider
+ is KotlinJvmCompilation -> compilation.compileJavaTaskProvider // may be null for Kotlin-only JVM target in MPP
+ else -> null
+ }
interface KspTask : Task {
@get:Internal
@@ -451,7 +441,11 @@ interface KspTask : Task {
@get:LocalState
val kspCacheDir: DirectoryProperty
- fun configureCompilation(kotlinCompilation: KotlinCompilationData<*>, kotlinCompile: AbstractKotlinCompile<*>, isIncremental: Boolean)
+ fun configureCompilation(
+ kotlinCompilation: KotlinCompilationData<*>,
+ kotlinCompile: AbstractKotlinCompile<*>,
+ isIncremental: Boolean,
+ )
}
@CacheableTask
@@ -464,7 +458,11 @@ abstract class KspTaskJvm : KotlinCompile(KotlinJvmOptionsImpl()), KspTask {
@get:Internal
var isIntermoduleIncremental: Boolean = false
- override fun configureCompilation(kotlinCompilation: KotlinCompilationData<*>, kotlinCompile: AbstractKotlinCompile<*>, isIncremental: Boolean) {
+ override fun configureCompilation(
+ kotlinCompilation: KotlinCompilationData<*>,
+ kotlinCompile: AbstractKotlinCompile<*>,
+ isIncremental: Boolean,
+ ) {
Configurator<KspTaskJvm>(kotlinCompilation).configure(this)
kotlinCompile as KotlinCompile
val providerFactory = kotlinCompile.project.providers
@@ -530,7 +528,9 @@ abstract class KspTaskJvm : KotlinCompile(KotlinJvmOptionsImpl()), KspTask {
val previousAndCurrentDataFiles = lazy { loadedPrevious.getAllDataFiles() + allDataFiles }
val allChangesRecognized = changedFiles.all {
val extension = it.extension
- if (extension.isEmpty() || extension == "kt" || extension == "java" || extension == "jar" || extension == "class") {
+ if (extension.isEmpty() || extension == "kt" || extension == "java" || extension == "jar" ||
+ extension == "class"
+ ) {
return@all true
}
// if not a directory, Java source file, jar, or class, it has to be a structure file, in order to understand changes
@@ -561,7 +561,8 @@ abstract class KspTaskJvm : KotlinCompile(KotlinJvmOptionsImpl()), KspTask {
}
@get:Internal
- internal abstract val compileKotlinArgumentsContributor: Property<CompilerArgumentsContributor<K2JVMCompilerArguments>>
+ internal abstract val compileKotlinArgumentsContributor:
+ Property<CompilerArgumentsContributor<K2JVMCompilerArguments>>
init {
// kotlinc's incremental compilation isn't compatible with symbol processing in a few ways:
@@ -571,15 +572,18 @@ abstract class KspTaskJvm : KotlinCompile(KotlinJvmOptionsImpl()), KspTask {
}
override fun setupCompilerArgs(
- args: K2JVMCompilerArguments,
- defaultsOnly: Boolean,
- ignoreClasspathResolutionErrors: Boolean
+ args: K2JVMCompilerArguments,
+ defaultsOnly: Boolean,
+ ignoreClasspathResolutionErrors: Boolean,
) {
// Start with / copy from kotlinCompile.
- compileKotlinArgumentsContributor.get().contributeArguments(args, compilerArgumentsConfigurationFlags(
- defaultsOnly,
- ignoreClasspathResolutionErrors
- ))
+ compileKotlinArgumentsContributor.get().contributeArguments(
+ args,
+ compilerArgumentsConfigurationFlags(
+ defaultsOnly,
+ ignoreClasspathResolutionErrors
+ )
+ )
if (blockOtherCompilerPlugins) {
args.blockOtherPlugins(overridePluginClasspath.get())
}
@@ -594,7 +598,7 @@ abstract class KspTaskJvm : KotlinCompile(KotlinJvmOptionsImpl()), KspTask {
fun `callCompilerAsync$kotlin_gradle_plugin`(
args: K2JVMCompilerArguments,
sourceRoots: SourceRoots,
- changedFiles: ChangedFiles
+ changedFiles: ChangedFiles,
) {
if (isIntermoduleIncremental) {
// findClasspathChanges may clear caches, if there are
@@ -614,12 +618,15 @@ abstract class KspTaskJvm : KotlinCompile(KotlinJvmOptionsImpl()), KspTask {
override fun skipCondition(): Boolean = false
}
-
@CacheableTask
abstract class KspTaskJS @Inject constructor(
- objectFactory: ObjectFactory
+ objectFactory: ObjectFactory,
) : Kotlin2JsCompile(KotlinJsOptionsImpl(), objectFactory), KspTask {
- override fun configureCompilation(kotlinCompilation: KotlinCompilationData<*>, kotlinCompile: AbstractKotlinCompile<*>, isIncremental: Boolean) {
+ override fun configureCompilation(
+ kotlinCompilation: KotlinCompilationData<*>,
+ kotlinCompile: AbstractKotlinCompile<*>,
+ isIncremental: Boolean,
+ ) {
Configurator<KspTaskJS>(kotlinCompilation).configure(this)
kotlinCompile as Kotlin2JsCompile
val providerFactory = kotlinCompile.project.providers
@@ -631,7 +638,8 @@ abstract class KspTaskJS @Inject constructor(
}
@get:Internal
- internal abstract val compileKotlinArgumentsContributor: Property<CompilerArgumentsContributor<K2JSCompilerArguments>>
+ internal abstract val compileKotlinArgumentsContributor:
+ Property<CompilerArgumentsContributor<K2JSCompilerArguments>>
init {
// kotlinc's incremental compilation isn't compatible with symbol processing in a few ways:
@@ -643,14 +651,17 @@ abstract class KspTaskJS @Inject constructor(
override fun setupCompilerArgs(
args: K2JSCompilerArguments,
defaultsOnly: Boolean,
- ignoreClasspathResolutionErrors: Boolean
+ ignoreClasspathResolutionErrors: Boolean,
) {
// Start with / copy from kotlinCompile.
args.fillDefaultValues()
- compileKotlinArgumentsContributor.get().contributeArguments(args, compilerArgumentsConfigurationFlags(
- defaultsOnly,
- ignoreClasspathResolutionErrors
- ))
+ compileKotlinArgumentsContributor.get().contributeArguments(
+ args,
+ compilerArgumentsConfigurationFlags(
+ defaultsOnly,
+ ignoreClasspathResolutionErrors
+ )
+ )
if (blockOtherCompilerPlugins) {
args.blockOtherPlugins(overridePluginClasspath.get())
}
@@ -664,7 +675,7 @@ abstract class KspTaskJS @Inject constructor(
fun `callCompilerAsync$kotlin_gradle_plugin`(
args: K2JSCompilerArguments,
sourceRoots: SourceRoots,
- changedFiles: ChangedFiles
+ changedFiles: ChangedFiles,
) {
if (changedFiles.hasNonSourceChange()) {
clearIncCache()
@@ -676,7 +687,11 @@ abstract class KspTaskJS @Inject constructor(
}
abstract class KspTaskMetadata : KotlinCompileCommon(KotlinMultiplatformCommonOptionsImpl()), KspTask {
- override fun configureCompilation(kotlinCompilation: KotlinCompilationData<*>, kotlinCompile: AbstractKotlinCompile<*>, isIncremental: Boolean) {
+ override fun configureCompilation(
+ kotlinCompilation: KotlinCompilationData<*>,
+ kotlinCompile: AbstractKotlinCompile<*>,
+ isIncremental: Boolean,
+ ) {
Configurator<KspTaskMetadata>(kotlinCompilation).configure(this)
kotlinCompile as KotlinCompileCommon
val providerFactory = kotlinCompile.project.providers
@@ -688,7 +703,8 @@ abstract class KspTaskMetadata : KotlinCompileCommon(KotlinMultiplatformCommonOp
}
@get:Internal
- internal abstract val compileKotlinArgumentsContributor: Property<CompilerArgumentsContributor<K2MetadataCompilerArguments>>
+ internal abstract val compileKotlinArgumentsContributor:
+ Property<CompilerArgumentsContributor<K2MetadataCompilerArguments>>
init {
// kotlinc's incremental compilation isn't compatible with symbol processing in a few ways:
@@ -700,14 +716,17 @@ abstract class KspTaskMetadata : KotlinCompileCommon(KotlinMultiplatformCommonOp
override fun setupCompilerArgs(
args: K2MetadataCompilerArguments,
defaultsOnly: Boolean,
- ignoreClasspathResolutionErrors: Boolean
+ ignoreClasspathResolutionErrors: Boolean,
) {
// Start with / copy from kotlinCompile.
args.apply { fillDefaultValues() }
- compileKotlinArgumentsContributor.get().contributeArguments(args, compilerArgumentsConfigurationFlags(
- defaultsOnly,
- ignoreClasspathResolutionErrors
- ))
+ compileKotlinArgumentsContributor.get().contributeArguments(
+ args,
+ compilerArgumentsConfigurationFlags(
+ defaultsOnly,
+ ignoreClasspathResolutionErrors
+ )
+ )
if (blockOtherCompilerPlugins) {
args.blockOtherPlugins(overridePluginClasspath.get())
}
@@ -721,7 +740,7 @@ abstract class KspTaskMetadata : KotlinCompileCommon(KotlinMultiplatformCommonOp
fun `callCompilerAsync$kotlin_gradle_plugin`(
args: K2MetadataCompilerArguments,
sourceRoots: SourceRoots,
- changedFiles: ChangedFiles
+ changedFiles: ChangedFiles,
) {
if (changedFiles.hasNonSourceChange()) {
clearIncCache()
@@ -734,7 +753,7 @@ abstract class KspTaskMetadata : KotlinCompileCommon(KotlinMultiplatformCommonOp
@CacheableTask
abstract class KspTaskNative @Inject constructor(
- injected: KotlinNativeCompilationData<*>
+ injected: KotlinNativeCompilationData<*>,
) : KotlinNativeCompile(injected), KspTask {
override fun buildCompilerArgs(): List<String> {
val kspOptions = options.get().flatMap { listOf("-P", it.toArg()) }
@@ -750,7 +769,7 @@ abstract class KspTaskNative @Inject constructor(
override fun configureCompilation(
kotlinCompilation: KotlinCompilationData<*>,
kotlinCompile: AbstractKotlinCompile<*>,
- isIncremental: Boolean
+ isIncremental: Boolean,
) = Unit
// KotlinNativeCompile doesn't support Gradle incremental compilation. Therefore, there is no information about
@@ -781,7 +800,7 @@ fun CommonCompilerArguments.addChangedClasses(changed: KaptClasspathChanges) {
}
}
-fun SubpluginOption.toArg() = "plugin:${KspGradleSubplugin.KSP_PLUGIN_ID}:${key}=${value}"
+fun SubpluginOption.toArg() = "plugin:${KspGradleSubplugin.KSP_PLUGIN_ID}:$key=$value"
fun CommonCompilerArguments.addPluginOptions(options: List<SubpluginOption>) {
pluginOptions = (options.map { it.toArg() } + pluginOptions!!).toTypedArray()
@@ -803,11 +822,10 @@ fun CommonCompilerArguments.addChangedFiles(changedFiles: ChangedFiles) {
private fun CommonCompilerArguments.blockOtherPlugins(kspPluginClasspath: FileCollection) {
pluginClasspaths = kspPluginClasspath.map { it.canonicalPath }.toTypedArray()
pluginOptions = arrayOf()
-
}
// TODO: Move into dumpArgs after the compiler supports local function in inline functions.
-private inline fun <reified T: CommonCompilerArguments> T.toPair(property: KProperty1<T, *>): Pair<String, String> {
+private inline fun <reified T : CommonCompilerArguments> T.toPair(property: KProperty1<T, *>): Pair<String, String> {
@Suppress("UNCHECKED_CAST")
val value = (property as KProperty1<T, *>).get(this)
return property.name to if (value is Array<*>)
@@ -817,7 +835,7 @@ private inline fun <reified T: CommonCompilerArguments> T.toPair(property: KProp
}
@Suppress("unused")
-internal inline fun <reified T: CommonCompilerArguments> dumpArgs(args: T): Map<String, String> {
+internal inline fun <reified T : CommonCompilerArguments> dumpArgs(args: T): Map<String, String> {
@Suppress("UNCHECKED_CAST")
val argumentProperties =
args::class.members.mapNotNull { member ->
diff --git a/gradle-plugin/src/main/kotlin/com/google/devtools/ksp/gradle/model/Ksp.kt b/gradle-plugin/src/main/kotlin/com/google/devtools/ksp/gradle/model/Ksp.kt
index 9a56f18a..22077a0c 100644
--- a/gradle-plugin/src/main/kotlin/com/google/devtools/ksp/gradle/model/Ksp.kt
+++ b/gradle-plugin/src/main/kotlin/com/google/devtools/ksp/gradle/model/Ksp.kt
@@ -15,7 +15,6 @@
* limitations under the License.
*/
-
package com.google.devtools.ksp.gradle.model
/**
@@ -38,4 +37,4 @@ interface Ksp {
* @return the module name.
*/
val name: String
-} \ No newline at end of file
+}
diff --git a/gradle-plugin/src/main/kotlin/com/google/devtools/ksp/gradle/model/builder/KspModelBuilder.kt b/gradle-plugin/src/main/kotlin/com/google/devtools/ksp/gradle/model/builder/KspModelBuilder.kt
index 9d2b5c87..760d83bc 100644
--- a/gradle-plugin/src/main/kotlin/com/google/devtools/ksp/gradle/model/builder/KspModelBuilder.kt
+++ b/gradle-plugin/src/main/kotlin/com/google/devtools/ksp/gradle/model/builder/KspModelBuilder.kt
@@ -15,14 +15,13 @@
* limitations under the License.
*/
-
package com.google.devtools.ksp.gradle.model.builder
-import org.gradle.api.Project
-import org.gradle.tooling.provider.model.ToolingModelBuilder
import com.google.devtools.ksp.gradle.KspExtension
-import com.google.devtools.ksp.gradle.model.impl.KspImpl
import com.google.devtools.ksp.gradle.model.Ksp
+import com.google.devtools.ksp.gradle.model.impl.KspImpl
+import org.gradle.api.Project
+import org.gradle.tooling.provider.model.ToolingModelBuilder
/**
* [ToolingModelBuilder] for [Ksp] models.
@@ -41,4 +40,4 @@ class KspModelBuilder : ToolingModelBuilder {
}
return null
}
-} \ No newline at end of file
+}
diff --git a/gradle-plugin/src/main/kotlin/com/google/devtools/ksp/gradle/model/impl/KspImpl.kt b/gradle-plugin/src/main/kotlin/com/google/devtools/ksp/gradle/model/impl/KspImpl.kt
index ed592255..a6ca2699 100644
--- a/gradle-plugin/src/main/kotlin/com/google/devtools/ksp/gradle/model/impl/KspImpl.kt
+++ b/gradle-plugin/src/main/kotlin/com/google/devtools/ksp/gradle/model/impl/KspImpl.kt
@@ -15,7 +15,6 @@
* limitations under the License.
*/
-
package com.google.devtools.ksp.gradle.model.impl
import com.google.devtools.ksp.gradle.model.Ksp
@@ -33,4 +32,4 @@ data class KspImpl(
companion object {
private const val serialVersionUID = 1L
}
-} \ No newline at end of file
+}
diff --git a/gradle-plugin/src/test/kotlin/com/google/devtools/ksp/gradle/GradleCompilationTest.kt b/gradle-plugin/src/test/kotlin/com/google/devtools/ksp/gradle/GradleCompilationTest.kt
index ce7fdffa..70b59246 100644
--- a/gradle-plugin/src/test/kotlin/com/google/devtools/ksp/gradle/GradleCompilationTest.kt
+++ b/gradle-plugin/src/test/kotlin/com/google/devtools/ksp/gradle/GradleCompilationTest.kt
@@ -93,7 +93,7 @@ class GradleCompilationTest {
class MyProcessor(private val codeGenerator: CodeGenerator) : SymbolProcessor {
var count = 0
override fun process(resolver: Resolver): List<KSAnnotated> {
- if(count == 0) {
+ if (count == 0) {
codeGenerator.createNewFile(Dependencies.ALL_FILES, "", "Generated").use {
it.writer(Charsets.UTF_8).use {
it.write("class ToBeGenerated")
diff --git a/gradle-plugin/src/test/kotlin/com/google/devtools/ksp/gradle/SourceSetConfigurationsTest.kt b/gradle-plugin/src/test/kotlin/com/google/devtools/ksp/gradle/SourceSetConfigurationsTest.kt
index f3199b64..922adeae 100644
--- a/gradle-plugin/src/test/kotlin/com/google/devtools/ksp/gradle/SourceSetConfigurationsTest.kt
+++ b/gradle-plugin/src/test/kotlin/com/google/devtools/ksp/gradle/SourceSetConfigurationsTest.kt
@@ -170,7 +170,8 @@ class SourceSetConfigurationsTest {
@Test
fun configurationsForAndroidApp_withBuildFlavorsMatchesKapt() {
testRule.setupAppAsAndroidApp()
- testRule.appModule.buildFileAdditions.add("""
+ testRule.appModule.buildFileAdditions.add(
+ """
android {
flavorDimensions("version")
productFlavors {
@@ -184,7 +185,8 @@ class SourceSetConfigurationsTest {
}
}
}
- """.trimIndent())
+ """.trimIndent()
+ )
testRule.appModule.plugins.add(PluginDeclaration.kotlin("kapt", testRule.testConfig.kotlinBaseVersion))
testRule.appModule.addSource("Foo.kt", "class Foo")
val result = testRule.runner()
@@ -221,7 +223,7 @@ class SourceSetConfigurationsTest {
kspForTests(androidApp = true, useAndroidTest = false)
}
- private fun kspForTests(androidApp:Boolean, useAndroidTest: Boolean) {
+ private fun kspForTests(androidApp: Boolean, useAndroidTest: Boolean) {
if (androidApp) {
testRule.setupAppAsAndroidApp()
} else {
@@ -233,17 +235,20 @@ class SourceSetConfigurationsTest {
}
}
- testRule.appModule.addSource("App.kt", """
+ testRule.appModule.addSource(
+ "App.kt",
+ """
@Suppress("app")
class InApp {
}
- """.trimIndent())
+ """.trimIndent()
+ )
val testSource = """
@Suppress("test")
class InTest {
val impl = InTest_Impl()
}
- """.trimIndent()
+ """.trimIndent()
if (useAndroidTest) {
testRule.appModule.addAndroidTestSource("InTest.kt", testSource)
} else {
diff --git a/gradle-plugin/src/test/kotlin/com/google/devtools/ksp/gradle/model/builder/KspModelBuilderTest.kt b/gradle-plugin/src/test/kotlin/com/google/devtools/ksp/gradle/model/builder/KspModelBuilderTest.kt
index da326cd3..e2dd3d9a 100644
--- a/gradle-plugin/src/test/kotlin/com/google/devtools/ksp/gradle/model/builder/KspModelBuilderTest.kt
+++ b/gradle-plugin/src/test/kotlin/com/google/devtools/ksp/gradle/model/builder/KspModelBuilderTest.kt
@@ -15,7 +15,6 @@
* limitations under the License.
*/
-
package com.google.devtools.ksp.gradle.model.builder
import com.google.devtools.ksp.gradle.model.Ksp
@@ -30,4 +29,4 @@ class KspModelBuilderTest {
assertTrue(modelBuilder.canBuild(Ksp::class.java.name))
assertFalse(modelBuilder.canBuild("wrongModel"))
}
-} \ No newline at end of file
+}
diff --git a/gradle-plugin/src/test/kotlin/com/google/devtools/ksp/gradle/testing/DependencyDeclaration.kt b/gradle-plugin/src/test/kotlin/com/google/devtools/ksp/gradle/testing/DependencyDeclaration.kt
index b21a861b..02ffae27 100644
--- a/gradle-plugin/src/test/kotlin/com/google/devtools/ksp/gradle/testing/DependencyDeclaration.kt
+++ b/gradle-plugin/src/test/kotlin/com/google/devtools/ksp/gradle/testing/DependencyDeclaration.kt
@@ -26,7 +26,7 @@ data class DependencyDeclaration private constructor(
val configuration: String,
val dependency: String
) {
- fun toCode() = "${configuration}($dependency)"
+ fun toCode() = "$configuration($dependency)"
companion object {
/**
@@ -47,5 +47,4 @@ data class DependencyDeclaration private constructor(
fun files(configuration: String, path: String) =
DependencyDeclaration(configuration, "files(\"$path\")")
}
-
-} \ No newline at end of file
+}
diff --git a/gradle-plugin/src/test/kotlin/com/google/devtools/ksp/gradle/testing/KspIntegrationTestRule.kt b/gradle-plugin/src/test/kotlin/com/google/devtools/ksp/gradle/testing/KspIntegrationTestRule.kt
index 752400b9..cfbcb778 100644
--- a/gradle-plugin/src/test/kotlin/com/google/devtools/ksp/gradle/testing/KspIntegrationTestRule.kt
+++ b/gradle-plugin/src/test/kotlin/com/google/devtools/ksp/gradle/testing/KspIntegrationTestRule.kt
@@ -82,10 +82,12 @@ class KspIntegrationTestRule(
* Sets up the app module as a jvm app, adding necessary plugin dependencies.
*/
fun setupAppAsJvmApp() {
- testProject.appModule.plugins.addAll(listOf(
- PluginDeclaration.kotlin("jvm", testConfig.kotlinBaseVersion),
- PluginDeclaration.id("com.google.devtools.ksp", testConfig.kspVersion)
- ))
+ testProject.appModule.plugins.addAll(
+ listOf(
+ PluginDeclaration.kotlin("jvm", testConfig.kotlinBaseVersion),
+ PluginDeclaration.id("com.google.devtools.ksp", testConfig.kspVersion)
+ )
+ )
}
/**
@@ -93,17 +95,19 @@ class KspIntegrationTestRule(
* file and necessary gradle configuration.
*/
fun setupAppAsAndroidApp() {
- testProject.appModule.plugins.addAll(listOf(
- PluginDeclaration.id("com.android.application", testConfig.androidBaseVersion),
- PluginDeclaration.kotlin("android", testConfig.kotlinBaseVersion),
- PluginDeclaration.id("com.google.devtools.ksp", testConfig.kspVersion)
- ))
+ testProject.appModule.plugins.addAll(
+ listOf(
+ PluginDeclaration.id("com.android.application", testConfig.androidBaseVersion),
+ PluginDeclaration.kotlin("android", testConfig.kotlinBaseVersion),
+ PluginDeclaration.id("com.google.devtools.ksp", testConfig.kspVersion)
+ )
+ )
testProject.appModule.buildFileAdditions.add(
"""
android {
compileSdkVersion="android-29"
}
- """.trimIndent()
+ """.trimIndent()
)
testProject.appModule.moduleRoot.resolve("src/main/AndroidManifest.xml")
.also {
@@ -114,7 +118,7 @@ class KspIntegrationTestRule(
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.kspandroidtestapp">
</manifest>
- """.trimIndent()
+ """.trimIndent()
)
}
diff --git a/gradle-plugin/src/test/kotlin/com/google/devtools/ksp/gradle/testing/TestProject.kt b/gradle-plugin/src/test/kotlin/com/google/devtools/ksp/gradle/testing/TestProject.kt
index 9af2222a..eb4dc68f 100644
--- a/gradle-plugin/src/test/kotlin/com/google/devtools/ksp/gradle/testing/TestProject.kt
+++ b/gradle-plugin/src/test/kotlin/com/google/devtools/ksp/gradle/testing/TestProject.kt
@@ -67,7 +67,7 @@ class TestProject(
maven("https://maven.pkg.jetbrains.space/kotlin/p/kotlin/bootstrap/")
}
}
- """.trimIndent()
+ """.trimIndent()
rootDir.resolve("settings.gradle.kts").writeText(contents)
}
@@ -109,7 +109,7 @@ class TestProject(
}
}
}
- """.trimIndent()
+ """.trimIndent()
)
}
rootDir.resolve("build.gradle.kts").writeText(rootBuildFile)