Skip to content

Commit ba49656

Browse files
committed
Adding tests and direct linking
1 parent e01d02a commit ba49656

File tree

8 files changed

+70
-17
lines changed

8 files changed

+70
-17
lines changed

.idea/jarRepositories.xml

Lines changed: 5 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

java/gradle/build.gradle.kts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,6 @@ plugins{
55
kotlin("jvm") version libs.versions.kotlin
66
}
77

8-
version = rootProject.version
9-
108
repositories {
119
mavenCentral()
1210
}
@@ -17,12 +15,14 @@ dependencies{
1715
implementation(libs.composeGradlePlugin)
1816
implementation(libs.kotlinGradlePlugin)
1917
implementation(libs.kotlinComposePlugin)
18+
19+
testImplementation(libs.junit)
2020
}
2121

2222
gradlePlugin{
2323
plugins{
2424
create("processing"){
25-
id = "org.processing.java.gradle"
25+
id = "processing.java.gradle"
2626
implementationClass = "org.processing.java.gradle.ProcessingPlugin"
2727
}
2828
}

java/gradle/example/build.gradle.kts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
plugins{
2-
id("org.processing.java.gradle") version "4.4.0"
2+
id("processing.java.gradle")
33
}
Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
1+
rootProject.name = "processing-gradle-plugin-demo"
2+
13
pluginManagement {
2-
repositories {
3-
mavenLocal()
4-
gradlePluginPortal()
5-
}
4+
includeBuild("../../../")
65
}

java/gradle/src/main/kotlin/ProcessingPlugin.kt

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,7 @@ import org.gradle.api.plugins.JavaPlugin
1010
import org.gradle.api.plugins.JavaPluginExtension
1111
import org.gradle.api.tasks.JavaExec
1212
import org.jetbrains.compose.ComposeExtension
13-
import org.jetbrains.compose.ComposePlugin
1413
import org.jetbrains.compose.desktop.DesktopExtension
15-
import org.jetbrains.kotlin.konan.properties.saveToFile
1614
import java.io.File
1715
import java.util.*
1816
import javax.inject.Inject
@@ -28,10 +26,13 @@ class ProcessingPlugin @Inject constructor(private val objectFactory: ObjectFact
2826
project.plugins.apply("org.jetbrains.kotlin.jvm")
2927
project.plugins.apply("org.jetbrains.kotlin.plugin.compose")
3028

29+
// TODO: Add to tests
3130
project.dependencies.add("implementation", "org.processing:core:4.4.0")
31+
// TODO: Add tests
3232
project.dependencies.add("implementation", project.fileTree("src").apply { include("**/code/*.jar") })
3333

3434
// Base JOGL and Gluegen dependencies
35+
// TODO: Add only if user is compiling for P2D or P3D
3536
project.dependencies.add("runtimeOnly", "org.jogamp.jogl:jogl-all-main:2.5.0")
3637
project.dependencies.add("runtimeOnly", "org.jogamp.gluegen:gluegen-rt-main:2.5.0")
3738

@@ -65,11 +66,8 @@ class ProcessingPlugin @Inject constructor(private val objectFactory: ObjectFact
6566
application.nativeDistributions.modules("java.management")
6667
}
6768
}
68-
6969
// TODO: Also only do within Processing
70-
project.tasks.named("wrapper").configure {
71-
it.enabled = false
72-
}
70+
project.tasks.findByName("wrapper")?.enabled = false
7371

7472
project.tasks.create("sketch").apply {
7573
group = "processing"
@@ -116,7 +114,6 @@ class ProcessingPlugin @Inject constructor(private val objectFactory: ObjectFact
116114
sourceSet.java.srcDir(outputDirectory)
117115

118116
// TODO: Support multiple sketches?
119-
// TODO: Preprocess PDE files in this step so we can add the library dependencies
120117

121118
val taskName = sourceSet.getTaskName("preprocess", "PDE")
122119
project.tasks.register(taskName, ProcessingTask::class.java) { task ->

java/gradle/src/main/kotlin/ProcessingTask.kt

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ import java.io.UncheckedIOException
1313
import java.util.concurrent.Callable
1414
import javax.inject.Inject
1515

16-
abstract class ProcessingTask() : SourceTask() {
16+
abstract class ProcessingTask : SourceTask() {
1717
@get:OutputDirectory
1818
var outputDirectory: File? = null
1919

@@ -62,6 +62,10 @@ abstract class ProcessingTask() : SourceTask() {
6262

6363
// TODO: Only import the libraries that are actually used
6464
val importStatement = meta.importStatements
65+
66+
// for (import in importStatement) {
67+
// project.dependencies.add("implementation", import)
68+
// }
6569
}
6670
}
6771

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
import org.gradle.api.Task
2+
import org.gradle.testfixtures.ProjectBuilder
3+
import org.gradle.testkit.runner.GradleRunner
4+
import org.junit.Rule
5+
import org.junit.Test
6+
import org.junit.rules.TemporaryFolder
7+
8+
class ProcessingPluginTest{
9+
@Test
10+
fun testPluginAddsSketchTask(){
11+
val project = ProjectBuilder.builder().build()
12+
project.pluginManager.apply("processing.java.gradle")
13+
14+
assert(project.tasks.getByName("sketch") is Task)
15+
}
16+
@JvmField
17+
@Rule
18+
val folder: TemporaryFolder = TemporaryFolder()
19+
20+
@Test
21+
fun testPluginOutcome() {
22+
23+
val buildFile = folder.newFile("build.gradle.kts")
24+
buildFile.writeText("""
25+
plugins{
26+
id("processing.java.gradle")
27+
}
28+
""".trimIndent())
29+
30+
val sketchFile = folder.newFile("sketch.pde")
31+
sketchFile.writeText("""
32+
void setup(){
33+
size(100, 100);
34+
}
35+
void draw(){
36+
background(0);
37+
}
38+
""".trimIndent())
39+
40+
val result = GradleRunner.create()
41+
.withProjectDir(folder.root)
42+
.withArguments("build")
43+
.withPluginClasspath()
44+
.build()
45+
46+
assert(folder.root.resolve(".processing/generated/pde/main").exists())
47+
}
48+
}

settings.gradle.kts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,4 +12,4 @@ include(
1212
"java:libraries:pdf",
1313
"java:libraries:serial",
1414
"java:libraries:svg",
15-
)
15+
)

0 commit comments

Comments
 (0)