[buildSrc] add screenshot helper for plain kotlin projects
This commit is contained in:
@@ -4,15 +4,12 @@ plugins {
|
|||||||
}
|
}
|
||||||
|
|
||||||
sourceSets {
|
sourceSets {
|
||||||
|
|
||||||
val preload by creating {
|
val preload by creating {
|
||||||
this.java {
|
this.java {
|
||||||
srcDir("src/preload/kotlin")
|
srcDir("src/preload/kotlin")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
val main by getting {
|
val main by getting {
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,10 +1,14 @@
|
|||||||
import org.gradle.api.DefaultTask
|
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.DirectoryProperty
|
||||||
import org.gradle.api.file.FileCollection
|
import org.gradle.api.file.FileCollection
|
||||||
import org.gradle.api.file.FileType
|
import org.gradle.api.file.FileType
|
||||||
import org.gradle.api.provider.ListProperty
|
import org.gradle.api.provider.ListProperty
|
||||||
import org.gradle.api.provider.Property
|
import org.gradle.api.provider.Property
|
||||||
import org.gradle.api.tasks.*
|
import org.gradle.api.tasks.*
|
||||||
|
import org.gradle.kotlin.dsl.get
|
||||||
import org.gradle.kotlin.dsl.register
|
import org.gradle.kotlin.dsl.register
|
||||||
import org.gradle.work.Incremental
|
import org.gradle.work.Incremental
|
||||||
import org.gradle.work.InputChanges
|
import org.gradle.work.InputChanges
|
||||||
@@ -103,5 +107,15 @@ object ScreenshotsHelper {
|
|||||||
return task
|
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
|
package org.openrndr
|
||||||
|
|
||||||
import org.openrndr.ApplicationPreload
|
|
||||||
import org.openrndr.extensions.SingleScreenshot
|
import org.openrndr.extensions.SingleScreenshot
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This [Preload] class is used by the [CollectScreenshots] task to inject the [SingleScreenshot] extension
|
||||||
|
*/
|
||||||
class Preload : ApplicationPreload() {
|
class Preload : ApplicationPreload() {
|
||||||
override fun onConfiguration(configuration: Configuration) {
|
|
||||||
// configuration.width = 1280
|
|
||||||
// configuration.height = 720
|
|
||||||
}
|
|
||||||
override fun onProgramSetup(program: Program) {
|
override fun onProgramSetup(program: Program) {
|
||||||
println("installing single screenshot extension at 0")
|
program.extend(SingleScreenshot()) {
|
||||||
program.extensions.add(0, SingleScreenshot().apply {
|
|
||||||
this.outputFile = System.getProperty("screenshotPath")
|
this.outputFile = System.getProperty("screenshotPath")
|
||||||
setup(program)
|
}
|
||||||
})
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user