OSDN Git Service

Merge branch 'master' of https://github.com/libgdx/libgdx into gwtsound
[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                         \r
85                         <srcfile/>\r
86                         <arg value="-o"/>\r
87                         <targetfile/>\r
88                         <fileset refid="g++-files"/>\r
89                         <compositemapper>\r
90                                 <mapper type="glob" from="*.cpp" to="*.o"/>\r
91                                 <mapper type="glob" from="*.mm" to="*.o"/>\r
92                         </compositemapper>\r
93                 </apply>\r
94                 <apply failonerror="true" executable="${iphonesimulator-platform}/${gcc}" dest="${buildDir}" verbose="true">\r
95                         <arg line="-isysroot ${iphonesimulator-sdk} -arch i386 ${gcc-opts}"/>\r
96                         <arg value="-Ijni-headers"/>\r
97                         <arg value="-Ijni-headers/${jniPlatform}"/>\r
98                         <arg value="-I."/>\r
99                         \r
100                         <srcfile/>\r
101                         <arg value="-o"/>\r
102                         <targetfile/>\r
103                         <fileset refid="gcc-files"/>\r
104                         <compositemapper>\r
105                                 <mapper type="glob" from="*.c" to="*.o"/>\r
106                         </compositemapper>\r
107                 </apply>\r
108         </target>       \r
109 \r
110         <!-- links the shared library based on the previously compiled object files -->\r
111         <target name="link-386" depends="compile-386">\r
112                 <fileset dir="${buildDir}" id="objFileSet">\r
113                         <patternset>\r
114                                 <include name="**/*.o" />\r
115                         </patternset>\r
116                 </fileset>\r
117                 <pathconvert pathsep=" " property="objFiles" refid="objFileSet" />\r
118                 <mkdir dir="${libsDir}" />\r
119                 <exec executable="${iphonesimulator-platform}/${linker}" failonerror="true" dir="${buildDir}">\r
120                         <arg line="${linker-opts}" />\r
121                         <arg path="${libsDir}/${libName}.386" />\r
122                         <arg line="${objFiles}"/>\r
123                         <arg line="${libraries}" />\r
124                 </exec>\r
125         </target>\r
126         \r
127         <!-- compiles all C and C++ files to object files in the build directory, for 386 builds-->\r
128         <target name="compile-arm" depends="create-build-dir,clean-objfiles">\r
129                 <mkdir dir="${buildDir}"/>\r
130                 <apply failonerror="true" executable="${iphoneos-platform}/${g++}" dest="${buildDir}" verbose="true">\r
131                         <arg line="-isysroot ${iphoneos-sdk} -arch armv7 ${g++-opts}"/>\r
132                         <arg value="-Ijni-headers"/>\r
133                         <arg value="-Ijni-headers/${jniPlatform}"/>\r
134                         <arg value="-I."/>\r
135                         \r
136                         <srcfile/>\r
137                         <arg value="-o"/>\r
138                         <targetfile/>\r
139                         <fileset refid="g++-files"/>\r
140                         <compositemapper>\r
141                                 <mapper type="glob" from="*.cpp" to="*.o"/>\r
142                                 <mapper type="glob" from="*.mm" to="*.o"/>\r
143                         </compositemapper>\r
144                 </apply>\r
145                 <apply failonerror="true" executable="${iphoneos-platform}/${gcc}" dest="${buildDir}" verbose="true">\r
146                         <arg line="-isysroot ${iphoneos-sdk} -arch armv7 ${gcc-opts}"/>\r
147                         <arg value="-Ijni-headers"/>\r
148                         <arg value="-Ijni-headers/${jniPlatform}"/>\r
149                         <arg value="-I."/>\r
150                         \r
151                         <srcfile/>\r
152                         <arg value="-o"/>\r
153                         <targetfile/>\r
154                         <fileset refid="gcc-files"/>\r
155                         <compositemapper>\r
156                                 <mapper type="glob" from="*.c" to="*.o"/>\r
157                         </compositemapper>\r
158                 </apply>\r
159         </target>       \r
160 \r
161         <!-- links the shared library based on the previously compiled object files -->\r
162         <target name="link-arm" depends="compile-arm">\r
163                 <fileset dir="${buildDir}" id="objFileSet">\r
164                         <patternset>\r
165                                 <include name="**/*.o" />\r
166                         </patternset>\r
167                 </fileset>\r
168                 <pathconvert pathsep=" " property="objFiles" refid="objFileSet" />\r
169                 <mkdir dir="${libsDir}" />\r
170                 <exec executable="${iphoneos-platform}/${linker}" failonerror="true" dir="${buildDir}">\r
171                         <arg line="${linker-opts}" />\r
172                         <arg path="${libsDir}/${libName}.armv7" />\r
173                         <arg line="${objFiles}"/>\r
174                         <arg line="${libraries}" />\r
175                 </exec>\r
176         </target>\r
177 \r
178         <target name="link-fat">\r
179                 <exec executable="lipo" failonerror="true" dir="${libsDir}">\r
180                         <arg line="-create -output ${libName} ${libName}.386 ${libName}.armv7"/>\r
181                 </exec>\r
182         </target>\r
183 \r
184         <target name="postcompile" depends="link-386,link-arm,link-fat">\r
185                 \r
186         </target>\r
187 </project>\r