From 8873ed0b2542a615cd7b8c81353b38b8d5b2afbb Mon Sep 17 00:00:00 2001 From: Stephanie Gawroriski Date: Sat, 13 Apr 2024 23:15:39 +0000 Subject: [PATCH] Correct cherry picking of emulator-base's build configuration; Allow blank string to be used for no output file. --- .idea/compiler.xml | 2 ++ .../plugin/general/cmake/CMakeBuildTask.java | 4 ++++ emulators/emulator-base/build.gradle | 21 +++++++++++++++++---- 3 files changed, 23 insertions(+), 4 deletions(-) diff --git a/.idea/compiler.xml b/.idea/compiler.xml index 4bd82bbeae..8172a19d10 100644 --- a/.idea/compiler.xml +++ b/.idea/compiler.xml @@ -34,6 +34,7 @@ + @@ -48,6 +49,7 @@ + diff --git a/buildSrc/src/main/java/cc/squirreljme/plugin/general/cmake/CMakeBuildTask.java b/buildSrc/src/main/java/cc/squirreljme/plugin/general/cmake/CMakeBuildTask.java index dd03ac5c2b..8bb6249fb4 100644 --- a/buildSrc/src/main/java/cc/squirreljme/plugin/general/cmake/CMakeBuildTask.java +++ b/buildSrc/src/main/java/cc/squirreljme/plugin/general/cmake/CMakeBuildTask.java @@ -62,6 +62,10 @@ public class CMakeBuildTask if (rule == null) throw new NullPointerException("NARG"); + // Blank? + if (__outputFile.isEmpty()) + __outputFile = null; + // Set source for later this.cmakeSource = __source; this.cmakeRules = Collections.unmodifiableList(__rules); diff --git a/emulators/emulator-base/build.gradle b/emulators/emulator-base/build.gradle index fbbc9df899..a11384d4e4 100644 --- a/emulators/emulator-base/build.gradle +++ b/emulators/emulator-base/build.gradle @@ -40,7 +40,19 @@ Provider libNativeEmulatorBase = tasks.register( System.mapLibraryName("emulator-base"), ["libEmulatorBase"]) -Provider mimeDecode =tasks.register( +// Native implementations +Provider libsNativeNanoCoat = tasks.register( + "libsNativeNanoCoat", + CMakeBuildTask.class, + rootProject.getProjectDir().toPath().resolve("nanocoat"), + "", + ["BaseStatic"]) + +// The base library needs to exist first +libNativeEmulatorBase.get().dependsOn(libsNativeNanoCoat) + +// Decoding of mime resources +Provider mimeDecode = tasks.register( "mimeDecode", MimeDecodeResourcesTask.class, "main", tasks.named("processResources").get(), @@ -48,17 +60,18 @@ Provider mimeDecode =tasks.register( processResources.dependsOn(mimeDecode) processResources.dependsOn(libNativeEmulatorBase) - -jar.dependsOn(mimeDecode) +processResources.dependsOn(libsNativeNanoCoat) compileJava.dependsOn(libNativeEmulatorBase) +compileJava.dependsOn(libsNativeNanoCoat) mimeDecode.get().dependsOn(libNativeEmulatorBase) +mimeDecode.get().dependsOn(libsNativeNanoCoat) // We need the native library in the JAR before we can properly use it // But we can compile the Java code just fine without it jar { - dependsOn libNativeEmulatorBase + dependsOn mimeDecode, libNativeEmulatorBase, libsNativeNanoCoat from libNativeEmulatorBase.get().cmakeOutFile.toFile() into "/" -- 2.11.4.GIT