Code

make aspell optional
[inkscape.git] / build.xml
1 <!--
2  * Inkscape build file.
3  *
4  * See buildtool.cpp for use.
5  *
6  * Authors:
7  *   Bob Jamison
8  *   Others 
9  *
10  * Copyright (C) 2006-2008 Inkscape.org
11  *
12  *  This library is free software; you can redistribute it and/or
13  *  modify it under the terms of the GNU Lesser General Public
14  *  License as published by the Free Software Foundation; either
15  *  version 2.1 of the License, or (at your option) any later version.
16  *
17  *  This library is distributed in the hope that it will be useful,
18  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
19  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
20  *  Lesser General Public License for more details.
21  *
22  *  You should have received a copy of the GNU Lesser General Public
23  *  License along with this library; if not, write to the Free Software
24  *  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
25 -->
29 <!--
30 ########################################################################
31 ## P R O J E C T   :   I N K S C A P E
32 ########################################################################
33 -->
34 <project name="Inkscape" default="dist-inkscape" basedir=".">
35     <description>
36         Build file for the Inkscape SVG editor.  This file
37         was written for GTK-2.10 on Win32, but it should work
38         well for other types of builds with only minor adjustments.
39         Note that the default target is 'dist'.  You can execute other
40         targets instead, by "btool {target}",  like  "btool compile", if
41         you want to save time.
42     </description>
44   <!-- set global properties for this build -->
45   <property name="version"       value="0.46+devel"/>
46   <property name="src"           location="src"/>
47   <property name="lib"           location="lib"/>
48   <property name="build"         location="build"/>
49   <property name="dist"          location="inkscape"/>
51   <!-- Use these settings for the native compiler -->  
52   <!-- -->
53   <property name="arch"          value="mingw32-"/>
54   <property name="archutil"      value=""/>
55   <property name="devlibs"       location="${env.DEVLIBS_PATH}"/>
56   <property name="mingw_bin"     location="${env.MINGW_BIN}"/>
57   <property name="cxxtest"       location="cxxtest"/>
58   <!-- -->
60   <!-- Use these settings for the cross compiler -->  
61   <!--
62   <property name="arch"          value="i686-pc-mingw32-"/>
63   <property name="archutil"      value="${arch}"/>
64   <property name="devlibs"       location="/target"/>
65   -->
67   <!-- Extra properties -->  
68   <property name="refresh"       value="false"/>
70   <!--
71     This is for package-config.  With these two settings, pkg-config
72     queries can be as simple as ${pcc.packageName} for cflags, and
73     ${pcl.packageName} for libs.  Dependencies are calculated automatically.
74   -->
75   <property name="pkg-config-path"   location="${devlibs}/lib/pkgconfig"/>
76   <property name="pkg-config-prefix" location="${devlibs}"/>
79   <!--
80   ########################################################################
81   ## T A R G E T    :    I N I T
82   ########################################################################
83   -->
84   <target name="init"
85       description=
86       "Do all preparatory tasks, like make directories and copy files">
89     <mkdir dir="${build}"/>
90     <mkdir dir="${build}/java"/>
91     <mkdir dir="${build}/java/classes"/>
92     <mkdir dir="${build}/java/lib"/>
93     <mkdir dir="${dist}"/>
94     
95     <copy file="${src}/helper/sp-marshal.h.mingw"
96           tofile="${src}/helper/sp-marshal.h"/>
97     <copy file="${src}/helper/sp-marshal.cpp.mingw"
98           tofile="${src}/helper/sp-marshal.cpp"/>
99           
100     <makefile file="${src}/inkscape-version.cpp">
101         namespace Inkscape {
102             char const *version_string = "${version} r${svn.revision}";
103         }
104     </makefile>
105     <makefile file="config.h">
106         #ifndef _CONFIG_H_
107         #define _CONFIG_H_
109         #ifndef WIN32
110         #define WIN32
111         #endif
113         /*######################################
114         ## This is for require-config.h, whose
115         ## purpose I cannot fathom.
116         ######################################*/
117         
118         #define PACKAGE_TARNAME
120         /*######################################
121         #### RESOURCE DIRECTORIES
122         ######################################*/
124         #define INKSCAPE_DATADIR       "."
125         #define PACKAGE_LOCALE_DIR     "locale"
128         /*######################################
129         #### OTHER DEFINITIONS
130         ######################################*/
132         #define GETTEXT_PACKAGE "inkscape"
134         #define PACKAGE_STRING                VERSION
136         #define HAVE_GETOPT_H                 1
137         #define HAVE_STRING_H                 1
138         #define HAVE_LIBINTL_H                1
139         #define HAVE_MALLOC_H                 1
140         #define HAVE_STDLIB_H                 1
141         #define HAVE_SYS_STAT_H               1
142         #define HAVE_INTTYPES_H               1
143         #define HAVE_OPENMP                   1
145         #define ENABLE_LCMS                   1
147         #define ENABLE_NLS                    1
148         #define HAVE_BIND_TEXTDOMAIN_CODESET  1
150         /* keep binreloc off */
151         #define BR_PTHREADS 0
152         #undef ENABLE_BINRELOC
154         /* CairoPDF options */
155         #define HAVE_CAIRO_PDF                1
156         #define PANGO_ENABLE_ENGINE           1
157         #define RENDER_WITH_PANGO_CAIRO       1
159         #define HAVE_GTK_WINDOW_FULLSCREEN    1
160         
161         /* internal interpreter */
162         #define WITH_PYTHON                   1
164         /* shared whiteboard */
165         #define WITH_INKBOARD                 1
166         #define HAVE_SSL                      1
167         
168         /* use poppler for pdf import? */
169         #define HAVE_POPPLER                  1
170         #define HAVE_POPPLER_CAIRO            1
172         /* do we want bitmap manipulation? */
173         #define WITH_IMAGE_MAGICK             1
175         /* Allow reading WordPerfect? */
176         #define WITH_LIBWPG                   1
178         /* Do we support SVG Fonts? */
179         #define ENABLE_SVG_FONTS              1
181         /* Do we want experimental, unsupported, unguaranteed, etc., LivePathEffects enabled? */
182         // #define LPE_ENABLE_TEST_EFFECTS    1
184         #define HAVE_ASPELL                   1
186         #endif /* _CONFIG_H_ */
187     </makefile>
188   </target>
190   <!--
191   ########################################################################
192   ## T A R G E T    :    C X X T E S T
193   ########################################################################
194   -->
195   <target name="cxxtest" depends="init"
196         description="generate test files" >
198     <!-- Generate CxxTest files -->
199     <cxxtestpart command="${devlibs}/python/python.exe ${cxxtest}/cxxtestgen.py --have-eh"
200                  out="${src}/test-src.cpp">
201         <fileset dir="${src}">
202             <include name="attributes-test.h"/>
203             <include name="color-profile-test.h"/>
204             <include name="dir-util-test.h"/>
205             <include name="extract-uri-test.h"/>
206             <include name="mod360-test.h"/>
207             <include name="preferences-test.h"/>
208             <include name="round-test.h"/>
209             <include name="sp-gradient-test.h"/>
210             <include name="sp-style-elem-test.h"/>
211             <include name="syle-test.h"/>
212             <include name="test-helpers.h"/>
213             <include name="verbs-test.h"/>
214         </fileset>
215     </cxxtestpart>
216     <cxxtestpart command="${devlibs}/python/python.exe ${cxxtest}/cxxtestgen.py --have-eh"
217                  out="${src}/display/test-display.cpp">
218         <fileset dir="${src}/display">
219             <include name="curve-test.h"/>
220         </fileset>
221     </cxxtestpart>
222     <cxxtestpart command="${devlibs}/python/python.exe ${cxxtest}/cxxtestgen.py --have-eh"
223                  out="${src}/helper/test-helper.cpp">
224         <fileset dir="${src}/helper">
225             <include name="units-test.h"/>
226         </fileset>
227     </cxxtestpart>
228     <cxxtestpart command="${devlibs}/python/python.exe ${cxxtest}/cxxtestgen.py --have-eh"
229                  out="${src}/libnr/test-nr.cpp">
230         <fileset dir="${src}/libnr">
231             <include name="nr-compose-test.h"/>
232             <include name="nr-types-test.h"/>
233             <include name="nr-translate-test.h"/>
234             <include name="nr-rotate-test.h"/>
235             <include name="nr-scale-test.h"/>
236             <include name="nr-point-fns-test.h"/>
237             <include name="nr-rotate-fns-test.h"/>
238             <include name="in-svg-plane-test.h"/>
239             <include name="nr-matrix-test.h"/>
240         </fileset>
241     </cxxtestpart>
242     <cxxtestpart command="${devlibs}/python/python.exe ${cxxtest}/cxxtestgen.py --have-eh"
243                  out="${src}/svg/test-svg.cpp">
244         <fileset dir="${src}/svg">
245             <include name="css-ostringstream-test.h"/>
246             <include name="stringstream-test.h"/>
247             <include name="svg-affine-test.h"/>
248             <include name="svg-color-test.h"/>
249             <include name="svg-length-test.h"/>
250             <include name="svg-path-geom-test.h"/>
251         </fileset>
252     </cxxtestpart>
253     <cxxtestpart command="${devlibs}/python/python.exe ${cxxtest}/cxxtestgen.py --have-eh"
254                  out="${src}/util/test-util.cpp">
255         <fileset dir="${src}/util">
256             <include name="list-container-test.h"/>
257         </fileset>
258     </cxxtestpart>
259     <cxxtestpart command="${devlibs}/python/python.exe ${cxxtest}/cxxtestgen.py --have-eh"
260                  out="${src}/xml/test-xml.cpp">
261         <fileset dir="${src}/xml">
262             <include name="repr-action-test.h"/>
263             <include name="quote-test.h"/>
264         </fileset>
265     </cxxtestpart>
266     <cxxtestroot command="${devlibs}/python/python.exe ${cxxtest}/cxxtestgen.py" 
267                  out="${src}/test-main.cpp"
268                  template="${src}/cxxtest-template.tpl">
269         <fileset dir="${src}">
270             <include name="MultiPrinter.h"/>
271             <include name="PylogFormatter.h"/>
272             <include name="TRPIFormatter.h"/>
273         </fileset>
274     </cxxtestroot>
275   </target>
278   <!--
279   ########################################################################
280   ## T A R G E T    :    C O M P I L E
281   ########################################################################
282   -->
283   <target name="compile" depends="cxxtest"
284         description="compile the source to .o" >
286     <!-- Compile from source to build -->
287     <cc cc="${arch}gcc" cxx="${arch}g++"
288              destdir="${build}/obj"
289              continueOnError="true"
290              refreshCache="${refresh}">
291         <fileset dir="${src}">
292             <!-- THINGS TO EXCLUDE -->
293             <exclude name="2geom/chebyshev.cpp"/>
294             <exclude name="ast/.*"/>
295             <exclude name="bonobo/.*"/>
296             <exclude name="deptool.cpp"/>
297             <!--<exclude name="test-main.cpp"/>-->
298             <!--<exclude name="test-src.cpp"/>-->
299             <exclude name="display/test-display.cpp"/>
300             <exclude name="display/testnr.cpp"/>
301             <exclude name="dom/work/.*"/>
302             <exclude name="dom/odf/SvgOdg.cpp"/>
303             <exclude name="extension/api.cpp"/>
304             <exclude name="extension/dxf2svg/.*"/>
305             <exclude name="extension/implementation/plugin.cpp"/>
306             <exclude name="extension/script/bindtest.cpp"/>
307             <exclude name="extension/script/cpptest.cpp"/>
308             <exclude name="extension/plugin/.*"/>
309             <exclude name="extract-uri-test.cpp"/>
310             <exclude name="helper/units-test.cpp"/>
311             <!-- exclude name="inkview.cpp"/-->
312             <!--<exclude name="libnr/test-nr.cpp"/>-->
313             <exclude name="libnr/test-nr-main.cpp"/>
314             <exclude name="libnr/testnr.cpp"/>
315             <exclude name="libnr/in-svg-plane-test.cpp"/>
316             <exclude name="libnr/nr-matrix-test.cpp"/>
317             <exclude name="libnr/nr-point-fns-test.cpp"/>
318             <exclude name="libnr/nr-rotate-fns-test.cpp"/>
319             <exclude name="libnr/nr-rotate-test.cpp"/>
320             <exclude name="libnr/nr-scale-test.cpp"/>
321             <exclude name="libnr/nr-translate-test.cpp"/>
322             <exclude name="libnr/nr-types-test.cpp"/>
323             <exclude name="livarot/Path-test.cpp"/>
324             <exclude name="mod360-test.cpp"/>
325             <exclude name="trace/potrace/potest.cpp"/>
326             <exclude name="round-test.cpp"/>
327             <exclude name="sp-gradient-test.cpp"/>
328             <exclude name="style-test.cpp"/>
329             <exclude name="svg/ftos.cpp"/>
330             <!--<exclude name="svg/test-svg.cpp"/>-->
331             <exclude name="svg/test-svg-main.cpp"/>
332             <exclude name="svg/test-stubs.cpp"/>
333             <exclude name="util/list-container-test.cpp"/>
334             <exclude name="widgets/test-widgets.cpp"/>
335             <exclude name="xml/quote-test.cpp"/>
336             <exclude name="xml/repr-action-test.cpp"/>
337             <exclude name="xml/test-xml.cpp"/>
338             <!--<exclude name="xml/test-xml-main.cpp"/>-->
339             <exclude name="io/streamtest.cpp"/>
340             <!--JABBER-->
341             <exclude name="pedro/pedrogui.cpp"/>
342             <exclude name="pedro/pedrogui.h"/>
343             <exclude name="pedro/work/.*"/>
344             <!--WHITEBOARD-->
345             <exclude name="ui/dialog/session-player.cpp"/>
346             <exclude name="ui/dialog/whiteboard-connect.cpp"/>
347             <exclude name="ui/dialog/whiteboard-sharewithchat.cpp"/>
348             <exclude name="ui/dialog/whiteboard-sharewithuser.cpp"/>
349             <exclude name="dialogs/whiteboard-connect-dialog.cpp"/>
350             <exclude name="dialogs/whiteboard-common-dialog.cpp"/>
351             <exclude name="dialogs/whiteboard-sharewithchat-dialog.cpp"/>
352             <exclude name="dialogs/whiteboard-sharewithuser-dialog.cpp"/>
353             <exclude name="jabber_whiteboard/node-tracker.cpp"/>
354             <exclude name="jabber_whiteboard/node-utilities.cpp"/>
355             <!--OVERLAP-->
356             <exclude name="removeoverlap/placement_SolveVPSC.cpp"/>
357             <exclude name="removeoverlap/placement_SolveVPSC.h"/>
358             <exclude name="removeoverlap/test.cpp"/>
359             <exclude name="removeoverlap/remove_rectangle_overlap-test.cpp"/>
360             <exclude name="removeoverlap/remove_rectangle_overlap-test.h"/>
361         </fileset>
362         <excludeinc dir="${src}">
363             <file name="extension/param"/>
364         </excludeinc>
365         <flags>
366             -Wall -Wformat -Werror=format-security -W -Wpointer-arith -Wcast-align -Wsign-compare -Woverloaded-virtual -Wswitch
367             -O2
368             -mms-bitfields
369             -fopenmp
370         </flags>
371         <defines>
372             -DVERSION=\"${version}\"
373             -DHAVE_CONFIG_H
374             -D_INTL_REDIRECT_INLINE
375             -DHAVE_SSL
376             -DRELAYTOOL_SSL="static const int libssl_is_present=1; static int __attribute__((unused)) libssl_symbol_is_present(char *s){ return 1; }" <!-- inkboard -->
377             -DPOPPLER_NEW_GFXFONT <!-- poppler changed the api for 0.8.3 -->
378         </defines>
379         <includes>
380             -I${devlibs}/include
381             <!-- GTK / GTKMM -->
382             ${pcc.gtkmm-2.4}
383             <!-- OTHER -->
384             -I${devlibs}/include/libxml2 
385             ${pcc.freetype2}
386             ${pcc.cairo}
387             ${pcc.poppler}
388             -I${devlibs}/include/gc
389             ${pcc.libwpg-0.1} ${pcc.libwpg-stream-0.1}
390             -I${cxxtest}
391             <!-- PERL -->
392             <!-- -Wno-comment -I${devlibs}/perl/lib/CORE -->
393             <!-- PYTHON -->
394             -I${devlibs}/python/include
395             <!-- JAVA -->
396             -I${src}/bind/javainc -I${src}/bind/javainc/win32
397         </includes>
398     </cc>
399   </target>
400   
402   <!--
403   ########################################################################
404   ## T A R G E T    :    L I B
405   ########################################################################
406   -->
407   <target name="lib" depends="compile"
408       description="create a static library">
409     <staticlib command="${archutil}ar crsv"
410            file="${build}/libinkscape.a">
411        <fileset dir="${build}/obj">
412            <exclude name="main.o"/>
413            <exclude name="winmain.o"/>
414            <exclude name="inkview.o"/>
415            <!-- CxxTest -->
416            <exclude name="test-main.o"/>
417            <exclude name="test-src.o"/>
418            <exclude name="display/test-display.o"/>
419            <exclude name="helper/test-helper.o"/>
420            <exclude name="libnr/nr-compose-reference.o"/>
421            <exclude name="libnr/test-nr.o"/>
422            <exclude name="svg/test-svg.o"/>
423            <exclude name="util/test-util.o"/>
424            <exclude name="xml/test-xml.o"/>
425        </fileset>
426     </staticlib>
427   </target>
431   <!--
432   ########################################################################
433   ## T A R G E T    :    I 1 8 N
434   ########################################################################
435   -->
436   <target name="i18n" depends="compile"
437       description="compile gettext .po files to .mo">
439     <msgfmt todir="${build}/locale" owndir="true"
440          out="LC_MESSAGES/inkscape.mo">
441        <fileset dir="po">
442        </fileset>
443     </msgfmt>
444   </target>
450   <!--
451   ########################################################################
452   ## T A R G E T    :    L I N K
453   ########################################################################
454   -->
455   <target name="link" depends="lib"
456       description="link objects and library to create executable">
458     <rc command="${archutil}windres" 
459         file="${src}/inkscape.rc"
460         out="${build}/inkres.o">
461         <flags>
462         --include-dir=${src}
463         </flags>
464     </rc>
465     <link command="${arch}g++" out="${build}/inkscape.exe"
466               strip="true" symfile="${build}/inkscape.dbg"
467               stripcommand="${archutil}strip"
468               objcopycommand="${archutil}objcopy">
469        <flags>
470            -mwindows
471            -mthreads
472        </flags>
473        <fileset dir="${build}">
474            <include name="inkres.o"/>
475            <include name="obj/main.o"/>
476            <include name="obj/winmain.o"/>
477            <include name="libinkscape.a"/>
478        </fileset>
479        <!-- WARNING: If you change these libraries, don't forget to change them for inkview and cxxtests below as well! -->
480        <libs>
481            -L${devlibs}/lib
482            ${pcl.poppler-cairo} ${pcl.poppler-glib} ${pcl.poppler} 
483            ${pcl.gtkmm-2.4}  ${pcl.pangoft2} ${pcl.gthread-2.0}
484            ${devlibs}/bin/libxml2.dll
485            ${devlibs}/bin/libxslt.dll
486            ${pcl.cairo} ${pcl.cairomm-1.0}
487            ${pcl.libwpg-0.1} ${pcl.libwpg-stream-0.1}
488            ${devlibs}/lib/iconv.lib
489            ${pcl.ImageMagick++}
490            ${pcl.fontconfig} ${pcl.freetype2}
491            -lssl -lcrypto
492            ${pcl.lcms}
493            ${pcl.gsl}
494            -lpng -ljpeg.dll -ltiff.dll -lpopt ${devlibs}/lib/zdll.lib
495            -lgc
496            -lws2_32 -lintl -lgdi32 -lcomdlg32 -lm
497            -lgomp -lpthreadGC2 -laspell
498        </libs>
499     </link>
500   </target>
501   
506   <!--
507   ########################################################################
508   ## T A R G E T    :    L I N K I N K V I E W
509   ########################################################################
510   -->
511   <target name="linkinkview" depends="lib"
512         description="link objects and library to create Inkview executable">
514     <rc command="${archutil}windres" 
515         file="${src}/inkview.rc"
516         out="${build}/inkviewres.o">
517         <flags>
518         --include-dir=${src}
519         </flags>
520     </rc>
521     <link command="${arch}g++" out="${build}/inkview.exe"
522               strip="true" symfile="${build}/inkview.dbg"
523               stripcommand="${archutil}strip"
524               objcopycommand="${archutil}objcopy">
525        <flags>
526            -mwindows
527            -mthreads
528        </flags>
529        <fileset dir="${build}">
530            <include name="inkviewres.o"/>
531            <include name="obj/inkview.o"/>
532            <include name="libinkscape.a"/>
533        </fileset>
534        <libs>
535            -L${devlibs}/lib
536            ${pcl.poppler-cairo} ${pcl.poppler-glib} ${pcl.poppler} 
537            ${pcl.gtkmm-2.4}  ${pcl.pangoft2} ${pcl.gthread-2.0}
538            ${devlibs}/bin/libxml2.dll
539            ${devlibs}/bin/libxslt.dll
540            ${pcl.cairo} ${pcl.cairomm-1.0}
541            ${pcl.libwpg-0.1} ${pcl.libwpg-stream-0.1}
542            ${devlibs}/lib/iconv.lib
543            ${pcl.ImageMagick++}
544            ${pcl.fontconfig} ${pcl.freetype2}
545            -lssl -lcrypto
546            ${pcl.lcms}
547            ${pcl.gsl}
548            -lpng -ljpeg.dll -ltiff.dll -lpopt ${devlibs}/lib/zdll.lib
549            -lgc
550            -lws2_32 -lintl -lgdi32 -lcomdlg32 -lm
551            -lgomp -lpthreadGC2
552        </libs>
553     </link>
554   </target>
558   <!--
559   ########################################################################
560   ## T A R G E T    :    L I N K C X X T E S T S
561   ########################################################################
562   -->
563   <target name="linkcxxtests" depends="lib"
564       description="link objects and library to create executable">
566     <link command="${arch}g++" out="${build}/cxxtests.exe"
567               strip="true" symfile="${build}/cxxtests.dbg"
568               stripcommand="${archutil}strip"
569               objcopycommand="${archutil}objcopy">
570        <flags>
571            -mthreads
572        </flags>
573        <fileset dir="${build}">
574            <include name="obj/test-main.o"/>
575            <include name="obj/test-src.o"/>
576            <include name="obj/display/test-display.o"/>
577            <include name="obj/helper/test-helper.o"/>
578            <include name="obj/libnr/nr-compose-reference.o"/>
579            <include name="obj/libnr/test-nr.o"/>
580            <include name="obj/svg/test-svg.o"/>
581            <include name="obj/util/test-util.o"/>
582            <include name="obj/xml/test-xml.o"/>
583            <include name="libinkscape.a"/>
584        </fileset>
585        <libs>
586            -L${devlibs}/lib
587            ${pcl.poppler-cairo} ${pcl.poppler-glib} ${pcl.poppler} 
588            ${pcl.gtkmm-2.4}  ${pcl.pangoft2} ${pcl.gthread-2.0}
589            ${devlibs}/bin/libxml2.dll
590            ${devlibs}/bin/libxslt.dll
591            ${pcl.cairo} ${pcl.cairomm-1.0}
592            ${pcl.libwpg-0.1} ${pcl.libwpg-stream-0.1}
593            ${devlibs}/lib/iconv.lib
594            ${pcl.ImageMagick++}
595            ${pcl.fontconfig} ${pcl.freetype2}
596            -lssl -lcrypto
597            ${pcl.lcms}
598            ${pcl.gsl}
599            -lpng -ljpeg.dll -ltiff.dll -lpopt ${devlibs}/lib/zdll.lib
600            -lgc
601            -lws2_32 -lintl -lgdi32 -lcomdlg32 -lm
602            -lgomp -lpthreadGC2 
603        </libs>
604     </link>
605   </target>
608   <!--
609   ########################################################################
610   ## T A R G E T    :    D I S T B A S E
611   ########################################################################
612   -->
613   <target name="distbase" depends="i18n"
614       description="generate the distribution directory with all needed files">
616     <!-- Create the distribution directory -->
617     <copy todir="${dist}" file="AUTHORS"/>
618     <copy todir="${dist}" file="COPYING"/>
619     <copy todir="${dist}" file="COPYING.LIB"/>
620     <copy todir="${dist}" file="NEWS"/>
621     <copy todir="${dist}" file="README"/>
622     <copy todir="${dist}" file="TRANSLATORS"/>
623     <copy todir="${dist}" file="${devlibs}/bin/libatkmm-1.6-1.dll"/>
624     <copy todir="${dist}" file="${devlibs}/bin/libglibmm-2.4-1.dll"/>
625     <copy todir="${dist}" file="${devlibs}/bin/libgtkmm-2.4-1.dll"/>
626     <copy todir="${dist}" file="${devlibs}/bin/libgdkmm-2.4-1.dll"/>
627     <copy todir="${dist}" file="${devlibs}/bin/libpangomm-1.4-1.dll"/>
628     <copy todir="${dist}" file="${devlibs}/bin/libcairomm-1.0-1.dll"/>
629     <copy todir="${dist}" file="${devlibs}/bin/libsigc-2.0-0.dll"/>
630     <copy todir="${dist}" file="${devlibs}/bin/freetype6.dll"/>
631     <copy todir="${dist}" file="${devlibs}/bin/libatk-1.0-0.dll"/>
632     <copy todir="${dist}" file="${devlibs}/bin/libgdk-win32-2.0-0.dll"/>
633     <copy todir="${dist}" file="${devlibs}/bin/libgdk_pixbuf-2.0-0.dll"/>
634     <copy todir="${dist}" file="${devlibs}/bin/libglib-2.0-0.dll"/>
635     <copy todir="${dist}" file="${devlibs}/bin/libgmodule-2.0-0.dll"/>
636     <copy todir="${dist}" file="${devlibs}/bin/libgobject-2.0-0.dll"/>
637     <copy todir="${dist}" file="${devlibs}/bin/libgtk-win32-2.0-0.dll"/>
638     <copy todir="${dist}" file="${devlibs}/bin/libgthread-2.0-0.dll"/>
639     <copy todir="${dist}" file="${devlibs}/bin/libgio-2.0-0.dll"/>
640     <copy todir="${dist}" file="${devlibs}/bin/libcairo-2.dll"/>
641     <copy todir="${dist}" file="${devlibs}/bin/libpoppler-3.dll"/>
642     <copy todir="${dist}" file="${devlibs}/bin/libpangocairo-1.0-0.dll"/>
643     <copy todir="${dist}" file="${devlibs}/bin/libpango-1.0-0.dll"/>
644     <copy todir="${dist}" file="${devlibs}/bin/libpangoft2-1.0-0.dll"/>
645     <copy todir="${dist}" file="${devlibs}/bin/libpangowin32-1.0-0.dll"/>
646     <copy todir="${dist}" file="${devlibs}/bin/freetype6.dll"/>
647     <copy todir="${dist}" file="${devlibs}/bin/libfontconfig-1.dll"/>
648     <copy todir="${dist}" file="${devlibs}/bin/libxml2.dll"/>
649     <copy todir="${dist}" file="${devlibs}/bin/libxslt.dll"/>
650     <copy todir="${dist}" file="${devlibs}/bin/libexpat.dll"/>
651     <!--<copy file="${devlibs}/bin/libexpat.dll" tofile="${dist}/xmlparse.dll"/>-->
652     <copy todir="${dist}" file="${devlibs}/bin/libwpg-0.1.dll"/>
653     <copy todir="${dist}" file="${devlibs}/bin/libwpg-stream-0.1.dll"/>
654     <copy todir="${dist}" file="${devlibs}/bin/libwpd-0.8.dll"/>
655     <copy todir="${dist}" file="${devlibs}/bin/libwpd-stream-0.8.dll"/>
656     <copy todir="${dist}" file="${devlibs}/bin/jpeg62.dll"/>
657     <copy todir="${dist}" file="${devlibs}/bin/libpng13.dll"/>
658     <!-- GTK changed their dep file name for PNG!   :-(  -->
659     <copy todir="${dist}" file="${devlibs}/bin/libpng12-0.dll"/>
660     <copy todir="${dist}" file="${devlibs}/bin/libtiff3.dll"/>
661     <copy todir="${dist}" file="${devlibs}/bin/msvcr70.dll"/>
662     <copy todir="${dist}" file="${devlibs}/bin/msvcr71.dll"/>
663     <copy todir="${dist}" file="${devlibs}/bin/zlib1.dll"/>
664     <copy todir="${dist}" file="${devlibs}/bin/iconv.dll"/>
665     <copy todir="${dist}" file="${devlibs}/bin/libpopt-0.dll"/>
666     <copy todir="${dist}" file="${devlibs}/bin/liblcms-1.dll"/>
667     <copy todir="${dist}" file="${devlibs}/bin/intl.dll"/>
668     <copy todir="${dist}" file="${devlibs}/bin/pthreadGC2.dll"/>
669     <copy file="${devlibs}/bin/intl.dll" tofile="${dist}/libintl-2.dll"/>
670     <!-- MINGW dll needed, I think for openmp support  -->
671     <copy todir="${dist}" file="${mingw_bin}/mingwm10.dll"/>
673     <!-- MSGFMT files -->
674     <copy todir="${dist}">
675         <fileset dir="${build}/locale">
676           <exclude name=".*\.am"/>
677         </fileset>
678     </copy>
680     <mkdir dir="${dist}/data"/>
681     <mkdir dir="${dist}/locale"/>
682     <mkdir dir="${dist}/modules"/>
683     <mkdir dir="${dist}/plugins"/>
685     <!-- GTK -->
686     <copy todir="${dist}">     <fileset dir="${devlibs}/etc"/> </copy>
687     <copy todir="${dist}/lib"> <fileset dir="${devlibs}/lib/gtk-2.0"/> </copy>
688     <copy todir="${dist}/lib"> <fileset dir="${devlibs}/lib/glib-2.0"/> </copy>
689     <copy todir="${dist}">
690         <fileset dir="share">
691           <exclude name=".*\.am"/>
692         </fileset>
693     </copy>
694     <copy todir="${dist}/share"> <fileset dir="${devlibs}/share/locale"/> </copy>
695     <copy todir="${dist}/share"> <fileset dir="${devlibs}/share/themes"/> </copy>
696     <copy todir="${dist}/share"> <fileset dir="${devlibs}/share/poppler"/> </copy>
697     <copy todir="${dist}" file="${devlibs}/bin/gdb.exe"/>
699     <!-- Aspell dictionaries -->
700     <copy todir="${dist}/lib"> <fileset dir="${devlibs}/lib/aspell-0.60"/> </copy>
702     <!-- Necessary to run extensions on windows if it is not in the path -->
703     <copy todir="${dist}" file="${devlibs}/bin/gspawn-win32-helper.exe"/>
704     <copy todir="${dist}" file="${devlibs}/bin/gspawn-win32-helper-console.exe"/>
706     <!-- PERL -->
707     <copy todir="${dist}" file="${devlibs}/perl/bin/perl58.dll"/>
709     <!-- PYTHON -->
710     <copy todir="${dist}" file="${devlibs}/python/python25.dll"/>
711     <copy todir="${dist}/python" file="${devlibs}/python/python.exe" />
712     <copy todir="${dist}/python" file="${devlibs}/python/pythonw.exe"/>
713     <copy todir="${dist}/python"> <fileset dir="${devlibs}/python/Lib"/> </copy>
714     <copy todir="${dist}/python"> <fileset dir="${devlibs}/python/DLLs"/> </copy>
715     <copy todir="${dist}/python"> <fileset dir="${devlibs}/python/Scripts"/> </copy>
717     <!--<copy file="${devlibs}/share/themes/MS-Windows/gtk-2.0/gtkrc" todir="${dist}/etc/gtk-2.0"/>-->
718     <makefile file="${dist}/etc/gtk-2.0/gtkrc">
719     gtk-icon-sizes = "gtk-menu=16,16:gtk-small-toolbar=16,16:gtk-large-toolbar=24,24:gtk-dnd=32,32:inkscape-decoration=16,16"
720     gtk-toolbar-icon-size = small-toolbar
722     # disable images in buttons. i've only seen ugly delphi apps use this feature.
723     gtk-button-images = 0
724     
725     # disable the annoying beep in editable controls
726     gtk-error-bell = 0
728     # enable/disable images in menus. most "stock" microsoft apps don't use these, except sparingly.
729     # the office apps use them heavily, though.
730     gtk-menu-images = 1
732     # use the win32 button ordering instead of the GNOME HIG one, where applicable
733     gtk-alternative-button-order = 1
735     style "msw-default"
736     {
737       GtkWidget::interior-focus = 1
738       GtkOptionMenu::indicator-size = { 9, 5 }
739       GtkOptionMenu::indicator-spacing = { 7, 5, 2, 2 }
740       GtkSpinButton::shadow-type = in
742       # Owen and I disagree that these should be themable
743       #GtkUIManager::add-tearoffs = 0
744       #GtkComboBox::add-tearoffs = 0
746       GtkComboBox::appears-as-list = 1
747       GtkComboBox::focus-on-click = 0
749       GOComboBox::add_tearoffs = 0
751       GtkTreeView::allow-rules = 0
752       GtkTreeView::expander-size = 12
754       GtkExpander::expander-size = 12
756       GtkScrolledWindow::scrollbar_spacing = 1
758       GtkSeparatorMenuItem::horizontal-padding = 2
760       engine "wimp"
761       {
762       }
763     }
764     class "*" style "msw-default"
765     </makefile>
767   </target>
770   <!--
771   ########################################################################
772   ## T A R G E T    :    D I S T - I N K S C A P E
773   ########################################################################
774   -->
775   <target name="dist-inkscape" depends="link,distbase"
776       description="copy inkscape to the distribution directory">
778     <!-- Create the distribution directory -->
779     <copy todir="${dist}" file="${build}/inkscape.exe"/>
780     <copy todir="${dist}" file="${build}/inkscape.dbg"/>
781   </target>
784   <!--
785   ########################################################################
786   ## T A R G E T    :    D I S T - I N K V I E W
787   ########################################################################
788   -->
789   <target name="dist-inkview" depends="linkinkview,distbase"
790       description="copy inkview to the distribution directory">
792     <!-- Create the distribution directory -->
793     <copy todir="${dist}" file="${build}/inkview.exe"/>
794     <copy todir="${dist}" file="${build}/inkview.dbg"/>
795   </target>
798   <!--
799   ########################################################################
800   ## T A R G E T    :    C H E C K
801   ########################################################################
802   -->
803   <target name="check" depends="linkcxxtests,distbase"
804       description="perform unit tests">
805     <cxxtestrun command="${build}/cxxtests" workingdir="${dist}" />
806   </target>
809   <!--
810   ########################################################################
811   ## T A R G E T    :    JAVAC
812   ########################################################################
813   -->
814   <target name="javac" depends="init"
815       description="compile java binding classes">
816     <javac srcdir="${src}/bind/java" destdir="${build}/java/classes"/>
817   </target>
820   <!--
821   ########################################################################
822   ## T A R G E T    :    JAR
823   ########################################################################
824   -->
825   <target name="jar" depends="javac"
826       description="pack java classes and resources into a jar file">
827     <copy todir="${build}/java/classes"> <fileset dir="${devlibs}/bind/data"/> </copy>
828     <jar basedir="${build}/java/classes" destfile="${build}/java/lib/inkscape.jar"/>
829   </target>
831   <!--
832   ########################################################################
833   ## T A R G E T    :    BINDDIST
834   ########################################################################
835   -->
836   <target name="binddist" depends="jar"
837       description="pack java classes and resources into a jar file">
838     <copy todir="${dist}/share/bind"> <fileset dir="${devlibs}/bind/java"/> </copy>
839     <copy todir="${dist}/share/bind/java"> <fileset dir="${build}/java/lib"/> </copy>
841   </target>
843   <!--
844   ########################################################################
845   ## T A R G E T    :    BINDCLEAN
846   ########################################################################
847   -->
848   <target name="bindclean" depends=""
849       description="clean up java binding classes">
850         <delete dir="${build}/java"/>
851   </target>
856   <!--
857   ########################################################################
858   ## T A R G E T    :    D I S T - A L L
859   ########################################################################
860   -->
861   <target name="dist-all" depends="dist-inkscape,dist-inkview"
862         description="generate the distribution, along with inkview" >
863   </target>
868   <!--
869   ########################################################################
870   ## T A R G E T    :    D I S T - A L L - C H E C K
871   ########################################################################
872   -->
873   <target name="dist-all-check" depends="dist-all,check"
874         description="generate the distribution, along with inkview and run cxxtests" >
875   </target>
881   <!--
882   ########################################################################
883   ## T A R G E T    :    C L E A N
884   ########################################################################
885   -->
886   <target name="clean" depends="bindclean"
887         description="clean up.  deleting build and distro dirs" >
889     <delete dir="${build}"/>
890     <delete dir="${dist}"/>
891     <delete file="build.dep"/>
892     <delete file="config.h"/>
893     <delete file="${src}/inkscape-version.cpp"/>
895     <delete file="${src}/test-main.cpp"/>
896     <delete file="${src}/test-src.cpp"/>
897     <delete file="${src}/display/test-display.cpp"/>
898     <delete file="${src}/helper/test-helper.cpp"/>
899     <delete file="${src}/libnr/test-nr.cpp"/>
900     <delete file="${src}/svg/test-svg.cpp"/>
901     <delete file="${src}/util/test-util.cpp"/>
902     <delete file="${src}/xml/test-xml.cpp"/>
904   </target>
908 </project>
909 <!--
910 ########################################################################
911 ## E N D
912 ########################################################################
913 -->