* bug 6873 fixed - A jar file was not available when testng was called.
[scilab.git] / scilab / build.incl.xml
1 <?xml version="1.0" encoding="UTF-8"?>
2 <!-- Common definitions of Java compilation for Scilab --> 
3 <project name="common">
4   
5   <!-- Base of Scilab source tree -->
6   <property name="base.dir"  location="../../" />
7   
8   <!-- Where the module should be created (modules/xxx/jar) -->
9   <property name="build.jar.dir"  value="jar/" />
10   
11   <!-- Where the thirdparty libraries could be found -->
12   <property name="thirdparty.dir" location="${base.dir}/thirdparty/" />
13   
14   <!-- The building directory -->
15   <property name="build.dir" location="build/"/>
16   
17   <!-- The building test directory -->
18   <property name="build.test.dir" location="${build.dir}/test"/>
19   
20   <!-- Where builded classes will be generated -->
21   <property name="classes.dir" location="${build.dir}/classes" />
22   
23   <!-- Where builded test classes will be generated -->
24   <property name="classes.test.dir" location="${build.test.dir}/classes" />
25   
26   <!-- Where we store cache files -->
27   <property name="cache.dir" location="${build.dir}/cachefile" />
28   
29   <!-- Where we can find the sources -->
30   <property name="src.dir"  location="src/java/" />
31
32   <!-- Where we can find the test sources -->
33   <property name="src.test.dir"  location="tests/java/" />
34   
35   <!-- Check style definitions -->
36   <property name = "checkstyle.config.file"      value = "${base.dir}/checkstyle/scilab_checkstyle_convention.xml" />
37   <property name = "checkstyle.stylesheet"       value = "${thirdparty.dir}/checkstyle/contrib/checkstyle-noframes-sorted.xsl" />
38   <property name = "checkstyle.report.dir"       value = "${build.dir}/checkstyle" />
39   <property name = "checkstyle.xml.report.file"  value = "${checkstyle.report.dir}/checkstyle_errors.xml" />
40   <property name = "checkstyle.html.report.file" value = "${checkstyle.report.dir}/checkstyle_errors.htm" />
41   
42   <property name="modules.dir"                 value="${base.dir}/modules" />
43   
44   <property file="${base.dir}/scilab-lib.properties"/>
45
46   <property file="${base.dir}/scilab-lib-doc.properties"/>
47   
48
49   <path id="checkstyle.classpath">
50     <pathelement location="${checkstyle.jar}"/>
51     <pathelement location="${commons-logging.jar}"/>
52     <pathelement location="${commons-beanutils.jar}"/>
53     <pathelement location="${antlr.jar}"/>
54   </path>
55
56   <path id="unittest.classpath">
57     <pathelement location="${testng.jar}"/>
58     <pathelement location="${bsh.jar}"/> 
59     <pathelement location="${junit.jar}"/>
60     <pathelement location="${qdox.jar}"/>
61   </path>
62   
63
64
65   <path id="compile.classpath">
66     <pathelement location="${library.types.dir}/${library.types.name}"/>
67     <pathelement location="${library.types.dir}/${library.output_stream.name}"/>        
68     <pathelement location="${library.graph.dir}/${library.graph.name}"/>
69     <pathelement location="${library.xcos.dir}/${library.xcos.name}"/>
70     <pathelement location="${library.hdf5.dir}/${library.hdf5.name}"/>
71     <pathelement location="${library.scinotes.dir}/${library.scinotes.name}"/>
72     <pathelement location="${library.localization.dir}/${library.localization.name}"/>
73     <pathelement location="${library.shell.dir}/${library.shell.name}"/>
74     <pathelement location="${library.history_manager.dir}/${library.history_manager.name}"/>
75     <pathelement location="${library.completion.dir}/${library.completion.name}"/>
76     <pathelement location="${library.console.dir}/${library.console.name}"/>
77     <pathelement location="${library.action_binding.dir}/${library.action_binding.name}"/>
78     
79     <pathelement location="${library.gui.dir}/${library.gui.name}"/>
80     <pathelement location="${library.commons.dir}/${library.commons.name}"/>
81     <pathelement location="${library.jvm.dir}/${library.jvm.name}"/>
82     <pathelement location="${library.renderer.dir}/${library.renderer.name}"/>
83     <pathelement location="${library.graphic_export.dir}/${library.graphic_export.name}"/>
84     <pathelement location="${library.core.dir}/${library.core.name}"/>
85     
86     <!-- Not use at build time but used for unitary tests -->
87     <pathelement location="${library.javasci.dir}/${library.javasci.name}"/>
88     <pathelement location="${library.javasci.dir}/${library.javasci-v1.name}"/>
89
90
91     <pathelement location="${commons-logging.jar}"/>
92     
93     <pathelement location="${flexdock.jar}"/>
94
95     <pathelement location="${gluegen.jar}"/>
96     
97     <pathelement location="${jrosetta-API.jar}"/>
98     
99     <pathelement location="${jrosetta-engine.jar}"/>
100
101     <pathelement location="${jogl.jar}"/>
102
103     <pathelement location="${jhdf5.jar}"/>
104     
105     <pathelement location="${jhall.jar}"/>
106     
107     <pathelement location="${jgraphx.jar}"/>
108
109     <!-- Only usefull for the documentation -->    
110     <pathelement location="${library.helptools.dir}/${library.helptools.name}"/>
111
112     <pathelement location="${batik.jar}"/>
113
114     <pathelement location="${xml_apis_ext.jar}" />
115
116     <pathelement location="${saxon.jar}"/>
117
118     <pathelement location="${fop.jar}"/>
119
120     <pathelement location="${jlatexmath-fop.jar}"/>
121
122     <pathelement location="${avalon-framework.jar}"/>
123
124     <pathelement location="${avalon-framework-impl.jar}"/>
125
126     <pathelement location="${jeuclid-core.jar}"/>
127
128     <pathelement location="${jlatexmath.jar}"/>
129   </path>
130
131   <taskdef resource="checkstyletask.properties" classpathref="checkstyle.classpath"/>
132   
133   <!-- Checkstyle process -->
134   
135   <target
136       name        = "checkstyle"
137       depends     = "checkstyle-init"
138       description = "Generates a report of code convention violations.">
139     <checkstyle
140         config          = "${checkstyle.config.file}"
141         failOnViolation = "false">
142       <fileset
143           dir      = "${src.dir}"
144           includes = "**/*.java"/>
145       <!-- Location of cache-file. -->
146       <property
147           key  = "checkstyle.cache.file"
148           file = "${cache.dir}"/>
149       <formatter type="plain"/>
150       <formatter
151           type   = "xml"
152           toFile = "${checkstyle.xml.report.file}"/>
153     </checkstyle>
154     <xslt
155         in     = "${checkstyle.xml.report.file}"
156         out    = "${checkstyle.html.report.file}"
157         style  = "${checkstyle.stylesheet}" />
158   </target>
159   
160   <!-- Create the build directory -->
161   
162   <target name="checkstyle-init">
163     <mkdir dir="${checkstyle.report.dir}"/>
164   </target>
165   
166   <!-- Delete the build directory -->
167   
168   <target name="checkstyle-clean">
169     <delete dir="${checkstyle.report.dir}"/>
170   </target>
171
172   <target name="test" depends="existing-tests, compile-test, validate" if="test-present">
173     <taskdef name="testng" classpathref="unittest.classpath" classname="org.testng.TestNGAntTask" />
174     <testng verbose="2"  haltonfailure="true">
175       <classpath>
176         <path refid="unittest.classpath" />
177         <path refid="compile.classpath" />
178         <pathelement location="${classes.test.dir}" />
179       </classpath>
180       <classfileset dir="${build.test.dir}" includes="**/*.class"/>
181       <jvmarg value="-DtestngTests=1"/>
182       <jvmarg value="-DSCI=${base.dir}"/>
183       <jvmarg value="-Djava.library.path=${base.dir}/modules/.libs/:${base.dir}/modules/javasci/.libs/:${base.dir}/modules/localization/.libs/:${base.dir}/thirdparty/:${base.dir}/bin/:/usr/lib/jni/:/usr/lib64/jni:"/>
184     </testng>
185   </target>
186
187   <target name="validate">
188     <!-- Empty target to be override by other build.xml -->
189   </target>
190
191   <target name="init">
192     <mkdir dir="${classes.dir}"/>
193     <mkdir dir="${classes.test.dir}"/>
194     <mkdir dir="${build.jar.dir}"/>
195     <!-- Create the time stamp -->
196     <tstamp/>
197   </target>
198   
199   <!-- Clean sources -->
200   <target name="clean" description="Clean built files" depends="clean-test">
201     <delete dir="${build.dir}"/>
202     <delete dir="${build.jar.dir}"/>
203     <delete file="${build.jar.dir}/${library.name}"/>
204   </target>
205
206   <!-- Clean test -->
207   <target name="clean-test" description="Clean test files">
208     <delete dir="${build.test.dir}"/>
209   </target>
210
211   <!-- Compile sources -->
212   <target name="compile" description="Build sources" depends="init">
213     <javac
214         srcdir="${src.dir}" 
215         destdir="${classes.dir}" 
216         classpathref="compile.classpath" 
217         deprecation="on"
218         debug="off"
219         verbose="off"
220         listfiles="on"
221         includeAntRuntime="no"
222         source="5"
223         />
224   </target>
225
226   <target name="existing-tests">
227     <available property="test-present"
228                file="${src.test.dir}"
229                />    
230   </target>
231
232   <!-- Compile test sources -->
233   <target name="compile-test" description="Build tests" depends="existing-tests, clean-test, jar" if="test-present">
234     <!-- clean the test to make sure it will build properly -->
235     <javac
236         srcdir="${src.test.dir}" 
237         destdir="${classes.test.dir}" 
238         deprecation="on"
239         debug="off"
240         verbose="off"
241         listfiles="on"
242         includeAntRuntime="no"
243         source="5"
244         >
245       <classpath>
246         <path refid="unittest.classpath" />
247         <path refid="compile.classpath" />
248       </classpath>
249     </javac>
250   </target>
251
252   <!-- Create the jar -->
253   <target name="jar" description="Build the jar file" depends="compile">
254     
255     <jar destfile="${build.jar.dir}/${library.name}" basedir="${classes.dir}">
256       <manifest>
257       </manifest>
258     </jar>
259   </target>
260
261 </project>