OSDN Git Service

wtf build server
[mikumikustudio/libgdx-mikumikustudio.git] / gdx / jni / build-ios32.xml
1 <project name="gdx-IOS-32" basedir="." default="postcompile">\r
2         <!-- include the environment -->\r
3         <property environment="env"/>   \r
4         <!-- output directory for temporary object files -->\r
5         <property name="buildDir" value="../target/native/ios32" />\r
6         <!-- output directory for the shared library -->\r
7         <property name="libsDir" value="../libs/ios32" />\r
8         <!-- the name of the shared library -->\r
9         <property name="libName" value="libgdx.a"/>\r
10         <!-- the jni header jniPlatform to use -->\r
11         <property name="jniPlatform" value="mac"/>\r
12         <!-- the compilerPrefix for the C & C++ compilers -->\r
13         <property name="compilerPrefix" value=""/>      \r
14         <property name="iphoneos-platform" value="/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin"/>\r
15         <property name="iphoneos-sdk" value="/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS6.1.sdk/"/>\r
16         <property name="iphonesimulator-platform" value="/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin"/>\r
17         <property name="iphonesimulator-sdk" value="/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator6.1.sdk/"/>\r
18         \r
19         <!-- define gcc compiler, options and files to compile -->\r
20         <property name="gcc" value="${compilerPrefix}gcc"/>     \r
21         <property name="gcc-opts" value="-c -Wall -O2 -miphoneos-version-min=5.1"/>\r
22         <fileset id="gcc-files" dir="./">\r
23                 <exclude name="target/"/>               \r
24                                 <include name="memcpy_wrap.c"/>
25                 <include name="**/*.c"/>
26 \r
27                 \r
28         </fileset>\r
29         \r
30         <!-- define g++ compiler, options and files to compile -->\r
31         <property name="g++" value="${compilerPrefix}g++"/>\r
32         <property name="g++-opts" value="-c -Wall -O2 -miphoneos-version-min=5.1"/>\r
33         <fileset id="g++-files" dir="./">\r
34                 <exclude name="target/"/>\r
35                                 <include name="**/*.cpp"/>
36 \r
37                                 <exclude name="android/**"/>
38 \r
39         </fileset>\r
40 \r
41         <!-- define linker and options -->\r
42         <property name="linker" value="${compilerPrefix}ar"/>\r
43         <property name="linker-opts" value="rcs"/>\r
44         <property name="libraries" value=""/>\r
45         \r
46         <!-- cleans the build directory, removes all object files and shared libs -->\r
47         <target name="clean">\r
48                 <delete includeemptydirs="true" quiet="true">\r
49                         <fileset dir="${buildDir}"/>\r
50                         <fileset dir="${libsDir}" includes="**/*" excludes="**/.svn"/>\r
51                 </delete>\r
52         </target>\r
53         \r
54         <target name="clean-objfiles">\r
55                 <delete>\r
56                         <fileset dir="${buildDir}">\r
57                                 <include name="**/*.o"/>\r
58                         </fileset>\r
59                 </delete>\r
60         </target>\r
61         \r
62         <target name="create-build-dir">\r
63                 <!-- FIXME this is pretty nasty :/ -->\r
64                 <copy todir="${buildDir}">\r
65                         <fileset refid="g++-files"/>\r
66                         <fileset refid="gcc-files"/>\r
67                 </copy>\r
68                 <delete>\r
69                         <fileset dir="${buildDir}">\r
70                                 <include name="*"/>\r
71                                 <exclude name="*.o"/>\r
72                         </fileset>\r
73                 </delete>\r
74         </target>\r
75 \r
76         <!-- compiles all C and C++ files to object files in the build directory, for 386 builds-->\r
77         <target name="compile-386" depends="clean,create-build-dir">\r
78                 <mkdir dir="${buildDir}"/>\r
79                 <apply failonerror="true" executable="${iphonesimulator-platform}/${g++}" dest="${buildDir}" verbose="true">\r
80                         <arg line="-isysroot ${iphonesimulator-sdk} -arch i386 ${g++-opts}"/>\r
81                         <arg value="-Ijni-headers"/>\r
82                         <arg value="-Ijni-headers/${jniPlatform}"/>\r
83                         <arg value="-I."/>\r
84                                                 <arg value="-Iiosgl"/>
85 \r
86                         <srcfile/>\r
87                         <arg value="-o"/>\r
88                         <targetfile/>\r
89                         <fileset refid="g++-files"/>\r
90                         <compositemapper>\r
91                                 <mapper type="glob" from="*.cpp" to="*.o"/>\r
92                                 <mapper type="glob" from="*.mm" to="*.o"/>\r
93                         </compositemapper>\r
94                 </apply>\r
95                 <apply failonerror="true" executable="${iphonesimulator-platform}/${gcc}" dest="${buildDir}" verbose="true">\r
96                         <arg line="-isysroot ${iphonesimulator-sdk} -arch i386 ${gcc-opts}"/>\r
97                         <arg value="-Ijni-headers"/>\r
98                         <arg value="-Ijni-headers/${jniPlatform}"/>\r
99                         <arg value="-I."/>\r
100                                                 <arg value="-Iiosgl"/>
101 \r
102                         <srcfile/>\r
103                         <arg value="-o"/>\r
104                         <targetfile/>\r
105                         <fileset refid="gcc-files"/>\r
106                         <compositemapper>\r
107                                 <mapper type="glob" from="*.c" to="*.o"/>\r
108                         </compositemapper>\r
109                 </apply>\r
110         </target>       \r
111 \r
112         <!-- links the shared library based on the previously compiled object files -->\r
113         <target name="link-386" depends="compile-386">\r
114                 <fileset dir="${buildDir}" id="objFileSet">\r
115                         <patternset>\r
116                                 <include name="**/*.o" />\r
117                         </patternset>\r
118                 </fileset>\r
119                 <pathconvert pathsep=" " property="objFiles" refid="objFileSet" />\r
120                 <mkdir dir="${libsDir}" />\r
121                 <exec executable="${iphonesimulator-platform}/${linker}" failonerror="true" dir="${buildDir}">\r
122                         <arg line="${linker-opts}" />\r
123                         <arg path="${libsDir}/${libName}.386" />\r
124                         <arg line="${objFiles}"/>\r
125                         <arg line="${libraries}" />\r
126                 </exec>\r
127         </target>\r
128         \r
129         <!-- compiles all C and C++ files to object files in the build directory, for 386 builds-->\r
130         <target name="compile-arm" depends="create-build-dir,clean-objfiles">\r
131                 <mkdir dir="${buildDir}"/>\r
132                 <apply failonerror="true" executable="${iphoneos-platform}/${g++}" dest="${buildDir}" verbose="true">\r
133                         <arg line="-isysroot ${iphoneos-sdk} -arch armv7 ${g++-opts}"/>\r
134                         <arg value="-Ijni-headers"/>\r
135                         <arg value="-Ijni-headers/${jniPlatform}"/>\r
136                         <arg value="-I."/>\r
137                                                 <arg value="-Iiosgl"/>
138 \r
139                         <srcfile/>\r
140                         <arg value="-o"/>\r
141                         <targetfile/>\r
142                         <fileset refid="g++-files"/>\r
143                         <compositemapper>\r
144                                 <mapper type="glob" from="*.cpp" to="*.o"/>\r
145                                 <mapper type="glob" from="*.mm" to="*.o"/>\r
146                         </compositemapper>\r
147                 </apply>\r
148                 <apply failonerror="true" executable="${iphoneos-platform}/${gcc}" dest="${buildDir}" verbose="true">\r
149                         <arg line="-isysroot ${iphoneos-sdk} -arch armv7 ${gcc-opts}"/>\r
150                         <arg value="-Ijni-headers"/>\r
151                         <arg value="-Ijni-headers/${jniPlatform}"/>\r
152                         <arg value="-I."/>\r
153                                                 <arg value="-Iiosgl"/>
154 \r
155                         <srcfile/>\r
156                         <arg value="-o"/>\r
157                         <targetfile/>\r
158                         <fileset refid="gcc-files"/>\r
159                         <compositemapper>\r
160                                 <mapper type="glob" from="*.c" to="*.o"/>\r
161                         </compositemapper>\r
162                 </apply>\r
163         </target>       \r
164 \r
165         <!-- links the shared library based on the previously compiled object files -->\r
166         <target name="link-arm" depends="compile-arm">\r
167                 <fileset dir="${buildDir}" id="objFileSet">\r
168                         <patternset>\r
169                                 <include name="**/*.o" />\r
170                         </patternset>\r
171                 </fileset>\r
172                 <pathconvert pathsep=" " property="objFiles" refid="objFileSet" />\r
173                 <mkdir dir="${libsDir}" />\r
174                 <exec executable="${iphoneos-platform}/${linker}" failonerror="true" dir="${buildDir}">\r
175                         <arg line="${linker-opts}" />\r
176                         <arg path="${libsDir}/${libName}.armv7" />\r
177                         <arg line="${objFiles}"/>\r
178                         <arg line="${libraries}" />\r
179                 </exec>\r
180         </target>\r
181 \r
182         <target name="link-fat">\r
183                 <exec executable="lipo" failonerror="true" dir="${libsDir}">\r
184                         <arg line="-create -output ${libName} ${libName}.386 ${libName}.armv7"/>\r
185                 </exec>\r
186         </target>\r
187 \r
188         <target name="postcompile" depends="link-386,link-arm,link-fat">\r
189                 \r
190         </target>\r
191 </project>\r