import com.badlogic.gdx.jnigen.AntScriptGenerator;
import com.badlogic.gdx.jnigen.BuildConfig;
import com.badlogic.gdx.jnigen.BuildTarget;
import com.badlogic.gdx.jnigen.BuildTarget.TargetOs;
import com.badlogic.gdx.jnigen.NativeCodeGenerator;
public class JniBuilder {
public static void main(String[] args) throws Exception {
String[] headers = { ".", "libtess2/Include" };
String[] sources = {
"gl/utils.c",
"libtess2/Source/bucketalloc.c",
"libtess2/Source/dict.c",
"libtess2/Source/geom.c",
"libtess2/Source/mesh.c",
"libtess2/Source/priorityq.c",
"libtess2/Source/sweep.c",
"libtess2/Source/tess.c",
};
String cflags = " -Wall -std=c99 -O2 -ffast-math";
cflags += " -DNDEBUG"; /* disable debug in libtess2 */
//BuildTarget win32home = BuildTarget
// .newDefaultTarget(TargetOs.Windows, false);
//win32home.compilerPrefix = "";
//win32home.buildFileName = "build-windows32home.xml";
//win32home.excludeFromMasterBuildFile = true;
//win32home.headerDirs = headers;
//win32home.cIncludes = sources;
//win32home.cFlags += cflags;
//win32home.cppFlags += cflags;
BuildTarget win32 = BuildTarget
.newDefaultTarget(TargetOs.Windows, false);
win32.headerDirs = headers;
win32.cIncludes = sources;
win32.cFlags += cflags;
win32.cppFlags += cflags;
BuildTarget win64 = BuildTarget
.newDefaultTarget(TargetOs.Windows, true);
win64.headerDirs = headers;
win64.cIncludes = sources;
win64.cFlags += cflags;
win64.cppFlags += cflags;
BuildTarget lin32 = BuildTarget
.newDefaultTarget(TargetOs.Linux, false);
lin32.headerDirs = headers;
lin32.cIncludes = sources;
lin32.cFlags += cflags;
lin32.cppFlags += cflags;
BuildTarget lin64 = BuildTarget
.newDefaultTarget(TargetOs.Linux, true);
lin64.headerDirs = headers;
lin64.cIncludes = sources;
lin64.cFlags += cflags;
lin64.cppFlags += cflags;
BuildTarget mac = BuildTarget
.newDefaultTarget(TargetOs.MacOsX, false);
mac.headerDirs = headers;
mac.cIncludes = sources;
mac.cFlags += cflags;
mac.cppFlags += cflags;
mac.linkerFlags += " -framework CoreServices -framework Carbon";
BuildTarget android = BuildTarget
.newDefaultTarget(TargetOs.Android, false);
android.headerDirs = headers;
android.cIncludes = sources;
android.cFlags += cflags;
android.cppFlags += cflags;
android.linkerFlags += " -llog";
BuildTarget ios = BuildTarget.newDefaultTarget(TargetOs.IOS, false);
ios.headerDirs = headers;
ios.cIncludes = sources;
ios.cFlags += cflags;
ios.cppFlags += cflags;
new NativeCodeGenerator().generate();
new AntScriptGenerator()
.generate(new BuildConfig("vtm-jni"),
android,
lin64,
lin32,
mac,
ios,
//win32home,
win32,
win64
);
// BuildExecutor.executeAnt("jni/build-windows32home.xml", "-v clean");
// BuildExecutor.executeAnt("jni/build-linux64.xml", "-v");
// BuildExecutor.executeAnt("jni/build.xml", "pack-natives -v");
}
}