All Downloads are FREE. Search and download functionalities are using the official Maven repository.

godot.gradle.tasks.graal.GraalProjectExtensions.kt Maven / Gradle / Ivy

There is a newer version: 0.11.0-4.3
Show newest version
package godot.gradle.tasks.graal

import godot.gradle.GodotExtension
import godot.gradle.projectExt.godotJvmExtension
import org.gradle.api.Project
import org.jetbrains.kotlin.gradle.internal.ensureParentDirsCreated
import java.io.File
import java.io.InputStream

fun Project.copyToGraalFromPluginResourceIfDoesNotExists(file: File, resourcePath: String) {
    if (file.exists()) return

    val resource =
        GodotExtension::class.java.getResource(resourcePath)?.content
    require(resource is InputStream)
    file.ensureParentDirsCreated()
    file.createNewFile()
    file.writeBytes(resource.readAllBytes())
}

fun Project.getGraalVmAdditionalJniConfigs(): String {
    val additionalJniConfiguration = godotJvmExtension.additionalGraalJniConfigurationFiles.get()
        .map {
            projectDir.resolve("graal").resolve(it).absolutePath
        }
    return if (additionalJniConfiguration.isNotEmpty()) {
        additionalJniConfiguration.joinToString(separator = ",")
    } else {
        ""
    }
}

fun Project.getAdditionalGraalResourceConfigurationFiles() = godotJvmExtension
    .additionalGraalResourceConfigurationFiles
    .getOrElse(arrayOf())
    .joinToString(",")

fun Project.getAdditionalGraalReflectionConfigurationFiles() = godotJvmExtension
    .additionalGraalReflectionConfigurationFiles
    .getOrElse(arrayOf())
    .joinToString(",")




© 2015 - 2025 Weber Informatics LLC | Privacy Policy