src/Tools/jEdit/build.xml
changeset 43281 8d8b6ed0588c
parent 43280 e5dd0ae1b054
child 43282 5d294220ca43
equal deleted inserted replaced
43280:e5dd0ae1b054 43281:8d8b6ed0588c
     1 <?xml version="1.0" encoding="UTF-8"?>
       
     2 <!-- You may freely edit this file. See commented blocks below for -->
       
     3 <!-- some examples of how to customize the build. -->
       
     4 <!-- (If you delete it and reopen the project it will be recreated.) -->
       
     5 <project name="Isabelle-jEdit" default="default" basedir=".">
       
     6     <description>Builds, tests, and runs the project Isabelle-jEdit.</description>
       
     7     <import file="nbproject/build-impl.xml"/>
       
     8     <!--
       
     9 
       
    10     There exist several targets which are by default empty and which can be 
       
    11     used for execution of your tasks. These targets are usually executed 
       
    12     before and after some main targets. They are: 
       
    13 
       
    14       -pre-init:                 called before initialization of project properties
       
    15       -post-init:                called after initialization of project properties
       
    16       -pre-compile:              called before javac compilation
       
    17       -post-compile:             called after javac compilation
       
    18       -pre-compile-single:       called before javac compilation of single file
       
    19       -post-compile-single:      called after javac compilation of single file
       
    20       -pre-compile-test:         called before javac compilation of JUnit tests
       
    21       -post-compile-test:        called after javac compilation of JUnit tests
       
    22       -pre-compile-test-single:  called before javac compilation of single JUnit test
       
    23       -post-compile-test-single: called after javac compilation of single JUunit test
       
    24       -pre-jar:                  called before JAR building
       
    25       -post-jar:                 called after JAR building
       
    26       -post-clean:               called after cleaning build products
       
    27 
       
    28     (Targets beginning with '-' are not intended to be called on their own.)
       
    29 
       
    30     Example of inserting an obfuscator after compilation could look like this:
       
    31 
       
    32         <target name="-post-compile">
       
    33             <obfuscate>
       
    34                 <fileset dir="${build.classes.dir}"/>
       
    35             </obfuscate>
       
    36         </target>
       
    37 
       
    38     For list of available properties check the imported 
       
    39     nbproject/build-impl.xml file. 
       
    40 
       
    41 
       
    42     Another way to customize the build is by overriding existing main targets.
       
    43     The targets of interest are: 
       
    44 
       
    45       -init-macrodef-javac:     defines macro for javac compilation
       
    46       -init-macrodef-junit:     defines macro for junit execution
       
    47       -init-macrodef-debug:     defines macro for class debugging
       
    48       -init-macrodef-java:      defines macro for class execution
       
    49       -do-jar-with-manifest:    JAR building (if you are using a manifest)
       
    50       -do-jar-without-manifest: JAR building (if you are not using a manifest)
       
    51       run:                      execution of project 
       
    52       -javadoc-build:           Javadoc generation
       
    53       test-report:              JUnit report generation
       
    54 
       
    55     An example of overriding the target for project execution could look like this:
       
    56 
       
    57         <target name="run" depends="Isabelle-jEdit-impl.jar">
       
    58             <exec dir="bin" executable="launcher.exe">
       
    59                 <arg file="${dist.jar}"/>
       
    60             </exec>
       
    61         </target>
       
    62 
       
    63     Notice that the overridden target depends on the jar target and not only on 
       
    64     the compile target as the regular run target does. Again, for a list of available 
       
    65     properties which you can use, check the target you are overriding in the
       
    66     nbproject/build-impl.xml file. 
       
    67 
       
    68     -->
       
    69     <target name="run" depends="Isabelle-jEdit-impl.jar,Isabelle-jEdit-impl.run">
       
    70     </target>
       
    71     <target name="debug" depends="Isabelle-jEdit-impl.jar,Isabelle-jEdit-impl.debug">
       
    72     </target>
       
    73     <target name="-pre-jar">
       
    74       <copy file="plugin/services.xml" todir="${build.classes.dir}" />
       
    75       <copy file="plugin/dockables.xml" todir="${build.classes.dir}" />
       
    76       <copy file="plugin/actions.xml" todir="${build.classes.dir}" />
       
    77       <copy file="plugin/Isabelle.props" todir="${build.classes.dir}" />
       
    78     </target>
       
    79     <target name="-post-jar">
       
    80       <!-- jars -->
       
    81       <delete file="${dist.dir}/jars/lib/jEdit.jar" />
       
    82       <move todir="${dist.dir}/jars">
       
    83         <fileset dir="${dist.dir}/jars/lib" />
       
    84       </move>
       
    85       <copy file="${scala.library}" todir="${dist.dir}/jars" />
       
    86       <copy file="${scala.lib}/scala-swing.jar" todir="${dist.dir}/jars" />
       
    87       <!-- clean up -->
       
    88       <delete dir="{dist.dir}/jars/lib" />
       
    89       <!-- dist-template -->
       
    90       <copy file="dist-template/properties/jedit.props" tofile="${dist.dir}/properties" />
       
    91       <copy todir="${dist.dir}/modes">
       
    92         <fileset dir="dist-template/modes" />
       
    93       </copy>
       
    94       <copy todir="${dist.dir}/modes" overwrite="true">
       
    95         <fileset dir="${project.jEdit}/modes" />
       
    96       </copy>
       
    97       <replaceregexp byline="true" file="${dist.dir}/modes/catalog">
       
    98         <regexp pattern='(^.*NAME="javacc".*$)'/>
       
    99         <substitution expression="&lt;MODE NAME=&quot;isabelle&quot; FILE=&quot;isabelle.xml&quot; FILE_NAME_GLOB=&quot;*.thy&quot;/&gt;${line.separator}${line.separator}\1"/>
       
   100       </replaceregexp>
       
   101     </target>
       
   102 </project>