From bd5aba46e8103d1546b213dabf127023b0fcabb2 Mon Sep 17 00:00:00 2001 From: Stef Tervelde Date: Wed, 2 Jul 2025 09:50:39 +0200 Subject: [PATCH] Allowing libraries folder to not exist, but log instead --- java/gradle/src/main/kotlin/LibrariesTask.kt | 7 ++++++- java/gradle/src/main/kotlin/ProcessingPlugin.kt | 2 +- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/java/gradle/src/main/kotlin/LibrariesTask.kt b/java/gradle/src/main/kotlin/LibrariesTask.kt index a6e932500..57f09bfdd 100644 --- a/java/gradle/src/main/kotlin/LibrariesTask.kt +++ b/java/gradle/src/main/kotlin/LibrariesTask.kt @@ -4,6 +4,7 @@ import org.gradle.api.DefaultTask import org.gradle.api.file.DirectoryProperty import org.gradle.api.file.RegularFileProperty import org.gradle.api.tasks.InputDirectory +import org.gradle.api.tasks.Optional import org.gradle.api.tasks.OutputFile import org.gradle.api.tasks.TaskAction import java.io.File @@ -16,8 +17,8 @@ This task stores the resulting information in a file that can be used later to r */ abstract class LibrariesTask : DefaultTask() { - // TODO: Allow this directory to not exist @InputDirectory + @Optional val librariesDirectory: DirectoryProperty = project.objects.directoryProperty() @OutputFile @@ -38,6 +39,10 @@ abstract class LibrariesTask : DefaultTask() { @TaskAction fun execute() { + if (!librariesDirectory.isPresent) { + logger.error("Libraries directory is not set. Libraries will not be imported.") + return + } val libraries = librariesDirectory.get().asFile .listFiles { file -> file.isDirectory } ?.map { folder -> diff --git a/java/gradle/src/main/kotlin/ProcessingPlugin.kt b/java/gradle/src/main/kotlin/ProcessingPlugin.kt index cc3be4860..5d1115dcf 100644 --- a/java/gradle/src/main/kotlin/ProcessingPlugin.kt +++ b/java/gradle/src/main/kotlin/ProcessingPlugin.kt @@ -139,7 +139,7 @@ class ProcessingPlugin @Inject constructor(private val objectFactory: ObjectFact val librariesTaskName = sourceSet.getTaskName("scanLibraries", "PDE") val librariesScan = project.tasks.register(librariesTaskName, LibrariesTask::class.java) { task -> task.description = "Scans the libraries in the sketchbook" - task.librariesDirectory.set(File(sketchbook, "libraries")) + task.librariesDirectory.set(sketchbook?.let { File(it, "libraries") }) } val pdeTaskName = sourceSet.getTaskName("preprocess", "PDE")