Changeset 507


Ignore:
Timestamp:
11/19/13 12:22:19 (11 years ago)
Author:
jts21
Message:

new build script

Location:
trunk
Files:
1 added
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/build.xml

    r501 r507  
    1 <!--
     1<?xml version="1.0" encoding="UTF-8" standalone="no"?>
     2<project basedir="." default="build" name="Expeditee">
    23
    3 ANT build script for both the Apollo and Expeditee project.
     4        <tstamp>
     5                <format property="TODAY_EXP" pattern="yy.MM.dd"/>
     6        </tstamp>
    47
    5 Originally created for the apollo project - but can be used for
    6 creating expeditee distributions.
     8        <property environment="env"/>
    79
    8 This does not include the lib jars within the distributed jar -
    9 such resources would have to be handled specially in code
    10 (i.e. jar loaders...).
     10        <property name="dist.dir.exp" location="releases" />
     11        <property name="dist.filename.exp" value="Exp.${TODAY_EXP}.jar" />
     12        <property name="dist.filename.6.exp" value="Exp.${TODAY_EXP}-1.6.jar" />
     13        <property name="build.dir.exp" location="bin" />
     14        <property name="build.dir.6.exp" location="bin-1.6" />
    1115
    12 -->
    13 <project name="Expeditee" default="fresh_dist_exp">
     16        <union id="dist.includes.exp">
     17                <zipfileset excludes="META-INF/*.SF" src="releases/jars/junit.jar"/>
     18                <zipfileset excludes="META-INF/*.SF" src="releases/jars/activation.jar"/>
     19                <zipfileset excludes="META-INF/*.SF" src="releases/jars/cobra.jar"/>
     20                <zipfileset excludes="META-INF/*.SF" src="releases/jars/iText-2.1.3.jar"/>
     21                <zipfileset excludes="META-INF/*.SF" src="releases/jars/jcommon-1.0.13.jar"/>
     22                <zipfileset excludes="META-INF/*.SF" src="releases/jars/JEP.jar"/>
     23                <zipfileset excludes="META-INF/*.SF" src="releases/jars/JFreeCharts.jar"/>
     24                <zipfileset excludes="META-INF/*.SF" src="releases/jars/js.jar"/>
     25                <zipfileset excludes="META-INF/*.SF" src="releases/jars/lobo.jar"/>
     26                <zipfileset excludes="META-INF/*.SF" src="releases/jars/lobo-pub.jar"/>
     27                <zipfileset excludes="META-INF/*.SF" src="releases/jars/mail.jar"/>
     28                <zipfileset excludes="META-INF/*.SF" src="releases/jars/xercesImpl.jar"/>
     29                <zipfileset excludes="META-INF/*.SF" src="releases/jars/jazzy-core.jar"/>
     30                <zipfileset excludes="META-INF/*.SF" src="releases/jars/PDFRenderer-0.9.1.jar"/>
     31        </union>
     32
     33
     34        <path id="Expeditee.classpath">
     35                <pathelement location="releases/jars/junit.jar"/>
     36                <pathelement location="releases/jars/activation.jar"/>
     37                <pathelement location="releases/jars/cobra.jar"/>
     38                <pathelement location="releases/jars/iText-2.1.3.jar"/>
     39                <pathelement location="releases/jars/jcommon-1.0.13.jar"/>
     40                <pathelement location="releases/jars/JEP.jar"/>
     41                <pathelement location="releases/jars/JFreeCharts.jar"/>
     42                <pathelement location="releases/jars/js.jar"/>
     43                <pathelement location="releases/jars/lobo.jar"/>
     44                <pathelement location="releases/jars/lobo-pub.jar"/>
     45                <pathelement location="releases/jars/mail.jar"/>
     46                <pathelement location="releases/jars/xercesImpl.jar"/>
     47                <pathelement location="releases/jars/jazzy-core.jar"/>
     48                <pathelement location="releases/jars/PDFRenderer-0.9.1.jar"/>
     49        </path>
     50
     51        <target name="clean">
     52                <!-- delete only the class files built by expeditee -->
     53                <delete dir="${build.dir.exp}/org"/>
     54                <delete dir="${build.dir.6.exp}/org"/>
     55        </target>
     56        <target depends="clean" name="cleanall"/>
     57
     58
    1459       
    15         <tstamp>
    16             <format property="TODAY" pattern="d-MMMM-yyyy"/>
    17                 <format property="TODAY_EXP" pattern="ddMMMyyyy"/>
    18          </tstamp>
    19        
    20         <!-- Expeditee must be compatible run on Java 1.6" -->
    21         <property name="sourcelevel" value="1.6" />
    22         <property name="targetlevel" value="1.6" />
    23        
    24         <property name="resources.dir.apollo" location="resources_apollo" /> <!-- resources files for apollo -->
    25 
    26         <property name="src.dir.exp" location="src" /> <!-- source files for expeditee -->
    27         <property name="src.dir.apollo" location="src_apollo" /> <!-- source files for apollo -->
    28        
    29         <property name="build.dir" location="bin" /> <!-- compiled class files directory -->
    30        
    31         <property name="lib.dir.exp" location="releases/jars" /> <!-- external dependencies -->
    32         <property name="lib.dir.apollo" location="jars_apollo" /> <!-- external dependencies -->
    33        
    34         <property name="dist.dir.exp" location="releases" /> <!-- Put the output jar file into the same directory as the others. The manifest file needs to be edited with relative dependencies if another directory structure is desired. -->
    35         <property name="dist.dir.apollo" location="releases/apollo" /> <!-- Put the output jar file into the same directory as the others. The manifest file needs to be edited with relative dependencies if another directory structure is desired. -->
    36        
    37         <property name="dist.filename.exp" value="Exp${TODAY_EXP}A.jar" />
    38         <property name="dist.filename.apollo" value="Apollo_jvm${targetlevel}-${TODAY}.jar" />
    39        
    40         <property name="manifest.path.exp"  value="makeFiles/Manifest.txt" />
    41         <property name="manifest.path.apollo" value="makeFiles/apollo_manifest.mf" />
    42         <property name="manifest.path.apollo-applet" value="makeFiles/apollo_applet_manifest.mf" />
    43        
    44         <path id="classpath.exp">
    45                 <!-- link with all jar files we can find in our defined lib directory -->
    46                 <fileset dir="${lib.dir.exp}">
    47                         <include name="*.jar" />
    48                 </fileset>
    49         </path>
    50        
    51         <path id="classpath.apollo">
    52                 <!-- link with all jar files we can find in our defined lib directory -->
    53                 <fileset dir="${lib.dir.exp}">
    54                         <include name="*.jar" />
    55                         <exclude name="jnmp2p.jar"/> <!-- This is a zero-sized file! Its totally invalid and will fail any builds - omitting !-->
    56                         <exclude name="jxta.jar"/> <!-- Ditto !-->
    57                 </fileset>
    58                 <fileset dir="${lib.dir.apollo}">
    59                         <include name="*.jar" />
    60                 </fileset>
    61         </path>
    62        
    63 
    64         <!-- TARGETS -->
    65         <target name="clean" description="Deletes contents of build directory.">
    66                 <delete dir="${build.dir}" />
    67                 <mkdir dir="${build.dir}" />
     60        <!-- JAVA 1.7 -->
     61        <target name="init">
     62                <echo message="${ant.project.name}: ${ant.file}"/>
     63                <mkdir dir="${build.dir.exp}"/>
     64                <copy includeemptydirs="false" todir="${build.dir.exp}">
     65                        <fileset dir="src">
     66                                <exclude name="**/*.java"/>
     67                                <exclude name="org/expeditee/items/widgets/WebBrowser.java"/>
     68                        </fileset>
     69                </copy>
     70                <copy includeemptydirs="false" todir="${build.dir.exp}">
     71                        <fileset dir="tests">
     72                                <exclude name="**/*.java"/>
     73                        </fileset>
     74                </copy>
    6875        </target>
    69        
    70        
    71         <!-- Set up directories that are needed for building." -->
    72         <target name="init_expeditee">
    73                 <mkdir dir="${build.dir}" />
    74                 <mkdir dir="${lib.dir.exp}" />
    75         </target>
    76        
    77         <target name="init_apollo" depends="init_expeditee">
    78                 <mkdir dir="${lib.dir.apollo}" />
    79         </target>
    80                
    81        
    82         <!-- Do the actual compilation." -->
    83         <target name="compile_exp" depends="init_expeditee">
    84                 <javac  srcdir="${src.dir.exp}"
    85                                 destdir="${build.dir}"
    86                                 debug="true"
    87                                 optimize="on"
    88                                 source="${sourcelevel}"
    89                                 target="${targetlevel}"
    90                                 compiler="modern"
    91        
    92                                 listfiles="true">
    93                         <classpath refid="classpath.exp" />
    94                         <compilerarg value="-Xlint:unchecked"/>
     76        <target depends="init" name="build">
     77                <javac debug="false" destdir="${build.dir.exp}" includeantruntime="false" source="1.7" target="1.7">
     78                        <src path="src"/>
     79                        <src path="tests"/>
     80                        <exclude name="org/expeditee/items/widgets/WebBrowser.java"/>
     81                        <classpath refid="Expeditee.classpath"/>
    9582                </javac>
    9683        </target>
    97                        
    98         <target name="compile_apollo" depends="init_apollo, compile_exp">
    99         <javac  srcdir="${src.dir.apollo}"
    100                         destdir="${build.dir}"
    101                         debug="true"
    102                         optimize="on"
    103                         source="${sourcelevel}"
    104                         target="${targetlevel}"
    105                         compiler="modern"
    106                         listfiles="true">
    107                         <classpath refid="classpath.apollo" />
    108                         <compilerarg value="-Xlint:unchecked"/>
     84        <target depends="build" name="jar">
     85                <jar destfile="${dist.dir.exp}/${dist.filename.exp}" filesetmanifest="mergewithoutmain">
     86                        <manifest>
     87                                <attribute name="Main-Class" value="org.expeditee.gui.Browser"/>
     88                                <attribute name="Class-Path" value="."/>
     89                        </manifest>
     90                        <fileset dir="${build.dir.exp}">
     91                                <exclude name="src/**"/>
     92                        </fileset>
     93                        <resources refid="dist.includes.exp" />
     94                </jar>
     95        <symlink overwrite="true" link="${dist.dir.exp}/Expeditee.jar" resource="${dist.filename.exp}" />
     96        </target>
     97        <target name="run">
     98                <java classname="org.expeditee.gui.Browser" failonerror="true" fork="yes">
     99                        <classpath refid="Expeditee.classpath">
     100                                <pathelement location="${build.dir.exp}"/>
     101                        </classpath>
     102                </java>
     103        </target>
     104
     105        <!-- JAVA 1.6 -->
     106        <target name="init6">
     107                <echo message="${ant.project.name}: ${ant.file}"/>
     108                <mkdir dir="${build.dir.6.exp}"/>
     109                <copy includeemptydirs="false" todir="${build.dir.6.exp}">
     110                        <fileset dir="src">
     111                                <exclude name="**/*.java"/>
     112                                <exclude name="org/expeditee/items/widgets/WebBrowser.java"/>
     113                        </fileset>
     114                </copy>
     115                <copy includeemptydirs="false" todir="${build.dir.6.exp}">
     116                        <fileset dir="tests">
     117                                <exclude name="**/*.java"/>
     118                        </fileset>
     119                </copy>
     120        </target>
     121        <target depends="init6" name="build6">
     122        <javac debug="false" destdir="${build.dir.6.exp}" includeantruntime="false" source="1.6" target="1.6">
     123                        <src path="src"/>
     124                        <src path="tests"/>
     125                        <exclude name="org/expeditee/items/widgets/WebBrowser.java"/>
     126                        <classpath refid="Expeditee.classpath"/>
    109127                </javac>
    110128        </target>
    111        
    112        
    113         <!-- Jaring up the projects." -->
    114         <target name="lazy_dist_exp" depends="compile_exp" description="Warning: Does not clean before compile.">
    115           <jar destfile="${dist.dir.exp}/${dist.filename.exp}" manifest="${manifest.path.exp}">
    116             <fileset dir="${build.dir}"/>           
    117           </jar> 
    118 
    119           <!-- Now, with the most generic name possible, make a jar that is always the latest -->
    120           <copy file="${dist.dir.exp}/${dist.filename.exp}" toFile="${dist.dir.exp}/Expeditee.jar"/>
     129        <target depends="build6" name="jar6">
     130                <jar destfile="${dist.dir.exp}/${dist.filename.6.exp}" filesetmanifest="mergewithoutmain">
     131                        <manifest>
     132                                <attribute name="Main-Class" value="org.expeditee.gui.Browser"/>
     133                                <attribute name="Class-Path" value="."/>
     134                        </manifest>
     135                        <fileset dir="${build.dir.6.exp}">
     136                                <exclude name="src/**"/>
     137                        </fileset>
     138                        <resources refid="dist.includes.exp" />
     139                </jar>
     140        <symlink overwrite="true" link="${dist.dir.exp}/Expeditee-1.6.jar" resource="${dist.filename.6.exp}" />
    121141        </target>
    122        
    123         <target name="fresh_dist_exp" depends="clean, lazy_dist_exp"/>
    124        
    125         <target name="lazy_dist_apollo" depends="compile_apollo" description="Warning: Does not clean before compile.">
    126 
    127           <!-- Now, with the most generic name possible, make a jar that is always the latest -->
    128           <jar destfile="${dist.dir.apollo}/${dist.filename.apollo}" manifest="${manifest.path.apollo}">
    129             <fileset dir="${build.dir}"/>
    130             <fileset dir="${resources.dir.apollo}"/>
    131             <fileset dir="releases" includes="jars/*,jars/*/*"/>
    132             <fileset dir="." includes="jars_apollo/*"/>
    133           </jar> 
    134          
    135           <!-- Now, with the most generic name possible, make a jar that is always the latest -->
    136           <copy file="${dist.dir.apollo}/${dist.filename.apollo}" toFile="${dist.dir.apollo}/Apollo.jar"/>
    137                 </target>
    138 
    139         <target name="lazy_dist_apollo_applet" depends="compile_apollo">
    140          
    141           <jar destfile="${dist.dir.apollo}/ApolloApplet.jar" manifest="${manifest.path.apollo-applet}">
    142             <fileset dir="${build.dir}"/>
    143             <fileset dir="${resources.dir.apollo}"/>
    144             <fileset dir="unjarred-for-expeditee-applet" includes="*/"/>
    145             <fileset dir="unjarred-for-apollo-applet" includes="*/"/>
    146           </jar>
    147          
    148           <exec executable="./MAKE-APOLLO-SIGNED-JAR.sh" osfamily="unix" />
    149           <exec executable="MAKE-APOLLO-SIGNED-JAR.bat"  osfamily="windows"/>
     142        <target name="run6">
     143                <java classname="org.expeditee.gui.Browser" failonerror="true" fork="yes">
     144                        <classpath refid="Expeditee.classpath">
     145                                <pathelement location="${build.dir.6.exp}"/>
     146                        </classpath>
     147                </java>
    150148        </target>
    151 
    152         <target name="sign-test">
    153                 <exec executable="dev/bin/script/MAKE-APOLLO-SIGNED-JAR.sh" osfamily="unix" />
    154                 <exec executable="dev/bin/script/MAKE-APOLLO-SIGNED-JAR.bat"  osfamily="windows"/>
    155         </target>
    156 
    157         <target name="fresh_dist_apollo" depends="clean, lazy_dist_apollo, lazy_dist_apollo_applet"/>
    158 
    159149</project>
Note: See TracChangeset for help on using the changeset viewer.