/******************************************************************************* * Copyright 2011 See AUTHORS file. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. ******************************************************************************/ package com.badlogic.gdx.controllers.desktop; import com.badlogic.gdx.jnigen.AntScriptGenerator; import com.badlogic.gdx.jnigen.BuildConfig; import com.badlogic.gdx.jnigen.BuildExecutor; import com.badlogic.gdx.jnigen.BuildTarget; import com.badlogic.gdx.jnigen.NativeCodeGenerator; import com.badlogic.gdx.jnigen.BuildTarget.TargetOs; public class DesktopControllersBuild { public static void main (String[] args) throws Exception { new NativeCodeGenerator().generate("src/", "bin/", "jni/"); BuildConfig buildConfig = new BuildConfig("gdx-controllers-desktop"); String[] windowsSrc = {"*.cpp", "ois-v1-4svn/src/*.cpp", "ois-v1-4svn/src/win32/*.cpp"}; String[] linuxSrc = {"*.cpp", "ois-v1-4svn/src/*.cpp", "ois-v1-4svn/src/linux/*.cpp"}; String[] mac64Src = {"*.cpp", "ois-v1-4svn/src/*.cpp", "ois-v1-4svn/src/mac/*.mm", "ois-v1-4svn/src/mac/MacHIDManager.cpp", "ois-v1-4svn/src/mac/MacJoyStick.cpp",}; String[] includes = new String[] {"ois-v1-4svn/includes", "dinput/"}; BuildTarget win32home = BuildTarget.newDefaultTarget(TargetOs.Windows, false); win32home.buildFileName = "build-windows32home.xml"; win32home.excludeFromMasterBuildFile = true; win32home.is64Bit = false; win32home.compilerPrefix = ""; win32home.cppIncludes = windowsSrc; win32home.headerDirs = includes; win32home.cIncludes = new String[0]; win32home.libraries = "-ldinput8 -ldxguid"; BuildTarget win32 = BuildTarget.newDefaultTarget(TargetOs.Windows, false); win32.cppIncludes = windowsSrc; win32.headerDirs = includes; win32.libraries = "-ldinput8 -ldxguid"; BuildTarget win64 = BuildTarget.newDefaultTarget(TargetOs.Windows, true); win64.cppIncludes = windowsSrc; win64.headerDirs = includes; win64.libraries = "-ldinput8 -ldxguid"; BuildTarget lin32 = BuildTarget.newDefaultTarget(TargetOs.Linux, false); lin32.cppIncludes = linuxSrc; lin32.headerDirs = includes; lin32.libraries = "-lX11"; BuildTarget lin64 = BuildTarget.newDefaultTarget(TargetOs.Linux, true); lin64.cppIncludes = linuxSrc; lin64.headerDirs = includes; lin64.libraries = "-lX11"; BuildTarget mac = BuildTarget.newDefaultTarget(TargetOs.MacOsX, false); mac.cppIncludes = mac64Src; mac.headerDirs = includes; mac.cppFlags += " -x objective-c++"; mac.libraries = "-framework CoreServices -framework Carbon -framework IOKit -framework Cocoa"; BuildTarget mac64 = BuildTarget.newDefaultTarget(TargetOs.MacOsX, true); mac64.cppIncludes = mac64Src; mac64.headerDirs = includes; mac64.cppFlags += " -x objective-c++"; mac64.libraries = "-framework CoreServices -framework Carbon -framework IOKit -framework Cocoa"; new AntScriptGenerator().generate(buildConfig, win32home, win32, win64, lin32, lin64, mac, mac64); // if (!BuildExecutor.executeAnt("jni/build-macosx32.xml", "-Dhas-compiler=true -v postcompile")) { // throw new Exception("build failed"); // } // BuildExecutor.executeAnt("jni/build.xml", "pack-natives"); } }