Skip to content

Commit

Permalink
Make tasks public
Browse files Browse the repository at this point in the history
  • Loading branch information
fzhinkin committed Mar 26, 2024
1 parent 144c317 commit e94154b
Show file tree
Hide file tree
Showing 6 changed files with 55 additions and 22 deletions.
30 changes: 30 additions & 0 deletions api/binary-compatibility-validator.api
Original file line number Diff line number Diff line change
Expand Up @@ -91,6 +91,36 @@ public class kotlinx/validation/KotlinApiCompareTask : org/gradle/api/DefaultTas
public final fun setProjectApiFile (Ljava/io/File;)V
}

public abstract class kotlinx/validation/KotlinKlibAbiBuildTask : kotlinx/validation/BuildTaskBase {
public fun <init> ()V
public abstract fun getKlibFile ()Lorg/gradle/api/file/ConfigurableFileCollection;
public abstract fun getOutputAbiFile ()Lorg/gradle/api/file/RegularFileProperty;
public final fun getSignatureVersion ()Lorg/gradle/api/provider/Property;
public abstract fun getTarget ()Lorg/gradle/api/provider/Property;
}

public abstract class kotlinx/validation/KotlinKlibExtractAbiTask : org/gradle/api/DefaultTask {
public fun <init> ()V
public abstract fun getInputAbiFile ()Lorg/gradle/api/file/RegularFileProperty;
public abstract fun getOutputAbiFile ()Lorg/gradle/api/file/RegularFileProperty;
public abstract fun getRequiredTargets ()Lorg/gradle/api/provider/ListProperty;
public final fun getStrictValidation ()Lorg/gradle/api/provider/Property;
}

public abstract class kotlinx/validation/KotlinKlibInferAbiTask : org/gradle/api/DefaultTask {
public fun <init> ()V
public abstract fun getInputDumps ()Lorg/gradle/api/provider/ListProperty;
public abstract fun getOldMergedKlibDump ()Lorg/gradle/api/file/RegularFileProperty;
public abstract fun getOutputAbiFile ()Lorg/gradle/api/file/RegularFileProperty;
public abstract fun getTarget ()Lorg/gradle/api/provider/Property;
}

public abstract class kotlinx/validation/KotlinKlibMergeAbiTask : org/gradle/api/DefaultTask {
public fun <init> ()V
public abstract fun getDumps ()Lorg/gradle/api/provider/ListProperty;
public abstract fun getMergedApiFile ()Lorg/gradle/api/file/RegularFileProperty;
}

public final class kotlinx/validation/_UtilsKt {
public static final fun toKlibTarget (Lorg/jetbrains/kotlin/gradle/plugin/KotlinTarget;)Lkotlinx/validation/api/klib/KlibTarget;
}
Expand Down
8 changes: 4 additions & 4 deletions src/main/kotlin/BinaryCompatibilityValidatorPlugin.kt
Original file line number Diff line number Diff line change
Expand Up @@ -539,7 +539,7 @@ private class KlibValidationPipelineBuilder(
val buildTargetAbi = configureKlibCompilation(mainCompilation, extension, targetConfig,
target, apiBuildDir)
generatedDumps.add(GeneratedDump(target,
objects.fileProperty().also { it.set(buildTargetAbi.flatMap { it.outputApiFile }) }))
objects.fileProperty().also { it.set(buildTargetAbi.flatMap { it.outputAbiFile }) }))
return@configureEach
}
// If the target is unsupported, the regular merge task will only depend on a task complaining about
Expand All @@ -559,7 +559,7 @@ private class KlibValidationPipelineBuilder(
proxy.configure { it.inputDumps.addAll(generatedDumps) }
inferredDumps.add(GeneratedDump(currentTarget.toKlibTarget(),
objects.fileProperty().also {
it.set(proxy.flatMap { it.outputApiFile })
it.set(proxy.flatMap { it.outputAbiFile })
}))
}
}
Expand Down Expand Up @@ -620,7 +620,7 @@ private class KlibValidationPipelineBuilder(
this.target.set(target)
klibFile.from(project.provider { compilation.output.classesDirs })
signatureVersion.set(extension.klib.signatureVersion)
outputApiFile.set(apiBuildDir.resolve(klibDumpFileName))
outputAbiFile.set(apiBuildDir.resolve(klibDumpFileName))
}
return buildTask
}
Expand Down Expand Up @@ -653,7 +653,7 @@ private class KlibValidationPipelineBuilder(
group = "other"
target.set(unsupportedTarget)
oldMergedKlibDump.set(klibApiDir.get().resolve(klibDumpFileName))
outputApiFile.set(apiBuildDir.resolve(klibDumpFileName))
outputAbiFile.set(apiBuildDir.resolve(klibDumpFileName))
}
}
}
Expand Down
14 changes: 9 additions & 5 deletions src/main/kotlin/KotlinKlibAbiBuildTask.kt
Original file line number Diff line number Diff line change
Expand Up @@ -17,12 +17,10 @@ import org.gradle.api.tasks.TaskAction
/**
* Generates a text file with a KLib ABI dump for a single klib.
*/
internal abstract class KotlinKlibAbiBuildTask : BuildTaskBase() {
@get:OutputFile
public abstract val outputApiFile: RegularFileProperty
public abstract class KotlinKlibAbiBuildTask : BuildTaskBase() {

/**
* Collection consisting of a single path to compiled klib (either file, or directory).
* Collection consisting of a single path to a compiled klib (either file, or directory).
*/
@get:InputFiles
public abstract val klibFile: ConfigurableFileCollection
Expand All @@ -41,10 +39,16 @@ internal abstract class KotlinKlibAbiBuildTask : BuildTaskBase() {
@get:Input
public abstract val target: Property<KlibTarget>

/**
* A path to the resulting dump file.
*/
@get:OutputFile
public abstract val outputAbiFile: RegularFileProperty

@OptIn(ExperimentalBCVApi::class)
@TaskAction
internal fun generate() {
val outputFile = outputApiFile.asFile.get()
val outputFile = outputAbiFile.asFile.get()
outputFile.delete()
outputFile.parentFile.mkdirs()

Expand Down
15 changes: 7 additions & 8 deletions src/main/kotlin/KotlinKlibExtractAbiTask.kt
Original file line number Diff line number Diff line change
Expand Up @@ -20,20 +20,13 @@ import org.gradle.api.tasks.*
* If some targets the dump stored in a project directory was generated for are not supported by the host compiler,
* only supported tasks could be extracted for further validation.
*/
internal abstract class KotlinKlibExtractAbiTask : DefaultTask() {

public abstract class KotlinKlibExtractAbiTask : DefaultTask() {
/**
* Merged KLib dump that should be filtered by this task.
*/
@get:InputFile
public abstract val inputAbiFile: RegularFileProperty

/**
* A path to the resulting dump file.
*/
@get:OutputFile
public abstract val outputAbiFile: RegularFileProperty

/**
* List of the targets that the resulting dump should contain.
*/
Expand All @@ -46,6 +39,12 @@ internal abstract class KotlinKlibExtractAbiTask : DefaultTask() {
@get:Input
public val strictValidation: Property<Boolean> = project.objects.property(Boolean::class.java).convention(false)

/**
* A path to the resulting dump file.
*/
@get:OutputFile
public abstract val outputAbiFile: RegularFileProperty

@OptIn(ExperimentalBCVApi::class)
@TaskAction
internal fun generate() {
Expand Down
6 changes: 3 additions & 3 deletions src/main/kotlin/KotlinKlibInferAbiTask.kt
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ import org.gradle.api.tasks.*
* from it and merged into the common ABI extracted previously.
* The resulting dump is then used as an inferred dump for the unsupported target.
*/
internal abstract class KotlinKlibInferAbiTask : DefaultTask() {
public abstract class KotlinKlibInferAbiTask : DefaultTask() {
/**
* The name of a target to infer a dump for.
*/
Expand All @@ -46,7 +46,7 @@ internal abstract class KotlinKlibInferAbiTask : DefaultTask() {
* A path to an inferred dump file.
*/
@get:OutputFile
public abstract val outputApiFile: RegularFileProperty
public abstract val outputAbiFile: RegularFileProperty

@OptIn(ExperimentalBCVApi::class)
@TaskAction
Expand Down Expand Up @@ -80,7 +80,7 @@ internal abstract class KotlinKlibInferAbiTask : DefaultTask() {
}
}

inferAbi(target.get(), supportedTargetDumps, image).saveTo(outputApiFile.asFile.get())
inferAbi(target.get(), supportedTargetDumps, image).saveTo(outputAbiFile.asFile.get())

logger.warn(
"An ABI dump for target ${target.get()} was inferred from the ABI generated for the following targets " +
Expand Down
4 changes: 2 additions & 2 deletions src/main/kotlin/KotlinKlibMergeAbiTask.kt
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ import org.gradle.api.tasks.*
/**
* Merges multiple individual KLib ABI dumps into a single merged dump.
*/
internal abstract class KotlinKlibMergeAbiTask : DefaultTask() {
public abstract class KotlinKlibMergeAbiTask : DefaultTask() {
/**
* Dumps to merge.
*
Expand All @@ -26,7 +26,7 @@ internal abstract class KotlinKlibMergeAbiTask : DefaultTask() {
public abstract val dumps: ListProperty<GeneratedDump>

/**
* A path to a resulting merged dump.
* A path to a resulting merged dump file.
*/
@get:OutputFile
public abstract val mergedApiFile: RegularFileProperty
Expand Down

0 comments on commit e94154b

Please sign in to comment.