diff --git a/gdx-jnigen/src/main/java/com/badlogic/gdx/jnigen/build/toolchains/AndroidToolchain.java b/gdx-jnigen/src/main/java/com/badlogic/gdx/jnigen/build/toolchains/AndroidToolchain.java index a6cfe93d..fd23f807 100644 --- a/gdx-jnigen/src/main/java/com/badlogic/gdx/jnigen/build/toolchains/AndroidToolchain.java +++ b/gdx-jnigen/src/main/java/com/badlogic/gdx/jnigen/build/toolchains/AndroidToolchain.java @@ -81,13 +81,13 @@ public void compile () { StringBuilder headerDirs = new StringBuilder(); for (String headerDir : target.headerDirs) { - headerDirs.append(convertPathToAbsolute(headerDir).getAbsolutePath()); + headerDirs.append(convertToAbsoluteRelativeTo(config.projectDir, headerDir).getAbsolutePath()); headerDirs.append(" "); } - headerDirs.append("jni-headers"); - headerDirs.append(" jni-headers/" + target.os.getJniPlatform()); - headerDirs.append(" jni-headers/" + "linux"); - headerDirs.append(" ."); + headerDirs.append(convertToAbsoluteRelativeTo(config.jniDir, "jni-headers")); + headerDirs.append(" " + convertToAbsoluteRelativeTo(config.jniDir, "jni-headers/" + target.os.getJniPlatform())); + headerDirs.append(" " + convertToAbsoluteRelativeTo(config.jniDir, "jni-headers/" + "linux")); + headerDirs.append(" " + convertToAbsoluteRelativeTo(config.jniDir, ".")); template = template.replace("%sharedLibName%", config.sharedLibName); template = template.replace("%headerDirs%", headerDirs); @@ -102,7 +102,7 @@ public void compile () { ArrayList args = new ArrayList<>(); args.add("NDK_PROJECT_PATH=" + buildDirectory.getAbsolutePath()); - args.add("NDK_APPLICATION_MK =" + new File(buildDirectory, "Application.mk").getAbsolutePath()); + args.add("NDK_APPLICATION_MK=" + new File(buildDirectory, "Application.mk").getAbsolutePath()); args.add("APP_BUILD_SCRIPT=" + new File(buildDirectory, "Android.mk").getAbsolutePath()); args.add("NDK_OUT=" + buildDirectory.getAbsolutePath()); args.add("NDK_LIBS_OUT=" + libsDirectory.getAbsolutePath()); diff --git a/gdx-jnigen/src/main/java/com/badlogic/gdx/jnigen/build/toolchains/BaseToolchain.java b/gdx-jnigen/src/main/java/com/badlogic/gdx/jnigen/build/toolchains/BaseToolchain.java index 8663b6d0..64cb87da 100644 --- a/gdx-jnigen/src/main/java/com/badlogic/gdx/jnigen/build/toolchains/BaseToolchain.java +++ b/gdx-jnigen/src/main/java/com/badlogic/gdx/jnigen/build/toolchains/BaseToolchain.java @@ -3,6 +3,7 @@ import com.badlogic.gdx.jnigen.AntPathMatcher; import com.badlogic.gdx.jnigen.BuildConfig; import com.badlogic.gdx.jnigen.BuildTarget; +import com.badlogic.gdx.jnigen.FileDescriptor; import com.badlogic.gdx.jnigen.build.RuntimeEnv; import com.badlogic.gdx.jnigen.build.ToolchainExecutor; import org.slf4j.Logger; @@ -16,7 +17,6 @@ import java.util.Arrays; import java.util.Collection; import java.util.List; -import java.util.stream.Collectors; public abstract class BaseToolchain { @@ -208,13 +208,13 @@ public FileVisitResult postVisitDirectory (Path dir, IOException exc) { - protected File convertPathToAbsolute (String path) { + protected File convertToAbsoluteRelativeTo (FileDescriptor rootRelative, String path) { //Path might be a relative path or an absolute, if its absolute just wrap, otherwise convert it to absolute //based around our project directory File file = new File(path); if (!file.isAbsolute()) { - file = new File(config.projectDir.file(), path); + file = new File(rootRelative.file(), path); } else { file = file.getAbsoluteFile(); } diff --git a/gdx-jnigen/src/main/java/com/badlogic/gdx/jnigen/build/toolchains/GNUToolchain.java b/gdx-jnigen/src/main/java/com/badlogic/gdx/jnigen/build/toolchains/GNUToolchain.java index 569a69ab..2b807111 100644 --- a/gdx-jnigen/src/main/java/com/badlogic/gdx/jnigen/build/toolchains/GNUToolchain.java +++ b/gdx-jnigen/src/main/java/com/badlogic/gdx/jnigen/build/toolchains/GNUToolchain.java @@ -8,7 +8,6 @@ import java.io.File; import java.util.ArrayList; -import java.util.Arrays; import java.util.List; /** @@ -60,12 +59,12 @@ private void compileC () { List args = new ArrayList<>(); args.addAll(stringFlagsToArgs(target.cFlags)); - args.add("-Ijni-headers"); - args.add("-Ijni-headers/" + target.os.getJniPlatform()); - args.add("-I."); + args.add("-I" + convertToAbsoluteRelativeTo(config.jniDir, "jni-headers/")); + args.add("-I" + convertToAbsoluteRelativeTo(config.jniDir, "jni-headers/" + target.os.getJniPlatform())); + args.add("-I" + convertToAbsoluteRelativeTo(config.jniDir, ".")); for (String headerDir : target.headerDirs) { - args.add("-I" + convertPathToAbsolute(headerDir).getAbsolutePath()); + args.add("-I" + convertToAbsoluteRelativeTo(config.projectDir, headerDir).getAbsolutePath()); } ArrayList perFileArgs = new ArrayList(); @@ -92,12 +91,12 @@ private void compileCPP () { List args = new ArrayList<>(); args.addAll(stringFlagsToArgs(target.cppFlags)); - args.add("-Ijni-headers/"); - args.add("-Ijni-headers/" + target.os.getJniPlatform()); - args.add("-I."); + args.add("-I" + convertToAbsoluteRelativeTo(config.jniDir, "jni-headers/")); + args.add("-I" + convertToAbsoluteRelativeTo(config.jniDir, "jni-headers/" + target.os.getJniPlatform())); + args.add("-I" + convertToAbsoluteRelativeTo(config.jniDir, ".")); for (String headerDir : target.headerDirs) { - args.add("-I" + convertPathToAbsolute(headerDir).getAbsolutePath()); + args.add("-I" + convertToAbsoluteRelativeTo(config.projectDir, headerDir).getAbsolutePath()); } ArrayList perFileArgs = new ArrayList(); diff --git a/gdx-jnigen/src/main/java/com/badlogic/gdx/jnigen/build/toolchains/IOSToolchain.java b/gdx-jnigen/src/main/java/com/badlogic/gdx/jnigen/build/toolchains/IOSToolchain.java index 8c260d29..a228403c 100644 --- a/gdx-jnigen/src/main/java/com/badlogic/gdx/jnigen/build/toolchains/IOSToolchain.java +++ b/gdx-jnigen/src/main/java/com/badlogic/gdx/jnigen/build/toolchains/IOSToolchain.java @@ -3,14 +3,12 @@ import com.badlogic.gdx.jnigen.build.ToolFinder; import com.badlogic.gdx.jnigen.build.ToolchainExecutor; import com.badlogic.gdx.utils.Architecture; -import com.badlogic.gdx.utils.Os; import com.badlogic.gdx.utils.TargetType; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import java.io.File; import java.util.ArrayList; -import java.util.Arrays; import java.util.List; /** @@ -85,15 +83,15 @@ private void compileC () { args.addAll(stringFlagsToArgs(target.cFlags)); - - args.add("-Ijni-headers"); - args.add("-Ijni-headers/" + target.os.getJniPlatform()); - args.add("-I."); - args.add("-g"); + args.add("-I" + convertToAbsoluteRelativeTo(config.jniDir, "jni-headers")); + args.add("-I" + convertToAbsoluteRelativeTo(config.jniDir, "jni-headers/" + target.os.getJniPlatform())); + args.add("-I" + convertToAbsoluteRelativeTo(config.jniDir, ".")); for (String headerDir : target.headerDirs) { - args.add("-I" + convertPathToAbsolute(headerDir).getAbsolutePath()); + args.add("-I" + convertToAbsoluteRelativeTo(config.projectDir, headerDir).getAbsolutePath()); } + args.add("-g"); + ArrayList perFileArgs = new ArrayList(); perFileArgs.addAll(args); @@ -134,14 +132,15 @@ private void compileCPP () { args.addAll(stringFlagsToArgs(target.cppFlags)); - args.add("-Ijni-headers"); - args.add("-Ijni-headers/" + target.os.getJniPlatform()); - args.add("-I."); - args.add("-g"); + args.add("-I" + convertToAbsoluteRelativeTo(config.jniDir, "jni-headers")); + args.add("-I" + convertToAbsoluteRelativeTo(config.jniDir, "jni-headers/" + target.os.getJniPlatform())); + args.add("-I" + convertToAbsoluteRelativeTo(config.jniDir, ".")); for (String headerDir : target.headerDirs) { - args.add("-I" + convertPathToAbsolute(headerDir).getAbsolutePath()); + args.add("-I" + convertToAbsoluteRelativeTo(config.projectDir, headerDir).getAbsolutePath()); } + args.add("-g"); + ArrayList perFileArgs = new ArrayList(); perFileArgs.addAll(args); diff --git a/gdx-jnigen/src/main/java/com/badlogic/gdx/jnigen/build/toolchains/MSVCToolchain.java b/gdx-jnigen/src/main/java/com/badlogic/gdx/jnigen/build/toolchains/MSVCToolchain.java index 66649e80..39b12137 100644 --- a/gdx-jnigen/src/main/java/com/badlogic/gdx/jnigen/build/toolchains/MSVCToolchain.java +++ b/gdx-jnigen/src/main/java/com/badlogic/gdx/jnigen/build/toolchains/MSVCToolchain.java @@ -9,7 +9,6 @@ import java.io.File; import java.util.ArrayList; -import java.util.Arrays; import java.util.List; /** @@ -204,11 +203,11 @@ private void compileC () { for (String msvcIncludeDirectory : msvcIncludeDirectories) { args.add("/I" + msvcIncludeDirectory); } - args.add("/Ijni-headers"); - args.add("/Ijni-headers/" + target.os.getJniPlatform()); - args.add("/I."); + args.add("/I" + convertToAbsoluteRelativeTo(config.jniDir, "jni-headers")); + args.add("/I" + convertToAbsoluteRelativeTo(config.jniDir, "jni-headers/" + target.os.getJniPlatform())); + args.add("/I" + convertToAbsoluteRelativeTo(config.jniDir, ".")); for (String headerDir : target.headerDirs) { - args.add("/I" + convertPathToAbsolute(headerDir).getAbsolutePath()); + args.add("/I" + convertToAbsoluteRelativeTo(config.projectDir, headerDir).getAbsolutePath()); } ArrayList perFileArgs = new ArrayList(); @@ -239,11 +238,11 @@ private void compileCPP () { for (String msvcIncludeDirectory : msvcIncludeDirectories) { args.add("/I" + msvcIncludeDirectory); } - args.add("/Ijni-headers"); - args.add("/Ijni-headers/" + target.os.getJniPlatform()); - args.add("/I."); + args.add("/I" + convertToAbsoluteRelativeTo(config.jniDir, "jni-headers")); + args.add("/I" + convertToAbsoluteRelativeTo(config.jniDir, "jni-headers/" + target.os.getJniPlatform())); + args.add("/I" + convertToAbsoluteRelativeTo(config.jniDir, ".")); for (String headerDir : target.headerDirs) { - args.add("/I" + convertPathToAbsolute(headerDir).getAbsolutePath()); + args.add("/I" + convertToAbsoluteRelativeTo(config.projectDir, headerDir).getAbsolutePath()); } ArrayList perFileArgs = new ArrayList();