Code

New commit. This will eventually replace the old Makefile.mingw stuff
[inkscape.git] / build.xml
1 <project name="Sands" default="dist" basedir=".">\r
2     <description>\r
3         Build file for Sands office data tool\r
4     </description>\r
5 \r
6   <!-- set global properties for this build -->\r
7   <property name="version"     location="0.45"/>\r
8   <property name="src"         location="src"/>\r
9   <property name="gtk"         location="c:/gtk28"/>\r
10   <property name="lib"         location="lib"/>\r
11   <property name="build"       location="build"/>\r
12   <property name="dist"        location="dist"/>\r
13 \r
14   <target name="init">\r
15     <!-- Create the build directory structure used by compile -->\r
16     <mkdir dir="${build}"/>\r
17     <copy file="config.h.mingw" tofile="config.h"/>\r
18   </target>\r
19 \r
20   <target name="compile" depends="init"\r
21         description="compile the source " >\r
22     <!-- Compile from source to build -->\r
23     <cc cc="gcc" cxx="g++" destdir="${build}/obj">\r
24             <fileset dir="${src}">\r
25             <!-- THINGS TO EXCLUDE -->\r
26                 <exclude name="ast"/>\r
27                 <exclude name="bonobo"/>\r
28                 <exclude name="deptool.cpp"/>\r
29                 <exclude name="dialogs/filedialog-win32.cpp"/>\r
30                 <exclude name="display/testnr.cpp"/>\r
31                 <exclude name="display/bezier-utils-test.cpp"/>\r
32                 <exclude name="dom/work"/>\r
33                 <exclude name="dom/odf/SvgOdg.cpp"/>\r
34                 <exclude name="extension/api.cpp"/>\r
35                 <exclude name="extension/dxf2svg"/>\r
36                 <exclude name="extension/internal/gnome.cpp"/>\r
37                 <exclude name="extension/script/bindtest.cpp"/>\r
38                 <exclude name="extension/script/cpptest.cpp"/>\r
39                 <exclude name="extension/plugin"/>\r
40                 <exclude name="extract-uri-test.cpp"/>\r
41                 <exclude name="helper/units-test.cpp"/>\r
42                 <exclude name="inkview.cpp"/>\r
43                 <exclude name="libnr/in-svg-plane-test.cpp"/>\r
44                 <exclude name="libnr/nr-compose-reference.cpp"/>\r
45                 <exclude name="libnr/nr-compose-test.cpp"/>\r
46                 <exclude name="libnr/nr-matrix-test.cpp"/>\r
47                 <exclude name="libnr/nr-point-fns-test.cpp"/>\r
48                 <exclude name="libnr/nr-rotate-fns-test.cpp"/>\r
49                 <exclude name="libnr/nr-rotate-test.cpp"/>\r
50                 <exclude name="libnr/nr-scale-test.cpp"/>\r
51                 <exclude name="libnr/nr-translate-test.cpp"/>\r
52                 <exclude name="libnr/nr-types-test.cpp"/>\r
53                 <exclude name="livarot/Path-test.cpp"/>\r
54                 <exclude name="mod360-test.cpp"/>\r
55                 <exclude name="trace/potrace/potest.cpp"/>\r
56                 <exclude name="round-test.cpp"/>\r
57                 <exclude name="sp-gradient-test.cpp"/>\r
58                 <exclude name="svg/ftos.cpp"/>\r
59                 <exclude name="utest"/>\r
60                 <exclude name="widgets/test-widgets.cpp"/>\r
61                 <exclude name="xml/quote-test.cpp"/>\r
62                 <exclude name="xml/repr-action-test.cpp"/>\r
63                 <exclude name="io/streamtest.cpp"/>\r
64             <!--JABBER-->\r
65                 <exclude name="pedro/pedrogui.cpp"/>\r
66                 <exclude name="pedro/pedrogui.h"/>\r
67                 <exclude name="pedro/work"/>\r
68             <!--WHITEBOARD-->\r
69                 <exclude name="ui/dialog/session-player.cpp"/>\r
70                 <exclude name="ui/dialog/whiteboard-connect.cpp"/>\r
71                 <exclude name="ui/dialog/whiteboard-sharewithchat.cpp"/>\r
72                 <exclude name="ui/dialog/whiteboard-sharewithuser.cpp"/>\r
73                 <exclude name="dialogs/whiteboard-connect-dialog.cpp"/>\r
74                 <exclude name="dialogs/whiteboard-common-dialog.cpp"/>\r
75                 <exclude name="dialogs/whiteboard-sharewithchat-dialog.cpp"/>\r
76                 <exclude name="dialogs/whiteboard-sharewithuser-dialog.cpp"/>\r
77                 <exclude name="jabber_whiteboard/node-tracker.cpp"/>\r
78                 <exclude name="jabber_whiteboard/node-utilities.cpp"/>\r
79             <!--WHITEBOARD-->\r
80                 <exclude name="removeoverlap/placement_SolveVPSC.cpp"/>\r
81                 <exclude name="removeoverlap/placement_SolveVPSC.h"/>\r
82                 <exclude name="removeoverlap/test.cpp"/>\r
83                 <exclude name="removeoverlap/remove_rectangle_overlap-test.cpp"/>\r
84                 <exclude name="removeoverlap/remove_rectangle_overlap-test.h"/>\r
85             </fileset>\r
86         <flags>\r
87             -Wall -g -O3\r
88                         -mms-bitfields\r
89         </flags>\r
90         <defines>\r
91             -DVERSION=\"${version}\"\r
92             -DHAVE_CONFIG_H\r
93             -DXP_WIN <!-- for JS -->\r
94                         -D_INTL_REDIRECT_INLINE\r
95             -DWITH_INKBOARD -DHAVE_SSL <!-- inkboard -->\r
96         </defines>\r
97         <includes>\r
98             -I${gtk}/include\r
99                         <!-- GTK / GTKMM -->\r
100             -I${gtk}/include/glibmm-2.4\r
101                     -I${gtk}/lib/glibmm-2.4/include\r
102             -I${gtk}/include/gtkmm-2.4\r
103                     -I${gtk}/lib/gtkmm-2.4/include\r
104             -I${gtk}/include/gdkmm-2.4\r
105                     -I${gtk}/lib/gdkmm-2.4/include\r
106             -I${gtk}/include/pangomm-1.4\r
107             -I${gtk}/include/atkmm-1.6\r
108             -I${gtk}/include/sigc++-2.0\r
109                     -I${gtk}/lib/sigc++-2.0/include\r
110             -I${gtk}/include/gtk-2.0\r
111                     -I${gtk}/lib/gtk-2.0/include\r
112             -I${gtk}/include/atk-1.0\r
113                     -I${gtk}/include/pango-1.0\r
114             -I${gtk}/include/glib-2.0\r
115                     -I${gtk}/lib/glib-2.0/include\r
116                     <!-- OTHER -->\r
117             -I${gtk}/include/libxml2 \r
118                         -I${gtk}/include/freetype2\r
119                     -I${gtk}/include/cairo\r
120                     <!-- PERL -->\r
121                     -Wno-comment -I${gtk}/perl/lib/CORE\r
122                     <!-- PYTHON -->\r
123                     -I${gtk}/python/include\r
124         </includes>\r
125         </cc>\r
126   </target>\r
127   \r
128   <target name="lib" depends="compile">\r
129     <ar file="${build}/libinkscape.a">\r
130            <fileset dir="${build}/obj">\r
131                <exclude name="main,o"/>\r
132                <exclude name="winmain,o"/>\r
133            </fileset>\r
134         </ar>\r
135   </target>\r
136 \r
137   <target name="i18n" depends="compile">\r
138     <msgfmt todir="${build}/po">\r
139            <fileset dir="po">\r
140            </fileset>\r
141         </msgfmt>\r
142   </target>\r
143 \r
144   <target name="link" depends="lib">\r
145     <rc command="windres -o" \r
146             file="${src}/inkscape.rc"\r
147             out="${build}/inkres.o">\r
148                 <flags>\r
149                 --include-dir=${src}\r
150                 </flags>\r
151         </rc>\r
152     <link command="g++" out="${build}/inkscape.exe">\r
153        <flags>\r
154        </flags>\r
155            <fileset>\r
156                <include name="${build}/inkres.o"/>\r
157                <include name="${build}/obj/main.o"/>\r
158                <include name="${build}/obj/winmain.o"/>\r
159                <include name="${build}/libinkscape.a"/>\r
160            </fileset>\r
161            <libs>\r
162                -L${gtk}/lib\r
163            -lgtkmm-2.4 -lgdkmm-2.4 -lglibmm-2.4\r
164            -latkmm-1.6 -lpangomm-1.4 -lsigc-2.0\r
165            -lgtk-win32-2.0 -lgdk-win32-2.0 -latk-1.0\r
166            -lgdk_pixbuf-2.0\r
167            -lpangocairo-1.0 -lpangoft2-1.0 -lpangowin32-1.0 -lpango-1.0\r
168            -lgobject-2.0 -lgmodule-2.0 -lgthread-2.0 -lglib-2.0 -lcairo\r
169            <!-- PERL -->\r
170                    -L${gtk}/perl/lib/CORE -lperl58\r
171            <!-- PYTHON -->\r
172            -L${gtk}/python/libs -lpython24\r
173            ${gtk}/bin/libxml2.dll\r
174            ${gtk}/lib/iconv.lib\r
175            -lfreetype.dll -lfontconfig.dll\r
176            -llcms.dll\r
177            -lssl -lcrypto\r
178            -lpng -lpopt ${gtk}/lib/zdll.lib\r
179            -lgc -mwindows -lws2_32 -lintl -lm\r
180            </libs>\r
181         </link>\r
182   </target>\r
183 \r
184   <target name="dist" depends="link"\r
185         description="generate the distribution" >\r
186     <!-- Create the distribution directory -->\r
187     <copy file="${build}/inkscape.exe" todir="${dist}"/>\r
188     <copy file="AUTHORS" todir="${dist}"/>\r
189     <copy file="COPYING" todir="${dist}"/>\r
190     <copy file="COPYING.LIB" todir="${dist}"/>\r
191     <copy file="NEWS" todir="${dist}"/>\r
192     <copy file="README" todir="${dist}"/>\r
193     <copy file="TRANSLATORS" todir="${dist}"/>\r
194     <copy file="${gtk}/bin/libatkmm-1.6-1.dll" todir="${dist}"/>\r
195     <copy file="${gtk}/bin/libglibmm-2.4-1.dll" todir="${dist}"/>\r
196     <copy file="${gtk}/bin/libgtkmm-2.4-1.dll" todir="${dist}"/>\r
197     <copy file="${gtk}/bin/libgdkmm-2.4-1.dll" todir="${dist}"/>\r
198     <copy file="${gtk}/bin/libpangomm-1.4-1.dll" todir="${dist}"/>\r
199     <copy file="${gtk}/bin/libsigc-2.0-0.dll" todir="${dist}"/>\r
200     <copy file="${gtk}/bin/freetype6.dll" todir="${dist}"/>\r
201     <copy file="${gtk}/bin/libatk-1.0-0.dll" todir="${dist}"/>\r
202     <copy file="${gtk}/bin/libgdk-win32-2.0-0.dll" todir="${dist}"/>\r
203     <copy file="${gtk}/bin/libgdk_pixbuf-2.0-0.dll" todir="${dist}"/>\r
204     <copy file="${gtk}/bin/libglib-2.0-0.dll" todir="${dist}"/>\r
205     <copy file="${gtk}/bin/libgmodule-2.0-0.dll" todir="${dist}"/>\r
206     <copy file="${gtk}/bin/libgobject-2.0-0.dll" todir="${dist}"/>\r
207     <copy file="${gtk}/bin/libgtk-win32-2.0-0.dll" todir="${dist}"/>\r
208     <copy file="${gtk}/bin/libgthread-2.0-0.dlll" todir="${dist}"/>\r
209     <copy file="${gtk}/bin/libcairo-2.dll" todir="${dist}"/>\r
210     <copy file="${gtk}/bin/libpangocairo-1.0-0.dll" todir="${dist}"/>\r
211     <copy file="${gtk}/bin/libpango-1.0-0.dll" todir="${dist}"/>\r
212     <copy file="${gtk}/bin/libpangoft2-1.0-0.dll" todir="${dist}"/>\r
213     <copy file="${gtk}/bin/libpangowin32-1.0-0.dll" todir="${dist}"/>\r
214     <copy file="${gtk}/bin/freetype6.dll" todir="${dist}"/>\r
215     <copy file="${gtk}/bin/libfontconfig-1.dll" todir="${dist}"/>\r
216     <copy file="${gtk}/bin/libxml2.dll" todir="${dist}"/>\r
217     <copy file="${gtk}/bin/xmlparse.dll" todir="${dist}"/>\r
218     <copy file="${gtk}/bin/jpeg62.dll" todir="${dist}"/>\r
219     <copy file="${gtk}/bin/libintl-2.dll" todir="${dist}"/>\r
220     <copy file="${gtk}/bin/libintl-2.dll" tofile="${dist}/intl.dll"/>\r
221     <copy file="${gtk}/bin/libpng13.dlll" todir="${dist}"/>\r
222     <copy file="${gtk}/bin/msvcr70.dll" todir="${dist}"/>\r
223     <copy file="${gtk}/bin/msvcr71.dll" todir="${dist}"/>\r
224     <copy file="${gtk}/bin/zlib1.dll" todir="${dist}"/>\r
225     <copy file="${gtk}/bin/iconv.dll" todir="${dist}"/>\r
226     <copy file="${gtk}/bin/popt1.dll" todir="${dist}"/>\r
227     <copy file="${gtk}/bin/liblcms-1.dll" todir="${dist}"/>\r
228 \r
229     <!-- MSGFMT files -->\r
230     <copy todir="${dist}"> <fileset dir="${build}/po"/> </copy>\r
231 \r
232     <!-- GTK -->\r
233     <copy todir="${dist}"> <fileset dir="${gtk}/etc"/> </copy>\r
234     <copy file="${gtk}/share/themes/MS-Windows/gtk-2.0/gtkrc" todir="${dist}/etc/gtk-2.0"/>\r
235     <copy todir="${dist}/lib"> <fileset dir="${gtk}/lib/gtk-2.0"/> </copy>\r
236     <copy todir="${dist}/lib"> <fileset dir="${gtk}/lib/glib-2.0"/> </copy>\r
237     <copy todir="${dist}/lib"> <fileset dir="${gtk}/lib/locale"/> </copy>\r
238     <copy todir="${dist}/lib"> <fileset dir="${gtk}/lib/pango"/> </copy>\r
239     <copy todir="${dist}"> <fileset dir="share"/> </copy>\r
240     <copy todir="${dist}/share"> <fileset dir="${gtk}/share/themes"/> </copy>\r
241     <mkdir dir="${dist}/data"/>\r
242     <mkdir dir="${dist}/locale"/>\r
243     <mkdir dir="${dist}/modules"/>\r
244     <mkdir dir="${dist}/plugins"/>\r
245     <copy file="${gtk}/bin/gdb.exe" todir="${dist}"/>\r
246 \r
247     <!-- PERL -->\r
248     <copy file="${gtk}/perl/bin/perl58.dll" todir="${dist}"/>\r
249 \r
250     <!-- PYTHON -->\r
251     <copy file="${gtk}/python/python24.dll" todir="${dist}"/>\r
252     <copy file="${gtk}/python/python.exe" todir="${dist}/python"/>\r
253     <copy todir="${dist}/python"> <fileset dir="${gtk}/python/Lib"/> </copy>\r
254     <copy todir="${dist}/python"> <fileset dir="${gtk}/python/DLLs"/> </copy>\r
255     <copy todir="${dist}/python"> <fileset dir="${gtk}/python/Scripts"/> </copy>\r
256 \r
257 \r
258   </target>\r
259 \r
260   <target name="clean"\r
261         description="clean up" >\r
262     <!-- Delete the ${build} and ${dist} directory trees -->\r
263     <delete dir="${build}"/>\r
264     <delete dir="${dist}"/>\r
265   </target>\r
266 </project>\r
267 \r