/* * Copyright 2024-2025 MicroEJ Corp. All rights reserved. * MicroEJ Corp. PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. */ import com.microej.gradle.tasks.BuildApplicationObjectFileTask import com.microej.gradle.tasks.ExecToolTask import java.nio.file.Files import java.nio.file.StandardCopyOption val groupVariant = (findProperty("groupVariant") as String?)?.let { ".$it" }.orEmpty() group = "com.microej.app.wear$groupVariant" version = "2.0.3" val kdatCompatibilityFile = file("./application.kdat") plugins { alias(libs.plugins.microej.application) } microej { applicationEntryPoint = "com.microej.wear.kernel.Main" architectureUsage = System.getProperty("com.microej.architecture.usage") ?: "prod" produceExecutableDuringBuild() produceVirtualDeviceDuringBuild() // Cannot use SDK plugin 1.2.0 (M0090IDE-4937), use 1.0.0 and skip license check temporarily skippedCheckers = "license" } dependencies { implementation(libs.microej.edc) implementation(libs.microej.bon) implementation(libs.microej.kf) implementation(libs.microej.sni) implementation(libs.microej.microui) implementation(libs.microej.drawing) implementation(libs.microej.microvg) implementation(libs.microej.bluetooth) implementation(libs.microej.mwt) implementation(libs.microej.widget) implementation(libs.microej.motion) implementation(libs.microej.time) implementation(libs.microej.io) implementation(libs.microej.bluetooth.util) implementation(libs.microej.logging) implementation(libs.microej.collections) implementation(libs.microej.transformed.image.painter) implementation(libs.veewear.services) implementation(libs.veewear.util) implementation(libs.veewear.companion.protocol) implementation(libs.veewear.companion.server) implementation("com.microej.kernelapi:edc:1.1.0") implementation("com.microej.kernelapi:bon:1.4.0") implementation("com.microej.kernelapi:kf:2.1.0") implementation("com.microej.kernelapi:trace:1.0.0") implementation("com.microej.kernelapi:microui:3.6.0") implementation("com.microej.kernelapi:drawing:1.1.0") implementation("com.microej.kernelapi:microvg:1.5.0") implementation("com.microej.kernelapi:bluetooth:2.3.0") implementation("com.microej.kernelapi:transformed-image-painter:1.0.1") implementation("com.microej.kernelapi:mwt:2.4.0") val veeportVariant = findProperty("veeportVariant") as String? if (veeportVariant != null) { val file = File(veeportVariant) if (file.exists()) { microejVee(files(veeportVariant)) } else { microejVee(veeportVariant) } } } val artifact = findProperty("kernelArtifact") as String? if (artifact != null) { publishing.publications.named("microej", MavenPublication::class) { artifact( tasks.withType().first().executableDir.file(artifact) ) } } tasks.configureEach { if (this is BuildApplicationObjectFileTask) { run { if (kdatCompatibilityFile.exists()) { systemProperties.put( "microej.option.com.microej.soar.kernel.featureportabilitycontrol.metadata.path", kdatCompatibilityFile.absolutePath ) systemProperties.put( "microej.option.com.microej.soar.kernel.featureportabilitycontrol.enabled", "true" ) } } } } tasks.register("generateKDat") { val execGenFile = file("build/application/executable/application.out") val kdatGenFile = file("build/application/executable/application.kdat") inputs.file(execGenFile) outputs.file(kdatGenFile) dependsOn("buildExecutable") doLast { val execToolTask = tasks.named("execTool").get() as ExecToolTask execToolTask.toolName = "kernelMetadataGenerator" val props = ArrayList() props.add("kernel.filename=" + execGenFile.absolutePath) execToolTask.setToolProperty(props) execToolTask.actions.forEach { it.execute(execToolTask) } if (kdatGenFile.exists()) { Files.copy(kdatGenFile.toPath(), kdatCompatibilityFile.toPath(), StandardCopyOption.REPLACE_EXISTING) } } }