| <project name="gdx-IOS-32" basedir="." default="postcompile"> | |
| <!-- include the environment --> | |
| <property environment="env"/> | |
| <!-- output directory for temporary object files --> | |
| <property name="buildDir" value="../target/native/ios32" /> | |
| <!-- output directory for the shared library --> | |
| <property name="libsDir" value="../libs/ios32" /> | |
| <!-- the name of the shared library --> | |
| <property name="libName" value="libgdx.a"/> | |
| <!-- the jni header jniPlatform to use --> | |
| <property name="jniPlatform" value="mac"/> | |
| <!-- the compilerPrefix for the C & C++ compilers --> | |
| <property name="compilerPrefix" value=""/> | |
| <property name="iphoneos-sdk" value="/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS9.3.sdk/"/> | |
| <property name="iphonesimulator-sdk" value="/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator9.3.sdk"/> | |
| <property name="tvos-sdk" value="/Applications/Xcode.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS9.2.sdk/"/> | |
| <property name="tvossimulator-sdk" value="/Applications/Xcode.app/Contents/Developer/Platforms/AppleTVSimulator.platform/Developer/SDKs/AppleTVSimulator9.2.sdk"/> | |
| <!-- define gcc compiler, options and files to compile --> | |
| <property name="gcc" value="/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang"/> | |
| <property name="gcc-opts" value="-c -Wall -O2"/> | |
| <fileset id="gcc-files" dir="./"> | |
| <exclude name="target/"/> | |
| <include name="memcpy_wrap.c"/> | |
| <include name="**/*.c"/> | |
| </fileset> | |
| <!-- define g++ compiler, options and files to compile --> | |
| <property name="g++" value="/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++"/> | |
| <property name="g++-opts" value="-c -Wall -O2"/> | |
| <fileset id="g++-files" dir="./"> | |
| <exclude name="target/"/> | |
| <include name="**/*.cpp"/> | |
| <exclude name="android/**"/> | |
| </fileset> | |
| <!-- define linker and options --> | |
| <property name="linker" value="/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ar"/> | |
| <property name="linker-opts" value="rcs"/> | |
| <property name="libraries" value=""/> | |
| <!-- cleans the build directory, removes all object files and shared libs --> | |
| <target name="clean"> | |
| <delete includeemptydirs="true" quiet="true"> | |
| <fileset dir="${buildDir}"/> | |
| <fileset dir="${libsDir}" includes="**/*" excludes="**/.svn"/> | |
| </delete> | |
| </target> | |
| <target name="clean-objfiles"> | |
| <delete> | |
| <fileset dir="${buildDir}"> | |
| <include name="**/*.o"/> | |
| </fileset> | |
| </delete> | |
| </target> | |
| <target name="create-build-dir"> | |
| <!-- FIXME this is pretty nasty :/ --> | |
| <copy todir="${buildDir}"> | |
| <fileset refid="g++-files"/> | |
| <fileset refid="gcc-files"/> | |
| </copy> | |
| <delete> | |
| <fileset dir="${buildDir}"> | |
| <include name="*"/> | |
| <exclude name="*.o"/> | |
| </fileset> | |
| </delete> | |
| </target> | |
| <!-- compiles all C and C++ files to object files in the build directory, for 386 builds--> | |
| <target name="compile-386" depends="clean,create-build-dir"> | |
| <mkdir dir="${buildDir}"/> | |
| <apply failonerror="true" executable="${g++}" dest="${buildDir}" verbose="true"> | |
| <arg line="-isysroot ${iphonesimulator-sdk} -arch i386 -miphoneos-version-min=6.0 ${g++-opts}"/> | |
| <arg value="-Ijni-headers"/> | |
| <arg value="-Ijni-headers/${jniPlatform}"/> | |
| <arg value="-I."/> | |
| <arg value="-Iiosgl"/> | |
| <srcfile/> | |
| <arg value="-o"/> | |
| <targetfile/> | |
| <fileset refid="g++-files"/> | |
| <compositemapper> | |
| <mapper type="glob" from="*.cpp" to="*.o"/> | |
| <mapper type="glob" from="*.mm" to="*.o"/> | |
| </compositemapper> | |
| </apply> | |
| <apply failonerror="true" executable="${gcc}" dest="${buildDir}" verbose="true"> | |
| <arg line="-isysroot ${iphonesimulator-sdk} -arch i386 -miphoneos-version-min=6.0 ${gcc-opts}"/> | |
| <arg value="-Ijni-headers"/> | |
| <arg value="-Ijni-headers/${jniPlatform}"/> | |
| <arg value="-I."/> | |
| <arg value="-Iiosgl"/> | |
| <srcfile/> | |
| <arg value="-o"/> | |
| <targetfile/> | |
| <fileset refid="gcc-files"/> | |
| <compositemapper> | |
| <mapper type="glob" from="*.c" to="*.o"/> | |
| </compositemapper> | |
| </apply> | |
| </target> | |
| <!-- links the shared library based on the previously compiled object files --> | |
| <target name="link-386" depends="compile-386"> | |
| <fileset dir="${buildDir}" id="objFileSet"> | |
| <patternset> | |
| <include name="**/*.o" /> | |
| </patternset> | |
| </fileset> | |
| <pathconvert pathsep=" " property="objFiles" refid="objFileSet" /> | |
| <mkdir dir="${libsDir}" /> | |
| <exec executable="${linker}" failonerror="true" dir="${buildDir}"> | |
| <arg line="${linker-opts}" /> | |
| <arg path="${libsDir}/${libName}.386" /> | |
| <arg line="${objFiles}"/> | |
| <arg line="${libraries}" /> | |
| </exec> | |
| </target> | |
| <!-- compiles all C and C++ files to object files in the build directory, for x86_64 builds--> | |
| <target name="compile-x86_64" depends="create-build-dir"> | |
| <mkdir dir="${buildDir}"/> | |
| <antcall target="clean-objfiles"/> | |
| <apply failonerror="true" executable="${g++}" dest="${buildDir}" verbose="true"> | |
| <arg line="-isysroot ${iphonesimulator-sdk} -arch x86_64 -miphoneos-version-min=6.0 ${g++-opts}"/> | |
| <arg value="-Ijni-headers"/> | |
| <arg value="-Ijni-headers/${jniPlatform}"/> | |
| <arg value="-I."/> | |
| <arg value="-Iiosgl"/> | |
| <srcfile/> | |
| <arg value="-o"/> | |
| <targetfile/> | |
| <fileset refid="g++-files"/> | |
| <compositemapper> | |
| <mapper type="glob" from="*.cpp" to="*.o"/> | |
| <mapper type="glob" from="*.mm" to="*.o"/> | |
| </compositemapper> | |
| </apply> | |
| <apply failonerror="true" executable="${gcc}" dest="${buildDir}" verbose="true"> | |
| <arg line="-isysroot ${iphonesimulator-sdk} -arch x86_64 -miphoneos-version-min=6.0 ${gcc-opts}"/> | |
| <arg value="-Ijni-headers"/> | |
| <arg value="-Ijni-headers/${jniPlatform}"/> | |
| <arg value="-I."/> | |
| <arg value="-Iiosgl"/> | |
| <srcfile/> | |
| <arg value="-o"/> | |
| <targetfile/> | |
| <fileset refid="gcc-files"/> | |
| <compositemapper> | |
| <mapper type="glob" from="*.c" to="*.o"/> | |
| </compositemapper> | |
| </apply> | |
| </target> | |
| <!-- links the shared library based on the previously compiled object files --> | |
| <target name="link-x86_64" depends="compile-x86_64"> | |
| <fileset dir="${buildDir}" id="objFileSet"> | |
| <patternset> | |
| <include name="**/*.o" /> | |
| </patternset> | |
| </fileset> | |
| <pathconvert pathsep=" " property="objFiles" refid="objFileSet" /> | |
| <mkdir dir="${libsDir}" /> | |
| <exec executable="${linker}" failonerror="true" dir="${buildDir}"> | |
| <arg line="${linker-opts}" /> | |
| <arg path="${libsDir}/${libName}.x86_64" /> | |
| <arg line="${objFiles}"/> | |
| <arg line="${libraries}" /> | |
| </exec> | |
| </target> | |
| <!-- compiles all C and C++ files to object files in the build directory, for armv7 builds--> | |
| <target name="compile-arm" depends="create-build-dir"> | |
| <mkdir dir="${buildDir}"/> | |
| <antcall target="clean-objfiles"/> | |
| <apply failonerror="true" executable="${g++}" dest="${buildDir}" verbose="true"> | |
| <arg line="-isysroot ${iphoneos-sdk} -arch armv7 -miphoneos-version-min=6.0 -fembed-bitcode ${g++-opts}"/> | |
| <arg value="-Ijni-headers"/> | |
| <arg value="-Ijni-headers/${jniPlatform}"/> | |
| <arg value="-I."/> | |
| <arg value="-Iiosgl"/> | |
| <srcfile/> | |
| <arg value="-o"/> | |
| <targetfile/> | |
| <fileset refid="g++-files"/> | |
| <compositemapper> | |
| <mapper type="glob" from="*.cpp" to="*.o"/> | |
| <mapper type="glob" from="*.mm" to="*.o"/> | |
| </compositemapper> | |
| </apply> | |
| <apply failonerror="true" executable="${gcc}" dest="${buildDir}" verbose="true"> | |
| <arg line="-isysroot ${iphoneos-sdk} -arch armv7 -miphoneos-version-min=6.0 -fembed-bitcode ${gcc-opts}"/> | |
| <arg value="-Ijni-headers"/> | |
| <arg value="-Ijni-headers/${jniPlatform}"/> | |
| <arg value="-I."/> | |
| <arg value="-Iiosgl"/> | |
| <srcfile/> | |
| <arg value="-o"/> | |
| <targetfile/> | |
| <fileset refid="gcc-files"/> | |
| <compositemapper> | |
| <mapper type="glob" from="*.c" to="*.o"/> | |
| </compositemapper> | |
| </apply> | |
| </target> | |
| <!-- links the shared library based on the previously compiled object files --> | |
| <target name="link-arm" depends="compile-arm"> | |
| <fileset dir="${buildDir}" id="objFileSet"> | |
| <patternset> | |
| <include name="**/*.o" /> | |
| </patternset> | |
| </fileset> | |
| <pathconvert pathsep=" " property="objFiles" refid="objFileSet" /> | |
| <mkdir dir="${libsDir}" /> | |
| <exec executable="${linker}" failonerror="true" dir="${buildDir}"> | |
| <arg line="${linker-opts}" /> | |
| <arg path="${libsDir}/${libName}.armv7" /> | |
| <arg line="${objFiles}"/> | |
| <arg line="${libraries}" /> | |
| </exec> | |
| </target> | |
| <!-- compiles all C and C++ files to object files in the build directory, for arm64 builds--> | |
| <target name="compile-arm64" depends="create-build-dir,clean-objfiles"> | |
| <mkdir dir="${buildDir}"/> | |
| <antcall target="clean-objfiles"/> | |
| <apply failonerror="true" executable="${g++}" dest="${buildDir}" verbose="true"> | |
| <arg line="-isysroot ${iphoneos-sdk} -arch arm64 -miphoneos-version-min=6.0 -fembed-bitcode ${g++-opts}"/> | |
| <arg value="-Ijni-headers"/> | |
| <arg value="-Ijni-headers/${jniPlatform}"/> | |
| <arg value="-I."/> | |
| <arg value="-Iiosgl"/> | |
| <srcfile/> | |
| <arg value="-o"/> | |
| <targetfile/> | |
| <fileset refid="g++-files"/> | |
| <compositemapper> | |
| <mapper type="glob" from="*.cpp" to="*.o"/> | |
| <mapper type="glob" from="*.mm" to="*.o"/> | |
| </compositemapper> | |
| </apply> | |
| <apply failonerror="true" executable="${gcc}" dest="${buildDir}" verbose="true"> | |
| <arg line="-isysroot ${iphoneos-sdk} -arch arm64 -miphoneos-version-min=6.0 -fembed-bitcode ${gcc-opts}"/> | |
| <arg value="-Ijni-headers"/> | |
| <arg value="-Ijni-headers/${jniPlatform}"/> | |
| <arg value="-I."/> | |
| <arg value="-Iiosgl"/> | |
| <srcfile/> | |
| <arg value="-o"/> | |
| <targetfile/> | |
| <fileset refid="gcc-files"/> | |
| <compositemapper> | |
| <mapper type="glob" from="*.c" to="*.o"/> | |
| </compositemapper> | |
| </apply> | |
| </target> | |
| <!-- links the shared library based on the previously compiled object files --> | |
| <target name="link-arm64" depends="compile-arm64"> | |
| <fileset dir="${buildDir}" id="objFileSet"> | |
| <patternset> | |
| <include name="**/*.o" /> | |
| </patternset> | |
| </fileset> | |
| <pathconvert pathsep=" " property="objFiles" refid="objFileSet" /> | |
| <mkdir dir="${libsDir}" /> | |
| <exec executable="${linker}" failonerror="true" dir="${buildDir}"> | |
| <arg line="${linker-opts}" /> | |
| <arg path="${libsDir}/${libName}.arm64" /> | |
| <arg line="${objFiles}"/> | |
| <arg line="${libraries}" /> | |
| </exec> | |
| </target> | |
| <!-- compiles all C and C++ files to object files in the build directory, for tvOS x86_64 builds--> | |
| <target name="compile-tvos-x86_64" depends="create-build-dir"> | |
| <mkdir dir="${buildDir}"/> | |
| <antcall target="clean-objfiles"/> | |
| <apply failonerror="true" executable="${g++}" dest="${buildDir}" verbose="true"> | |
| <arg line="-isysroot ${tvossimulator-sdk} -arch x86_64 -mtvos-version-min=9.0 ${g++-opts}"/> | |
| <arg value="-Ijni-headers"/> | |
| <arg value="-Ijni-headers/${jniPlatform}"/> | |
| <arg value="-I."/> | |
| <arg value="-Iiosgl"/> | |
| <srcfile/> | |
| <arg value="-o"/> | |
| <targetfile/> | |
| <fileset refid="g++-files"/> | |
| <compositemapper> | |
| <mapper type="glob" from="*.cpp" to="*.o"/> | |
| <mapper type="glob" from="*.mm" to="*.o"/> | |
| </compositemapper> | |
| </apply> | |
| <apply failonerror="true" executable="${gcc}" dest="${buildDir}" verbose="true"> | |
| <arg line="-isysroot ${tvossimulator-sdk} -arch x86_64 -mtvos-version-min=9.0 ${gcc-opts}"/> | |
| <arg value="-Ijni-headers"/> | |
| <arg value="-Ijni-headers/${jniPlatform}"/> | |
| <arg value="-I."/> | |
| <arg value="-Iiosgl"/> | |
| <srcfile/> | |
| <arg value="-o"/> | |
| <targetfile/> | |
| <fileset refid="gcc-files"/> | |
| <compositemapper> | |
| <mapper type="glob" from="*.c" to="*.o"/> | |
| </compositemapper> | |
| </apply> | |
| </target> | |
| <!-- links the shared library based on the previously compiled object files --> | |
| <target name="link-tvos-x86_64" depends="compile-tvos-x86_64"> | |
| <fileset dir="${buildDir}" id="objFileSet"> | |
| <patternset> | |
| <include name="**/*.o" /> | |
| </patternset> | |
| </fileset> | |
| <pathconvert pathsep=" " property="objFiles" refid="objFileSet" /> | |
| <mkdir dir="${libsDir}" /> | |
| <exec executable="${linker}" failonerror="true" dir="${buildDir}"> | |
| <arg line="${linker-opts}" /> | |
| <arg path="${libsDir}/${libName}.tvos.x86_64" /> | |
| <arg line="${objFiles}"/> | |
| <arg line="${libraries}" /> | |
| </exec> | |
| </target> | |
| <!-- compiles all C and C++ files to object files in the build directory, for tvOS arm64 builds--> | |
| <target name="compile-tvos-arm64" depends="create-build-dir,clean-objfiles"> | |
| <mkdir dir="${buildDir}"/> | |
| <antcall target="clean-objfiles"/> | |
| <apply failonerror="true" executable="${g++}" dest="${buildDir}" verbose="true"> | |
| <arg line="-isysroot ${tvos-sdk} -arch arm64 -mtvos-version-min=9.0 -fembed-bitcode ${g++-opts}"/> | |
| <arg value="-Ijni-headers"/> | |
| <arg value="-Ijni-headers/${jniPlatform}"/> | |
| <arg value="-I."/> | |
| <arg value="-Iiosgl"/> | |
| <srcfile/> | |
| <arg value="-o"/> | |
| <targetfile/> | |
| <fileset refid="g++-files"/> | |
| <compositemapper> | |
| <mapper type="glob" from="*.cpp" to="*.o"/> | |
| <mapper type="glob" from="*.mm" to="*.o"/> | |
| </compositemapper> | |
| </apply> | |
| <apply failonerror="true" executable="${gcc}" dest="${buildDir}" verbose="true"> | |
| <arg line="-isysroot ${tvos-sdk} -arch arm64 -mtvos-version-min=9.0 -fembed-bitcode ${gcc-opts}"/> | |
| <arg value="-Ijni-headers"/> | |
| <arg value="-Ijni-headers/${jniPlatform}"/> | |
| <arg value="-I."/> | |
| <arg value="-Iiosgl"/> | |
| <srcfile/> | |
| <arg value="-o"/> | |
| <targetfile/> | |
| <fileset refid="gcc-files"/> | |
| <compositemapper> | |
| <mapper type="glob" from="*.c" to="*.o"/> | |
| </compositemapper> | |
| </apply> | |
| </target> | |
| <!-- links the shared library based on the previously compiled object files --> | |
| <target name="link-tvos-arm64" depends="compile-tvos-arm64"> | |
| <fileset dir="${buildDir}" id="objFileSet"> | |
| <patternset> | |
| <include name="**/*.o" /> | |
| </patternset> | |
| </fileset> | |
| <pathconvert pathsep=" " property="objFiles" refid="objFileSet" /> | |
| <mkdir dir="${libsDir}" /> | |
| <exec executable="${linker}" failonerror="true" dir="${buildDir}"> | |
| <arg line="${linker-opts}" /> | |
| <arg path="${libsDir}/${libName}.tvos.arm64" /> | |
| <arg line="${objFiles}"/> | |
| <arg line="${libraries}" /> | |
| </exec> | |
| </target> | |
| <target name="link-fat"> | |
| <exec executable="lipo" failonerror="true" dir="${libsDir}"> | |
| <arg line="-create -output ${libName} ${libName}.386 ${libName}.x86_64 ${libName}.armv7 ${libName}.arm64"/> | |
| </exec> | |
| <exec executable="lipo" failonerror="true" dir="${libsDir}"> | |
| <arg line="-create -output ${libName}.tvos ${libName}.tvos.x86_64 ${libName}.tvos.arm64"/> | |
| </exec> | |
| </target> | |
| <target name="postcompile" depends="link-386,link-x86_64,link-arm,link-arm64,link-tvos-x86_64,link-tvos-arm64,link-fat"> | |
| </target> | |
| </project> |