ouput_stream jar/java compilation is useless.
[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   <!-- Base of Scilab source tree -->
5   <property name="base.dir" location="../../"/>
6   <!-- Where the module should be created (modules/xxx/jar) -->
7   <property name="build.jar.dir" value="jar/"/>
8   <!-- Where the thirdparty libraries could be found -->
9   <property name="thirdparty.dir" location="${base.dir}/thirdparty/"/>
10   <!-- The building directory -->
11   <property name="build.dir" location="build/"/>
12   <!-- The building test directory -->
13   <property name="build.test.dir" location="${build.dir}/test"/>
14   <!-- Where builded classes will be generated -->
15   <property name="classes.dir" location="${build.dir}/classes"/>
16   <!-- Where builded test classes will be generated -->
17   <property name="classes.test.dir" location="${build.test.dir}/classes"/>
18   <!-- Where we store cache files -->
19   <property name="cache.dir" location="${build.dir}/cachefile"/>
20   <!-- Where we can find the sources -->
21   <property name="src.dir" location="src/java/"/>
22   <!-- Where we can find the test sources -->
23   <property name="src.test.dir" location="tests/java/"/>
24   <!-- Check style definitions -->
25   <property name="checkstyle.config.file" value="${base.dir}/checkstyle/scilab_checkstyle_convention.xml"/>
26   <property name="checkstyle.stylesheet" value="${thirdparty.dir}/checkstyle/contrib/checkstyle-noframes-sorted.xsl"/>
27   <property name="checkstyle.report.dir" value="${build.dir}/checkstyle"/>
28   <property name="checkstyle.xml.report.file" value="${checkstyle.report.dir}/checkstyle_errors.xml"/>
29   <property name="checkstyle.html.report.file" value="${checkstyle.report.dir}/checkstyle_errors.htm"/>
30   <property name="modules.dir" value="${base.dir}/modules"/>
31   <!-- JAR names -->
32   <property file="${base.dir}/scilab-lib.properties"/>
33   <property file="${base.dir}/scilab-lib-doc.properties"/>
34   <!-- Configure ANT flags -->
35   <property file="${base.dir}/scilab.properties"/>
36   <!-- Set ${SCIVERSION} -->
37   <property file="${base.dir}/Version.incl"/>
38   <path id="checkstyle.classpath">
39     <pathelement location="${checkstyle.jar}"/>
40     <pathelement location="${commons-logging.jar}"/>
41     <pathelement location="${commons-beanutils.jar}"/>
42     <pathelement location="${antlr.jar}"/>
43   </path>
44   <path id="unittest.classpath">
45     <pathelement location="${testng.jar}"/>
46     <pathelement location="${jcommander.jar}"/>
47     <pathelement location="${bsh.jar}"/>
48     <pathelement location="${junit.jar}"/>
49     <pathelement location="${qdox.jar}"/>
50   </path>
51   <path id="compile.classpath">
52     <pathelement location="${library.types.dir}/${library.types.name}"/>
53     <pathelement location="${library.graph.dir}/${library.graph.name}"/>
54     <pathelement location="${library.xcos.dir}/${library.xcos.name}"/>
55     <pathelement location="${library.hdf5.dir}/${library.hdf5.name}"/>
56     <pathelement location="${library.scinotes.dir}/${library.scinotes.name}"/>
57     <pathelement location="${library.localization.dir}/${library.localization.name}"/>
58     <pathelement location="${library.history_manager.dir}/${library.history_manager.name}"/>
59     <pathelement location="${library.completion.dir}/${library.completion.name}"/>
60     <pathelement location="${library.console.dir}/${library.console.name}"/>
61     <pathelement location="${library.action_binding.dir}/${library.action_binding.name}"/>
62     <pathelement location="${library.gui.dir}/${library.gui.name}"/>
63     <pathelement location="${library.commons.dir}/${library.commons.name}"/>
64     <pathelement location="${library.jvm.dir}/${library.jvm.name}"/>
65     <pathelement location="${library.renderer.dir}/${library.renderer.name}"/>
66     <pathelement location="${library.graphic_export.dir}/${library.graphic_export.name}"/>
67     <pathelement location="${library.core.dir}/${library.core.name}"/>
68     <!-- Not use at build time but used for unitary tests -->
69     <pathelement location="${library.javasci.dir}/${library.javasci.name}"/>
70     <pathelement location="${library.javasci.dir}/${library.javasci-v1.name}"/>
71     <pathelement location="${commons-logging.jar}"/>
72     <pathelement location="${flexdock.jar}"/>
73     <pathelement location="${gluegen.jar}"/>
74     <pathelement location="${jrosetta-API.jar}"/>
75     <pathelement location="${jrosetta-engine.jar}"/>
76     <pathelement location="${jogl.jar}"/>
77     <pathelement location="${jhdf5.jar}"/>
78     <pathelement location="${jhall.jar}"/>
79     <pathelement location="${jgraphx.jar}"/>
80     <!-- Only usefull for the documentation -->
81     <pathelement location="${library.helptools.dir}/${library.helptools.name}"/>
82     <pathelement location="${batik.jar}"/>
83     <pathelement location="${xml_apis_ext.jar}"/>
84     <pathelement location="${saxon.jar}"/>
85     <pathelement location="${xmlgraphics-commons.jar}"/>
86     <pathelement location="${fop.jar}"/>
87     <pathelement location="${jlatexmath-fop.jar}"/>
88     <pathelement location="${avalon-framework.jar}"/>
89     <pathelement location="${jeuclid-core.jar}"/>
90     <pathelement location="${jlatexmath.jar}"/>
91   </path>
92   <taskdef resource="checkstyletask.properties" classpathref="checkstyle.classpath"/>
93   <!-- Checkstyle process -->
94   <target name="checkstyle" depends="checkstyle-init" description="Generates a report of code convention violations.">
95     <checkstyle config="${checkstyle.config.file}" failOnViolation="false">
96       <fileset dir="${src.dir}" includes="**/*.java"/>
97       <!-- Location of cache-file. -->
98       <property key="checkstyle.cache.file" file="${cache.dir}"/>
99       <formatter type="plain"/>
100       <formatter type="xml" toFile="${checkstyle.xml.report.file}"/>
101     </checkstyle>
102     <xslt in="${checkstyle.xml.report.file}" out="${checkstyle.html.report.file}" style="${checkstyle.stylesheet}"/>
103   </target>
104   <!-- Create the build directory -->
105   <target name="checkstyle-init">
106     <mkdir dir="${checkstyle.report.dir}"/>
107   </target>
108   <!-- Delete the build directory -->
109   <target name="checkstyle-clean">
110     <delete dir="${checkstyle.report.dir}"/>
111   </target>
112   <target name="test" depends="existing-tests, compile-test, validate" if="test-present">
113     <taskdef name="testng" classpathref="unittest.classpath" classname="org.testng.TestNGAntTask"/>
114     <testng verbose="2" haltonfailure="true">
115       <classpath>
116         <path refid="unittest.classpath"/>
117         <path refid="compile.classpath"/>
118         <pathelement location="${classes.test.dir}"/>
119       </classpath>
120       <classfileset dir="${build.test.dir}" includes="**/*.class"/>
121       <!-- Where ${basedir} is the module base directory -->
122       <env key="SCI" value="${basedir}/../.."/>
123       <jvmarg value="-DtestngTests=1"/>
124       <jvmarg value="-Djava.library.path=${base.dir}/modules/.libs/:${base.dir}/modules/javasci/.libs/:${base.dir}/modules/types/.libs/:${base.dir}/modules/localization/.libs/:${base.dir}/modules/commons/.libs/:${base.dir}/modules/action_binding/.libs/:${base.dir}/thirdparty/:${base.dir}/bin/:/usr/lib/jni/:/usr/lib64/jni:"/>
125     </testng>
126   </target>
127   <target name="validate">
128     <!-- Empty target to be override by other build.xml -->
129   </target>
130   <target name="init">
131     <!-- Check the version of Java. If it changes after the configure
132          or if there is a mistake in the build system
133      -->
134     <fail message="JDK 1.6 or 1.7 required">
135       <condition>
136         <not>
137           <or>
138             <equals arg1="${ant.java.version}" arg2="1.6"/>
139             <equals arg1="${ant.java.version}" arg2="1.7"/>
140           </or>
141         </not>
142       </condition>
143     </fail>
144     <mkdir dir="${classes.dir}"/>
145     <mkdir dir="${classes.test.dir}"/>
146     <mkdir dir="${build.jar.dir}"/>
147     <!-- Create the time stamp -->
148     <tstamp/>
149   </target>
150   <!-- Clean sources -->
151   <target name="clean" description="Clean built files" depends="clean-test">
152     <delete dir="${build.dir}"/>
153     <delete dir="${build.jar.dir}"/>
154     <delete file="${build.jar.dir}/${library.name}"/>
155   </target>
156   <!-- Clean test -->
157   <target name="clean-test" description="Clean test files">
158     <delete dir="${build.test.dir}"/>
159   </target>
160   <!-- Compile sources -->
161   <target name="compile" description="Build sources" depends="init">
162     <javac srcdir="${src.dir}" destdir="${classes.dir}" classpathref="compile.classpath" deprecation="on" debug="${build.debug}" verbose="off" listfiles="on" includeAntRuntime="no" source="6" target="6"/>
163   </target>
164   <target name="existing-tests">
165     <available property="test-present" file="${src.test.dir}"/>
166   </target>
167   <!-- Compile test sources -->
168   <target name="compile-test" description="Build tests" depends="existing-tests, clean-test, jar" if="test-present">
169     <!-- clean the test to make sure it will build properly -->
170     <javac srcdir="${src.test.dir}" destdir="${classes.test.dir}" deprecation="on" debug="${build.debug}" verbose="off" listfiles="on" includeAntRuntime="no" source="6" target="6" encoding="UTF-8">
171       <classpath>
172         <path refid="unittest.classpath"/>
173         <path refid="compile.classpath"/>
174       </classpath>
175     </javac>
176   </target>
177   <!-- Create the jar -->
178   <target name="jar" description="Build the jar file" depends="compile">
179     <jar destfile="${build.jar.dir}/${library.name}" basedir="${classes.dir}">
180       <manifest>
181         <attribute name="Built-By" value="${user.name}"/>
182         <section name="org/scilab/modules/${ant.project.name}/">
183           <attribute name="Specification-Title" value="${library.title}"/>
184           <attribute name="Specification-Version" value="${SCIVERSION}"/>
185           <attribute name="Specification-Vendor" value="${library.vendor}"/>
186           <attribute name="Implementation-Title" value="${library.name}"/>
187           <attribute name="Implementation-Version" value="${DSTAMP} ${TSTAMP}"/>
188           <attribute name="Implementation-Vendor" value="${library.vendor}"/>
189           <attribute name="Class-Path" value="${manifest.class-path}"/>
190         </section>
191       </manifest>
192     </jar>
193   </target>
194 </project>