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")