[buildSrc] add screenshot helper for plain kotlin projects
This commit is contained in:
@@ -4,15 +4,12 @@ plugins {
|
||||
}
|
||||
|
||||
sourceSets {
|
||||
|
||||
val preload by creating {
|
||||
this.java {
|
||||
srcDir("src/preload/kotlin")
|
||||
}
|
||||
}
|
||||
val main by getting {
|
||||
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -1,10 +1,14 @@
|
||||
import org.gradle.api.DefaultTask
|
||||
import org.gradle.api.Project
|
||||
import org.gradle.api.Script
|
||||
import org.gradle.api.Task
|
||||
import org.gradle.api.file.DirectoryProperty
|
||||
import org.gradle.api.file.FileCollection
|
||||
import org.gradle.api.file.FileType
|
||||
import org.gradle.api.provider.ListProperty
|
||||
import org.gradle.api.provider.Property
|
||||
import org.gradle.api.tasks.*
|
||||
import org.gradle.kotlin.dsl.get
|
||||
import org.gradle.kotlin.dsl.register
|
||||
import org.gradle.work.Incremental
|
||||
import org.gradle.work.InputChanges
|
||||
@@ -103,5 +107,15 @@ object ScreenshotsHelper {
|
||||
return task
|
||||
|
||||
}
|
||||
|
||||
fun collectScreenshots(project: Project, sourceSet: SourceSet, config: CollectScreenshotsTask.() -> Unit): CollectScreenshotsTask {
|
||||
val task = project.tasks.register<CollectScreenshotsTask>("collectScreenshots").get()
|
||||
task.outputDir.set(project.file(project.projectDir.toString() + "/images"))
|
||||
task.inputDir.set(File(project.buildDir, "classes/kotlin/${sourceSet.name}"))
|
||||
task.runtimeDependencies.set(sourceSet.runtimeClasspath)
|
||||
task.config()
|
||||
task.dependsOn(sourceSet.output)
|
||||
return task
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1,18 +1,14 @@
|
||||
package org.openrndr
|
||||
|
||||
import org.openrndr.ApplicationPreload
|
||||
import org.openrndr.extensions.SingleScreenshot
|
||||
|
||||
/**
|
||||
* This [Preload] class is used by the [CollectScreenshots] task to inject the [SingleScreenshot] extension
|
||||
*/
|
||||
class Preload : ApplicationPreload() {
|
||||
override fun onConfiguration(configuration: Configuration) {
|
||||
// configuration.width = 1280
|
||||
// configuration.height = 720
|
||||
}
|
||||
override fun onProgramSetup(program: Program) {
|
||||
println("installing single screenshot extension at 0")
|
||||
program.extensions.add(0, SingleScreenshot().apply {
|
||||
program.extend(SingleScreenshot()) {
|
||||
this.outputFile = System.getProperty("screenshotPath")
|
||||
setup(program)
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user