You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@felix.apache.org by tj...@apache.org on 2022/09/23 12:40:43 UTC

[felix-atomos] branch master updated: add handling for running build on Windows

This is an automated email from the ASF dual-hosted git repository.

tjwatson pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/felix-atomos.git


The following commit(s) were added to refs/heads/master by this push:
     new 6a71137  add handling for running build on Windows
     new 4d50bad  Merge pull request #70 from fipro78/master
6a71137 is described below

commit 6a7113717944be3c7bb7e917078a2e2daab259ec
Author: Dirk Fauth <di...@gmail.com>
AuthorDate: Thu Sep 22 19:08:57 2022 +0200

    add handling for running build on Windows
---
 .../substrate/impl/NativeImageArgumentsImpl.java    |  2 +-
 .../utils/substrate/impl/NativeImageCliUtil.java    | 21 ++++++++++++++++++---
 2 files changed, 19 insertions(+), 4 deletions(-)

diff --git a/atomos.utils/atomos.utils.substrate.impl/src/main/java/org/apache/felix/atomos/utils/substrate/impl/NativeImageArgumentsImpl.java b/atomos.utils/atomos.utils.substrate.impl/src/main/java/org/apache/felix/atomos/utils/substrate/impl/NativeImageArgumentsImpl.java
index a702164..a7e998c 100644
--- a/atomos.utils/atomos.utils.substrate.impl/src/main/java/org/apache/felix/atomos/utils/substrate/impl/NativeImageArgumentsImpl.java
+++ b/atomos.utils/atomos.utils.substrate.impl/src/main/java/org/apache/felix/atomos/utils/substrate/impl/NativeImageArgumentsImpl.java
@@ -121,7 +121,7 @@ public class NativeImageArgumentsImpl implements DefaultNativeImageArguments
             .map(Path::toAbsolutePath)//
             .sorted(NativeImageArgumentsImpl::byAbsolutePath)//
             .map(Path::toString)//
-            .collect(Collectors.joining(":"));
+            .collect(Collectors.joining(NativeImageCliUtil.isWindows() ? ";" : ":"));
         arguments.add(cp);
 
         //--verbose
diff --git a/atomos.utils/atomos.utils.substrate.impl/src/main/java/org/apache/felix/atomos/utils/substrate/impl/NativeImageCliUtil.java b/atomos.utils/atomos.utils.substrate.impl/src/main/java/org/apache/felix/atomos/utils/substrate/impl/NativeImageCliUtil.java
index 7bbcda2..5b9eee2 100644
--- a/atomos.utils/atomos.utils.substrate.impl/src/main/java/org/apache/felix/atomos/utils/substrate/impl/NativeImageCliUtil.java
+++ b/atomos.utils/atomos.utils.substrate.impl/src/main/java/org/apache/felix/atomos/utils/substrate/impl/NativeImageCliUtil.java
@@ -34,6 +34,17 @@ public class NativeImageCliUtil
 
     private static final String JAVA_HOME = "java.home";
 
+    public static final String OS;
+    private static final String EXECUTABLE;
+    static {
+    	OS = System.getProperty("os.name");
+    	EXECUTABLE =  isWindows() ? "native-image.cmd" : "native-image";
+    }
+
+    public static boolean isWindows() {
+    	return (OS != null && OS.startsWith("Windows"));
+    }
+    
     public static Path execute(final Path outputDir,
         final BaseNativeImageArguments arguments) throws Exception
     {
@@ -52,7 +63,11 @@ public class NativeImageCliUtil
                 + "' with the path as an environment variable");
         }
 
-        final Path resultFile = executionDir.resolve(arguments.name());
+        String resultFileName = arguments.name();
+        if (isWindows()) {
+        	resultFileName += ".exe";
+        }
+        final Path resultFile = executionDir.resolve(resultFileName);
 
         final List<String> commands = new ArrayList<>();
         commands.add(exec.get().toAbsolutePath().toString());
@@ -91,7 +106,7 @@ public class NativeImageCliUtil
     {
         if (path == null)
         {
-            Optional<Path> oExec = findNativeImageExecutable(Paths.get("native-image"));
+            Optional<Path> oExec = findNativeImageExecutable(Paths.get(EXECUTABLE));
             if (oExec.isPresent())
             {
                 return oExec;
@@ -122,7 +137,7 @@ public class NativeImageCliUtil
         else if (Files.isDirectory(path))
         {
             final Optional<Path> candidate = findNativeImageExecutable(
-                path.resolve("native-image"));
+                path.resolve(EXECUTABLE));
             if (candidate.isPresent())
             {
                 return candidate;