Anforderungen  |   Konzepte  |   Entwurf  |   Entwicklung  |   Qualitätssicherung  |   Lebenszyklus  |   Steuerung
 
 
 
 


Quellcode-Bibliothek

© Kompilation durch diese Firma

[Weder Korrektheit noch Funktionsfähigkeit der Software werden zugesichert.]

Datei:   Sprache: VDM

Original von: Isabelle©

<project name="jedit"
  default="build"
  xmlns:mod="antlib:de.masters_of_disaster.ant.tasks"
  xmlns:contrib="antlib:net.sf.antcontrib"
  xmlns:launch4j="antlib:net.sf.launch4j.ant"
  xmlns:appbundler="antlib:com.oracle.appbundler"
  xmlns:fop="antlib:org.apache.fop.tools.anttasks"
  xmlns:ivy="antlib:org.apache.ivy.ant">
 <description>
  This is an ant build.xml file for building jEdit - Programmer's Text Editor.
 </description>

 <property file="build.properties"
    prefix="config"/>

 <!-- Target Java Versions -->
 <property name="target.java.version"
    value="11"/>

 <!-- Various Paths -->
 <property name="config.lib.dir"
    value="lib"/>
 <property name="config.build.dir"
    value="build"/>
 <property name="config.dist.dir"
    value="dist"/>
 <property name="lib.dir"
    location="${config.lib.dir}"/>
 <property name="build.dir"
    location="${config.build.dir}"/>
 <property name="dist.dir"
    location="${config.dist.dir}"/>
 <property name="classes.dir"
    location="${build.dir}/classes"/>
 <property name="jar.location"
    location="${build.dir}"/>
 <property name="textAreaPackage"
    location="../textarea"/>

 <!-- Ivy Properties -->
 <property name="config.ivy.version"
    value="2.2.0"/>
 <property name="ivy.jar.dir"
    location="${lib.dir}/ivy"/>
 <property name="ivy.jar.filename"
    value="ivy-${config.ivy.version}.jar"/>
 <property name="ivy.jar.file"
    location="${ivy.jar.dir}/${ivy.jar.filename}"/>

 <!-- Miscellaneous -->
 <property name="jar.filename"
    value="${ant.project.name}.jar"/>
 <property name="config.build.debuglevel"
    value="lines,vars,source"/>
 <property name="config.build.nowarn"
    value="false"/>
 <property name="config.build.deprecation"
    value="true"/>
 <property name="config.build.compilerarg"
    value="-Xlint:unchecked -Xlint:finally -Xlint:fallthrough -Xmaxwarns 1000"/>

 <target name="init"
  unless="init.done">
  <echo message="Buildfile for ${ant.project.name} (${ant.file})"
        level="info"/>
  <fail message="Ant 1.9.10 or newer is needed for jEdit to build, please install it and rerun (found Ant version: '${ant.version}')">
   <condition>
    <not>
     <antversion atleast="1.9.10"/>
    </not>
   </condition>
  </fail>
  <fail message="Java 11 or newer is needed for jEdit to build, please install it and rerun (found Java version: '${ant.java.version}')">
   <condition>
    <not>
     <javaversion atleast="11"/>
    </not>
   </condition>
  </fail>
  <fail message="The ant-optional package is needed for jEdit to build, please install it and rerun">
   <condition>
    <not>
     <and>
      <available classname="org.apache.tools.ant.taskdefs.optional.depend.Depend"/>
      <available classname="org.apache.tools.ant.taskdefs.optional.TraXLiaison"/>
     </and>
    </not>
   </condition>
  </fail>
  <property name="init.done"
     value="true"/>
 </target>

 <target name="check-ivy"
  depends="init">
  <available property="ivy.jar.present"
      file="${ivy.jar.file}"
      type="file"/>
 </target>

 <target name="download-ivy"
  depends="init,check-ivy"
  unless="ivy.jar.present">
  <mkdir dir="${ivy.jar.dir}"/>
  <get src="https://repo1.maven.org/maven2/org/apache/ivy/ivy/${config.ivy.version}/ivy-${config.ivy.version}.jar"
       dest="${ivy.jar.file}"
       usetimestamp="true"/>
 </target>

 <target name="init-ivy"
  depends="init,download-ivy"
  unless="ivy.done">
  <script language="javascript">
   <![CDATA[
    try {
     var dbf = javax.xml.parsers.DocumentBuilderFactory.newInstance()
     dbf.setFeature("http://apache.org/xml/features/nonvalidating/load-external-dtd"false)
     var document = dbf.newDocumentBuilder().parse('http://plugins.jedit.org/export/mirror_list.php')
     var xpath = javax.xml.xpath.XPathFactory.newInstance().newXPath()
     var mirrors = xpath.evaluate('/MIRRORS/MIRROR/@ID', document, javax.xml.xpath.XPathConstants.NODESET)
     var artifactPatterns = ''
     for (i = 0; i < mirrors.getLength(); i++) {
      artifactPatterns += '\n'
     }
     project.setUserProperty('jedit.plugins.artifact.patterns', artifactPatterns)
    } catch(e) {
     self.log('Error while retrieving mirror list, if plugins are not in Ivy cache, they will not be resolvable: ' + e, e, project.MSG_WARN)
    }
   ]]>
  </script>

  <copy todir="${build.dir}"
        encoding="UTF-8"
        overwrite="true">
   <fileset file="ivysettings.xml"/>
   <filterset>
    <filter token="jedit.plugins.artifact.patterns"
     value="${jedit.plugins.artifact.patterns}"/>
   </filterset>
  </copy>

  <property name="ivy.retrieve.pattern"
     value="${lib.dir}/[conf]/[artifact](-[classifier]).[ext]"/>
  <taskdef resource="org/apache/ivy/ant/antlib.xml"
    classpath="${ivy.jar.file}"
    loaderref="ivy.loader"
    uri="antlib:org.apache.ivy.ant"/>
  <ivy:settings file="${build.dir}/ivysettings.xml"/>
 </target>

 <target name="retrieve"
  description="retrieve the dependencies"
  depends="init,init-ivy"
  unless="ivy.done">
  <ivy:retrieve sync="true"/>
  <ivy:retrieve pattern="${lib.dir}/ivy/[artifact]-[revision].[ext]"
         organisation="org.apache.ivy"
         module="ivy"
         revision="${config.ivy.version}"
         conf="default"
         inline="true"/>
  <property name="ivy.done"
     value="true"/>
 </target>

 <target name="setup"
  depends="init,retrieve">
  <taskdef resource="net/sf/antcontrib/antlib.xml"
    uri="antlib:net.sf.antcontrib">
   <classpath>
    <fileset dir="${lib.dir}/ant-contrib"
      includes="*.jar"/>
   </classpath>
  </taskdef>

  <script language="beanshell">
   <classpath>
    <fileset dir="${lib.dir}/scripting"
      includes="*.jar"/>
   </classpath>

   import java.util.regex.Pattern;
   file = new File(basedir, "org/gjt/sp/jedit/jEdit.java");
   fileChars = new char[file.length()];
   reader = new BufferedReader(new InputStreamReader(new FileInputStream(file), "UTF-8"));
   reader.read(fileChars, 0, fileChars.length);
   pattern = Pattern.compile("public static String getBuild\\(\\)[^}]+return \"([^\"]{11})\"");
   matcher = pattern.matcher(new String(fileChars));
   matcher.find();
   build = matcher.group(1);
   major = Integer.parseInt(build.substring(0,2));
   minor = Integer.parseInt(build.substring(3,5));
   beta = Integer.parseInt(build.substring(6,8));
   micro = Integer.parseInt(build.substring(9,11));
   version = major
             + "." + minor
             + (beta != 99 ? "pre" + beta : "." + micro);
   project.setUserProperty("jedit.version"version);
   project.setUserProperty("jedit.build.number", build);
   project.setUserProperty("jedit.version.final", Boolean.toString(beta == 99));
  </script>
  <property name="dist.jar.filename"
     value="jedit${jedit.version}install.jar"/>
  <property name="manual.filename.prefix"
     value="jedit${jedit.version}manual-"/>
  <property name="src.archive.filename"
     value="jedit${jedit.version}source.tar.bz2"/>
  <property name="win.filename"
     value="jedit${jedit.version}install"/>
  <property name="mac.disk.image.filename"
     value="jedit${jedit.version}install.dmg"/>
 </target>

 <target name="clean"
  depends="init"
  description="clean up intermediate files">
  <delete includeemptydirs="true"
   failonerror="false">
   <fileset dir="${build.dir}/classes"
     defaultexcludes="false"/>
   <fileset dir="${dist.dir}/classes"
     defaultexcludes="false"/>
  </delete>
 </target>

 <target name="clean-all"
  depends="init"
  description="clean up lib.dir, build.dir and dist.dir completely">
  <delete includeemptydirs="true"
   failonerror="false">
   <fileset dir="${lib.dir}"
     defaultexcludes="false"/>
   <fileset dir="${build.dir}"
     defaultexcludes="false"/>
   <fileset dir="${dist.dir}"
     defaultexcludes="false"/>
   <fileset dir="${textAreaPackage}/build"
     defaultexcludes="false"/>
  </delete>
 </target>

 <target name="clean-jenkins"
  depends="init,clean-all"
  description="clean-all, also clean up ivy cache">
  <delete includeemptydirs="true"
   failonerror="false">
   <fileset dir="${user.home}/.ivy2/cache"
     defaultexcludes="false"/>
  </delete>
 </target>

 <target name="compile"
  depends="init">
  <mkdir dir="${classes.dir}/core"/>
  <depend srcDir="${basedir}"
   destDir="${classes.dir}/core"
   cache="${classes.dir}"/>
  <dependset>
   <srcfilelist files="build.xml"/>
   <targetfileset dir="${classes.dir}/core"/>
  </dependset>
  <javac srcdir="${basedir}"
         destdir="${classes.dir}/core"
         debug="true"
         debuglevel="${config.build.debuglevel}"
         nowarn="${config.build.nowarn}"
         deprecation="${config.build.deprecation}"
         release="${target.java.version}"
         compiler="modern"
         encoding="UTF-8"
         includeAntRuntime="false">
   <classpath id="classpath.compile">
    <fileset dir="${lib.dir}/compile"
      includes="*.jar"/>
   </classpath>
   <include name="org/**"/>
   <compilerarg line="${config.build.compilerarg}"/>
  </javac>
 </target>

 <target name="compile-test"
  depends="init,retrieve,compile">
  <mkdir dir="${classes.dir}/test"/>
  <depend srcDir="${basedir}/test"
   destDir="${classes.dir}/test"
   cache="${classes.dir}"/>
  <dependset>
   <srcfilelist files="build.xml"/>
   <srcfilelist files="ivy.xml"/>
   <targetfileset dir="${classes.dir}/test"/>
  </dependset>
  <javac srcdir="test"
         destdir="${classes.dir}/test"
         debug="true"
         debuglevel="${config.build.debuglevel}"
         nowarn="${config.build.nowarn}"
         deprecation="${config.build.deprecation}"
         release="${target.java.version}"
         compiler="modern"
         encoding="UTF-8"
         includeAntRuntime="false">
   <classpath id="classpath.test">
    <fileset dir="${lib.dir}/test"
      includes="*.jar"/>
    <pathelement location="${classes.dir}/core"/>
   </classpath>
   <compilerarg line="${config.build.compilerarg}"/>
  </javac>
 </target>

 <target name="prepare-textArea"
  depends="init">
  <delete includeemptydirs="true"
   failonerror="false">
   <fileset dir="${textAreaPackage}/src"/>
  </delete>

  <mkdir dir="${textAreaPackage}/src"/>
  <copy todir="${textAreaPackage}/src">
   <fileset dir="${basedir}">
    <include name="modes/*"/>
    <include name="keymaps/*"/>
    <include name="org/gjt/sp/jedit/bsh/*"/>
    <include name="org/gjt/sp/jedit/bsh/**/*"/>

    <include name="org/gjt/sp/jedit/buffer/BufferAdapter.java"/>
    <include name="org/gjt/sp/jedit/buffer/BufferListener.java"/>
    <include name="org/gjt/sp/jedit/buffer/BufferSegment.java"/>
    <include name="org/gjt/sp/jedit/buffer/ContentManager.java"/>
    <include name="org/gjt/sp/jedit/buffer/DefaultFoldHandlerProvider.java"/>
    <include name="org/gjt/sp/jedit/buffer/DummyFoldHandler.java"/>
    <include name="org/gjt/sp/jedit/buffer/ExplicitFoldHandler.java"/>
    <include name="org/gjt/sp/jedit/buffer/FoldHandler.java"/>
    <include name="org/gjt/sp/jedit/buffer/FoldHandlerProvider.java"/>
    <include name="org/gjt/sp/jedit/buffer/IndentFoldHandler.java"/>
    <include name="org/gjt/sp/jedit/buffer/JEditBuffer.java"/>
    <include name="org/gjt/sp/jedit/buffer/KillRing.java"/>
    <include name="org/gjt/sp/jedit/buffer/LineManager.java"/>
    <include name="org/gjt/sp/jedit/buffer/PositionManager.java"/>
    <include name="org/gjt/sp/jedit/buffer/UndoManager.java"/>

    <include name="org/gjt/sp/jedit/bufferio/IoTask.java"/>

    <include name="org/gjt/sp/jedit/gui/KeyEventTranslator.java"/>
    <include name="org/gjt/sp/jedit/gui/KeyEventWorkaround.java"/>
    <include name="org/gjt/sp/jedit/gui/MutableListModel.java"/>
    <include name="org/gjt/sp/jedit/gui/ShortcutPrefixActiveEvent.java"/>
    <include name="org/gjt/sp/jedit/gui/HistoryModel.java"/>
    <include name="org/gjt/sp/jedit/gui/HistoryModelSaver.java"/>

    <include name="org/gjt/sp/jedit/indent/*.java"/>

    <include name="org/gjt/sp/jedit/input/AbstractInputHandler.java"/>
    <include name="org/gjt/sp/jedit/input/DefaultInputHandlerProvider.java"/>
    <include name="org/gjt/sp/jedit/input/InputHandlerProvider.java"/>
    <include name="org/gjt/sp/jedit/input/TextAreaInputHandler.java"/>

    <include name="org/gjt/sp/jedit/syntax/*.java"/>
    <include name="org/gjt/sp/jedit/syntax/xmode.dtd"/>

    <include name="org/gjt/sp/jedit/datatransfer/JEditDataFlavor.java"/>
    <include name="org/gjt/sp/jedit/datatransfer/JEditRichText.java"/>
    <include name="org/gjt/sp/jedit/datatransfer/JEditTransferable.java"/>
    <include name="org/gjt/sp/jedit/datatransfer/JEditTransferableService.java"/>
    <include name="org/gjt/sp/jedit/datatransfer/RichJEditTextTransferableService.java"/>
    <include name="org/gjt/sp/jedit/datatransfer/RichTextTransferable.java"/>
    <include name="org/gjt/sp/jedit/datatransfer/StringTransferableService.java"/>
    <include name="org/gjt/sp/jedit/datatransfer/TransferHandler.java"/>

    <include name="org/gjt/sp/jedit/textarea/Anchor.java"/>
    <include name="org/gjt/sp/jedit/textarea/AntiAlias.java"/>
    <include name="org/gjt/sp/jedit/textarea/BufferHandler.java"/>
    <include name="org/gjt/sp/jedit/textarea/ChunkCache.java"/>
    <include name="org/gjt/sp/jedit/textarea/ColumnBlock.java"/>
    <include name="org/gjt/sp/jedit/textarea/ColumnBlockLine.java"/>
    <include name="org/gjt/sp/jedit/textarea/DisplayManager.java"/>
    <include name="org/gjt/sp/jedit/textarea/ElasticTabStopBufferListener.java"/>
    <include name="org/gjt/sp/jedit/textarea/ElasticTabstopsTabExpander.java"/>
    <include name="org/gjt/sp/jedit/textarea/ExtensionManager.java"/>
    <include name="org/gjt/sp/jedit/textarea/FastRepaintManager.java"/>
    <include name="org/gjt/sp/jedit/textarea/FirstLine.java"/>
    <include name="org/gjt/sp/jedit/textarea/FoldPainter.java"/>
    <include name="org/gjt/sp/jedit/textarea/Gutter.java"/>
    <include name="org/gjt/sp/jedit/textarea/GutterPopupHandler.java"/>
    <include name="org/gjt/sp/jedit/textarea/InputMethodSupport.java"/>
    <include name="org/gjt/sp/jedit/textarea/MouseActions.java"/>
    <include name="org/gjt/sp/jedit/textarea/MouseActionsProvider.java"/>
    <include name="org/gjt/sp/jedit/textarea/Node.java"/>
    <include name="org/gjt/sp/jedit/textarea/RangeMap.java"/>
    <include name="org/gjt/sp/jedit/textarea/Selection.java"/>
    <include name="org/gjt/sp/jedit/textarea/SelectionManager.java"/>
    <include name="org/gjt/sp/jedit/textarea/ScreenLineManager.java"/>
    <include name="org/gjt/sp/jedit/textarea/ScrollLayout.java"/>
    <include name="org/gjt/sp/jedit/textarea/ScrollLineCount.java"/>
    <include name="org/gjt/sp/jedit/textarea/ScrollListener.java"/>
    <include name="org/gjt/sp/jedit/textarea/StandaloneTextArea.java"/>
    <include name="org/gjt/sp/jedit/textarea/StatusListener.java"/>
    <include name="org/gjt/sp/jedit/textarea/StructureMatcher.java"/>
    <include name="org/gjt/sp/jedit/textarea/TextArea.java"/>
    <include name="org/gjt/sp/jedit/textarea/TextAreaBorder.java"/>
    <include name="org/gjt/sp/jedit/textarea/TextAreaDropHandler.java"/>
    <include name="org/gjt/sp/jedit/textarea/TextAreaException.java"/>
    <include name="org/gjt/sp/jedit/textarea/TextAreaExtension.java"/>
    <include name="org/gjt/sp/jedit/textarea/TextAreaMouseHandler.java"/>
    <include name="org/gjt/sp/jedit/textarea/TextAreaPainter.java"/>
    <include name="org/gjt/sp/jedit/textarea/textarea.actions.xml"/>
    <include name="org/gjt/sp/jedit/textarea/TriangleFoldPainter.java"/>

    <include name="org/gjt/sp/jedit/ActionListHandler.java"/>
    <include name="org/gjt/sp/jedit/BeanShellFacade.java"/>
    <include name="org/gjt/sp/jedit/Debug.java"/>
    <include name="org/gjt/sp/jedit/IPropertyManager.java"/>
    <include name="org/gjt/sp/jedit/JEditAbstractEditAction.java"/>
    <include name="org/gjt/sp/jedit/JEditActionSet.java"/>
    <include name="org/gjt/sp/jedit/JEditActionContext.java"/>
    <include name="org/gjt/sp/jedit/JEditBeanShellAction.java"/>
    <include name="org/gjt/sp/jedit/Mode.java"/>
    <include name="org/gjt/sp/jedit/OperatingSystem.java"/>
    <include name="org/gjt/sp/jedit/RegistersListener.java"/>
    <include name="org/gjt/sp/jedit/Registers.java"/>
    <include name="org/gjt/sp/jedit/RegisterSaver.java"/>
    <include name="org/gjt/sp/jedit/SelectionManager.java"/>
    <include name="org/gjt/sp/jedit/TextUtilities.java"/>
    <include name="org/gjt/sp/jedit/actions.dtd"/>
    <include name="org/gjt/sp/jedit/jedit.props"/>
    <include name="modes/*"/>
    <include name="org/gjt/sp/util/GenericGUIUtilities.java"/>
    <include name="org/gjt/sp/util/Log*.java"/>
    <include name="org/gjt/sp/util/IntegerArray.java"/>
    <include name="org/gjt/sp/util/IOUtilities.java"/>
    <include name="org/gjt/sp/util/ProgressObserver.java"/>
    <include name="org/gjt/sp/util/SegmentCharSequence.java"/>
    <include name="org/gjt/sp/util/StandardUtilities.java"/>
    <include name="org/gjt/sp/util/Task.java"/>
    <include name="org/gjt/sp/util/TaskManager.java"/>
    <include name="org/gjt/sp/util/TaskListener.java"/>
    <include name="org/gjt/sp/util/AwtRunnableQueue.java"/>
    <include name="org/gjt/sp/util/ThreadUtilities.java"/>
    <include name="org/gjt/sp/util/SyntaxUtilities.java"/>
    <include name="org/gjt/sp/util/XMLUtilities.java"/>
   </fileset>
  </copy>

 </target>

 <target name="compile-textArea"
  depends="init,prepare-textArea">
  <mkdir dir="${textAreaPackage}/build"/>
  <javac srcdir="${textAreaPackage}/src"
         destdir="${textAreaPackage}/build"
         debug="true"
         debuglevel="${config.build.debuglevel}"
         nowarn="${config.build.nowarn}"
         deprecation="${config.build.deprecation}"
         release="${target.java.version}"
         compiler="modern"
         encoding="UTF-8"
         includeAntRuntime="false">
   <classpath id="classpath.compile">
    <fileset dir="${lib.dir}/compile" includes="*.jar"/>
   </classpath>
   <compilerarg line="${config.build.compilerarg}"/>
  </javac>
 </target>

 <target name="test"
  depends="init,retrieve,compile,compile-test"
  description="run unit tests">
  <delete dir="${build.dir}/test/raw-reports"/>
  <mkdir dir="${build.dir}/test/raw-reports"/>
  <junit fork="true"
         forkmode="once"
         printsummary="true"
         failureproperty="tests.failed"
         includeantruntime="false"
         showoutput="true"
         enabletestlistenerevents="true">
   <classpath refid="classpath.test"/>
   <classpath location="${classes.dir}/test"/>
   <classpath location="${ant.library.dir}/ant.jar"/>
   <classpath location="${ant.library.dir}/ant-junit.jar"/>
   <classpath location="${ant.library.dir}/ant-junit4.jar"/>
   <formatter type="xml"/>
   <batchtest todir="${build.dir}/test/raw-reports">
    <fileset dir="test"/>
   </batchtest>
  </junit>
  <mkdir dir="${build.dir}/test/merged-reports"/>
  <junitreport todir="${build.dir}/test/merged-reports">
   <fileset dir="${build.dir}/test/raw-reports"/>
   <report todir="${build.dir}/test/reports"/>
  </junitreport>
  <fail message="Unit test(s) failed! See reports at ${build.dir}/test/reports/index.html"
        if="tests.failed"/>
 </target>

 <target name="build"
  depends="init,retrieve,setup,compile,test"
  description="build the jEdit JAR-file with full debug-information">
  <mkdir dir="${jar.location}"/>
  <jar destfile="${jar.location}/${jar.filename}"
       basedir="${classes.dir}/core"
       compress="false"
       manifest="org/gjt/sp/jedit/jedit.manifest"
       duplicate="fail"
       index="true">
   <fileset dir="${basedir}">
    <include name="org/gjt/sp/jedit/bsh/commands/*.bsh"/>
    <include name="org/gjt/sp/jedit/**/*.dtd"/>
    <include name="org/gjt/sp/jedit/default.abbrevs"/>
    <include name="org/gjt/sp/jedit/*.props"/>
    <include name="org/gjt/sp/jedit/*.xml"/>
    <include name="org/gjt/sp/jedit/textarea/*.xml"/>
    <include name="org/gjt/sp/jedit/icons/**/*.gif"/>
    <include name="org/gjt/sp/jedit/icons/**/*.jpg"/>
    <include name="org/gjt/sp/jedit/icons/**/*.png"/>
    <include name="org/jedit/localization/*.props"/>
   </fileset>
  </jar>
  <loadfile srcfile="keymaps/jEdit_keys.props"
     property="jEdit.keymap"
     encoding="ISO-8859-1"/>
  <fail message="jEdit keymap must not contain A+[a-z] shortcuts, those may conflict with main menu mnemonics in localizations">
   <condition>
    <matches string="${jEdit.keymap}"
      pattern="=A\+[a-z]"/>
   </condition>
  </fail>
  <copy todir="${jar.location}">
   <fileset dir="${basedir}">
    <include name="keymaps/**"/>
    <include name="macros/**"/>
    <include name="modes/**"/>
    <include name="properties/**"/>
    <include name="startup/**"/>
   </fileset>
  </copy>
  <copy todir="${jar.location}/jars">
   <fileset dir="${lib.dir}/default-plugins">
    <exclude name="MacOSX.jar"/>
   </fileset>
  </copy>
  <contrib:if>
   <os family="mac"/>
   <contrib:then>
    <copy todir="${jar.location}/jars">
     <fileset dir="${lib.dir}/default-plugins">
      <include name="MacOSX.jar"/>
     </fileset>
    </copy>
   </contrib:then>
  </contrib:if>
 </target>

 <target name="build-exe-launcher"
  depends="init,retrieve,setup,filter-package-files"
  description="build the EXE launcher">
  <contrib:if>
   <os family="windows"/>
   <contrib:then>
    <property name="osfamily"
       value="windows"/>
   </contrib:then>
  </contrib:if>
  <contrib:if>
   <os family="mac"/>
   <contrib:then>
    <property name="osfamily"
       value="mac"/>
   </contrib:then>
  </contrib:if>
  <contrib:if>
   <os family="unix" arch="amd64"/>
   <contrib:then>
    <property name="osfamily"
       value="unix-x64"/>
   </contrib:then>
  </contrib:if>
  <contrib:if>
   <os family="unix" arch="x86"/>
   <contrib:then>
    <property name="osfamily"
       value="unix-x32"/>
   </contrib:then>
  </contrib:if>
  <contrib:switch value="${osfamily}">
   <contrib:case value="windows">
    <unjar src="${lib.dir}/launch4j/launch4j-workdir-win32.jar"
           dest="${build.dir}/launch4j"/>
    <copy todir="${lib.dir}/launch4j">
     <fileset dir="${build.dir}/launch4j/launch4j-3.12-workdir-win32/"/>
    </copy>
   </contrib:case>
   <contrib:case value="unix-x64">
    <unjar src="${lib.dir}/launch4j/launch4j-workdir-linux64.jar"
           dest="${build.dir}/launch4j/"/>
    <copy todir="${lib.dir}/launch4j">
     <fileset dir="${build.dir}/launch4j/launch4j-3.12-workdir-linux64/"/>
    </copy>
    <chmod dir="${lib.dir}/launch4j/bin"
           perm="+x"
           includes="**"/>
   </contrib:case>
   <contrib:case value="unix">
    <unjar src="${lib.dir}/launch4j/launch4j-workdir-linux.jar"
           dest="${build.dir}/launch4j/"/>
    <copy todir="${lib.dir}/launch4j">
     <fileset dir="${build.dir}/launch4j/launch4j-3.12-workdir-linux/"/>
    </copy>
    <chmod dir="${lib.dir}/launch4j/bin"
           perm="+x"
           includes="**"/>
   </contrib:case>
   <contrib:case value="mac">
    <unjar src="${lib.dir}/launch4j/launch4j-workdir-mac.jar"
           dest="${build.dir}/launch4j/"/>
    <copy todir="${lib.dir}/launch4j">
     <fileset dir="${build.dir}/launch4j/launch4j-3.12-workdir-mac/"/>
    </copy>
    <chmod dir="${lib.dir}/launch4j/bin"
           perm="+x"
           includes="**"
           osfamily="mac"/>
   </contrib:case>
   <contrib:default>
    <fail message="Unsupported OS family (${osfamily}). If you are on Windows, *nix or MacOS, please report this as bug, if not, please report it as a feature request"/>
   </contrib:default>
  </contrib:switch>
  <taskdef name="create"
    classname="net.sf.launch4j.ant.Launch4jTask"
    uri="antlib:net.sf.launch4j.ant">
   <classpath>
    <fileset dir="${lib.dir}/launch4j"
      includes="*.jar"/>
   </classpath>
  </taskdef>
  <launch4j:create configFile="${classes.dir}/package-files/windows/jedit.launch4j.xml"
     outfile="${jar.location}/jedit.exe"/>
 </target>

 <target name="build-textArea"
  depends="init,compile-textArea"
  description="build the textArea JAR-file with full debug-information">
  <mkdir dir="${jar.location}"/>
  <jar destfile="${jar.location}/${ant.project.name}-textArea.jar"
       compress="true"
       duplicate="fail"
       index="true">
   <fileset dir="${textAreaPackage}/build/"/>
   <fileset dir="${textAreaPackage}/src">
    <include name="org/gjt/sp/jedit/textarea/*.xml"/>
    <include name="org/gjt/sp/jedit/syntax/xmode.dtd"/>
    <include name="org/gjt/sp/jedit/actions.dtd"/>
    <include name="org/gjt/sp/jedit/jedit.props"/>
    <include name="keymaps/*.props"/>
    <include name="modes/*"/>
   </fileset>
   <manifest>
    <attribute name="Main-Class"
        value="org.gjt.sp.jedit.textarea.StandaloneTextArea"/>
   </manifest>
  </jar>
 </target>

 <target name="run"
  depends="init,build"
  description="run jEdit">
  <java jar="${jar.location}/${jar.filename}"
        fork="true"
        spawn="true">
   <arg value="-settings=${build.dir}/settings"/>
  </java>
 </target>

 <target name="run-debug"
  depends="init,build"
  description="run jEdit with debug listening enabled">
  <java jar="${jar.location}/${jar.filename}"
        fork="true"
        spawn="true">
   <jvmarg value="-agentlib:jdwp=transport=dt_socket,server=y,address=localhost:5005,timeout=60000"/>
   <arg value="-settings=${build.dir}/settings"/>
  </java>
 </target>

 <target name="unpack-docbook-xsl"
  depends="init,retrieve">
  <unzip src="${lib.dir}/docbook/docbook-xsl-resources.zip"
         dest="${build.dir}/docbook-xsl/"/>
 </target>

 <presetdef name="dependset.build">
  <dependset>
   <srcfilelist dir="${basedir}">
    <file name="build.xml"/>
    <file name="ivy.xml"/>
    <file name="ivysettings.xml"/>
   </srcfilelist>
  </dependset>
 </presetdef>

 <presetdef name="dependset.html">
  <dependset.build>
   <srcfileset dir="${lib.dir}/docbook"/>
   <srcfilelist files="doc/jedithtml.xsl"/>
  </dependset.build>
 </presetdef>

 <presetdef name="xslt.doc">
  <xslt>
   <classpath>
    <fileset dir="${lib.dir}/docbook"
      includes="*.jar"/>
   </classpath>
   <!-- ant 1.9 compatibility: explicitly set the processor to Saxon (see bug #3818) -->
   <factory name="com.icl.saxon.TransformerFactoryImpl"/>
   <xmlcatalog>
    <entity publicid="http://docbook.sourceforge.net/release/xsl/current/html/chunk.xsl"
     location="${build.dir}/docbook-xsl/docbook/html/chunk.xsl"/>
    <entity publicid="http://docbook.sourceforge.net/release/xsl/current/fo/docbook.xsl"
     location="${build.dir}/docbook-xsl/docbook/fo/docbook.xsl"/>
   </xmlcatalog>
   <sysproperty key="javax.xml.parsers.DocumentBuilderFactory"
         value="org.apache.xerces.jaxp.DocumentBuilderFactoryImpl"/>
   <sysproperty key="javax.xml.parsers.SAXParserFactory"
         value="org.apache.xerces.jaxp.SAXParserFactoryImpl"/>
   <sysproperty key="org.apache.xerces.xni.parser.XMLParserConfiguration"
         value="org.apache.xerces.parsers.XIncludeParserConfiguration"/>
  </xslt>
 </presetdef>

 <target name="generate-doc-faq"
  depends="init,retrieve,setup,unpack-docbook-xsl">
  <dependset.html>
   <srcfileset dir="doc/FAQ"/>
   <targetfileset dir="${jar.location}/doc/FAQ"/>
  </dependset.html>
  <contrib:if>
   <available file="${jar.location}/doc/FAQ/toc.xml"
       type="file"/>
   <contrib:then>
    <echo message="FAQ is up-to-date"
          level="info"/>
   </contrib:then>
   <contrib:else>
    <xslt.doc style="doc/jedithtml.xsl"
       in="doc/FAQ/faq.xml"
       out="${jar.location}/doc/FAQ/index.html">
     <param name="base.dir"
            expression="${jar.location}/doc/FAQ/"/>
    </xslt.doc>
   </contrib:else>
  </contrib:if>
 </target>

 <target name="generate-doc-news"
  depends="init,retrieve,setup,unpack-docbook-xsl">
  <dependset.html>
   <srcfileset dir="doc/whatsnew"/>
   <targetfileset dir="${jar.location}/doc/whatsnew"/>
  </dependset.html>
  <contrib:if>
   <available file="${jar.location}/doc/whatsnew/toc.xml"
       type="file"/>
   <contrib:then>
    <echo message="News is up-to-date"
          level="info"/>
   </contrib:then>
   <contrib:else>
    <xslt.doc style="doc/jedithtml.xsl"
       in="doc/whatsnew/news.xml"
       out="${jar.location}/doc/whatsnew/index.html">
     <param name="base.dir"
            expression="${jar.location}/doc/whatsnew/"/>
    </xslt.doc>
   </contrib:else>
  </contrib:if>
 </target>

 <target name="generate-doc-users-guide"
  depends="init,retrieve,setup,unpack-docbook-xsl">
  <dependset.html>
   <srcfileset dir="doc/users-guide"/>
   <targetfileset dir="${jar.location}/doc/users-guide"/>
  </dependset.html>
  <contrib:if>
   <available file="${jar.location}/doc/users-guide/toc.xml"
       type="file"/>
   <contrib:then>
    <echo message="User's Guide is up-to-date"
          level="info"/>
   </contrib:then>
   <contrib:else>
    <xslt.doc style="doc/jedithtml.xsl"
       in="doc/users-guide/users-guide.xml"
       out="${jar.location}/doc/users-guide/index.html">
     <param name="base.dir"
            expression="${jar.location}/doc/users-guide/"/>
    </xslt.doc>
   </contrib:else>
  </contrib:if>
 </target>

 <target name="docs-html"
  depends="init,generate-doc-faq,generate-doc-news,generate-doc-users-guide"
  description="generate HTML docs">
  <copy todir="${jar.location}/doc">
   <fileset dir="doc">
    <include name="*.txt"/>
    <include name="*.html"/>
    <include name="*.png"/>
    <include name="tips/**"/>
   </fileset>
  </copy>
 </target>

 <target name="generate-javadoc"
  depends="init,setup,compile">
  <dependset>
   <srcfileset dir="${basedir}">
    <include name="build.xml"/>
    <include name="doclet/**/*.java"/>
    <include name="org/**/*.java"/>
    <include name="org/**/package.html"/>
   </srcfileset>
   <targetfileset dir="${classes.dir}/javadoc"/>
  </dependset>
  <contrib:if>
   <available file="${classes.dir}/javadoc/api/toc.xml"
       type="file"/>
   <contrib:then>
    <echo message="JavaDoc is up-to-date"
          level="info"/>
   </contrib:then>
   <contrib:else>
    <mkdir dir="${classes.dir}/javadoc"/>
    <javac srcdir="${basedir}"
           destdir="${classes.dir}/javadoc"
           includes="doclet/**"
           debug="true"
           debuglevel="${config.build.debuglevel}"
           nowarn="${config.build.nowarn}"
           deprecation="${config.build.deprecation}"
           release="${target.java.version}"
           compiler="modern"
           encoding="UTF-8"
           includeAntRuntime="true">
     <compilerarg line="${config.build.compilerarg}"/>
    </javac>
    <javadoc locale="en"
      sourcepath="${basedir}"
      destdir="${classes.dir}/javadoc/api"
      packagenames="org.*"
      doclet="doclet.GenerateTocXML"
      docletpath="${classes.dir}/javadoc"
      version="true"
      use="true"
      author="true"
      splitindex="true"
      windowtitle="jEdit API Documentation"
      doctitle="jEdit API"
      failonerror="true"
      source="${target.java.version}"
      encoding="UTF-8"
      docencoding="UTF-8"
      charset="UTF-8">
     <group title="jEdit 5 API"
            packages="org.jedit.*"/>
     <group title="jEdit 4 API"
            packages="org.gjt.sp.*"/>
     <group title="BeanShell"
            packages="org.gjt.sp.jedit.bsh*"/>
     <tag name="todo" scope="all" description="To do:"/>
     <tag name="example" scope="all" description="Example:"/>
     <classpath id="classpath.javadoc">
      <path refid="classpath.compile"/>
      <pathelement location="${classes.dir}/core"/>
     </classpath>
    </javadoc>
   </contrib:else>
  </contrib:if>
 </target>

 <target name="docs-javadoc"
  depends="init,generate-javadoc"
  description="generate JavaDoc API docs">
  <copy todir="${jar.location}/doc">
   <fileset dir="${classes.dir}/javadoc"
     includes="api/**"
     excludes="api/**/*.html"/>
  </copy>
  <copy todir="${jar.location}/doc">
   <fileset dir="${classes.dir}/javadoc"
     includes="api/**/*.html"/>
   <filterchain>
    <tokenfilter>
     <filetokenizer/>
     <replaceregex pattern="<noscript>.*?JavaScript is disabled on your browser\..*?</noscript>"
            flags="gs"/>
    </tokenfilter>
   </filterchain>
  </copy>
 </target>

 <target name="generate-pdf-users-guide"
  depends="init,retrieve,setup,unpack-docbook-xsl">
  <fail message="Please set the property "paper.type""
        unless="paper.type"/>
  <contrib:switch value="${paper.type}">
   <contrib:case value="A4">
    <property name="manual.filename.paper.type"
       value="a4"/>
   </contrib:case>
   <contrib:case value="USletter">
    <property name="manual.filename.paper.type"
       value="letter"/>
   </contrib:case>
   <contrib:default>
    <property name="manual.filename.paper.type"
       value="${paper.type}"/>
   </contrib:default>
  </contrib:switch>
  <dependset.build>
   <srcfileset dir="${lib.dir}/docbook"/>
   <srcfileset dir="${lib.dir}/fop"/>
   <srcfilelist files="doc/jeditfo.xsl"/>
   <srcfileset dir="doc/users-guide"/>
   <targetfileset file="${classes.dir}/docs-pdf/${manual.filename.prefix}${manual.filename.paper.type}.fot"/>
   <targetfileset file="${jar.location}/${manual.filename.prefix}${manual.filename.paper.type}.pdf"/>
  </dependset.build>
  <contrib:if>
   <available file="${jar.location}/${manual.filename.prefix}${manual.filename.paper.type}.pdf"
       type="file"/>
   <contrib:then>
    <echo message="${paper.type} PDF User's Guide is up-to-date"
          level="info"/>
   </contrib:then>
   <contrib:else>
    <xslt.doc style="doc/jeditfo.xsl"
       in="doc/users-guide/users-guide.xml"
       out="${classes.dir}/docs-pdf/${manual.filename.prefix}${manual.filename.paper.type}.fot">
     <param name="paper.type"
            expression="${paper.type}"/>
    </xslt.doc>
    <taskdef name="transform"
      classname="org.apache.fop.tools.anttasks.Fop"
      uri="antlib:org.apache.fop.tools.anttasks">
     <classpath>
      <fileset dir="${lib.dir}/fop"
        includes="*.jar"/>
     </classpath>
    </taskdef>
    <fop:transform fofile="${classes.dir}/docs-pdf/${manual.filename.prefix}${manual.filename.paper.type}.fot"
            outfile="${jar.location}/${manual.filename.prefix}${manual.filename.paper.type}.pdf"
            format="application/pdf"
            messagelevel="info"/>
   </contrib:else>
  </contrib:if>
 </target>

 <target name="docs-pdf-a4"
  depends="init"
  description="generate PDF users-guide with A4 paper size">
  <antcall target="generate-pdf-users-guide">
   <param name="paper.type"
          value="A4"/>
  </antcall>
 </target>

 <target name="docs-pdf-USletter"
  depends="init"
  description="generate PDF users-guide with US letter paper size">
  <antcall target="generate-pdf-users-guide">
   <param name="paper.type"
          value="USletter"/>
  </antcall>
 </target>

 <target name="docs-upload"
  depends="init,docs-html,docs-javadoc"
  description="upload generated documentation to public website (needs rsync)">
  <fail message="Please set the property "rsync.executable" in build.properties, you may find example values in build.properties.sample"
        unless="config.rsync.executable"/>
  <exec executable="${config.rsync.executable}"
        dir="${jar.location}/doc/"
        failonerror="true">
   <arg value="-avz"/>
   <arg value="--delete"/>
   <arg value="--progress"/>
   <arg value="api"/>
   <arg value="FAQ"/>
   <arg value="users-guide"/>
   <arg value="web.sourceforge.net:/home/project-web/jedit/htdocs"/>
  </exec>
 </target>

 <target name="compile-installer"
  depends="init">
  <mkdir dir="${classes.dir}/installer"/>
  <depend srcDir="${basedir}"
   destDir="${classes.dir}/installer"
   cache="${classes.dir}"/>
  <dependset>
   <srcfilelist files="build.xml"/>
   <targetfileset dir="${classes.dir}/installer"/>
  </dependset>
  <javac srcdir="${basedir}"
         destdir="${classes.dir}/installer"
         includes="installer/**"
         debug="true"
         debuglevel="${config.build.debuglevel}"
         nowarn="${config.build.nowarn}"
         deprecation="${config.build.deprecation}"
         release="${target.java.version}"
         compiler="modern"
         encoding="UTF-8"
         includeAntRuntime="false">
   <compilerarg line="${config.build.compilerarg}"/>
  </javac>
 </target>

 <target name="dist-java"
  depends="init,setup,prepare-dist-files"
  description="build the Java-installer">
  <tar destfile="${dist.dir}/jedit-macros.tar.bz2"
       longfile="gnu"
       compression="bzip2">
   <tarfileset id="jedit-macros"
        dir="${dist.dir}"
        includes="macros/**"/>
  </tar>
  <tar destfile="${dist.dir}/jedit-program.tar.bz2"
       longfile="gnu"
       compression="bzip2">
   <tarfileset id="jedit-program"
        dir="${dist.dir}"
        includes="doc/**
           jars/**
           keymaps/**
           modes/**
           properties/**
           startup/**
           ${jar.filename}"
        excludes="doc/api/**
           jars/MacOSX.jar"/>
  </tar>
  <tar destfile="${dist.dir}/jedit-windows.tar.bz2"
       longfile="gnu"
       compression="bzip2">
   <tarfileset id="jedit-windows"
        dir="${dist.dir}"
        includes="jedit.exe"/>
  </tar>
  <tar destfile="${dist.dir}/jedit-mac.tar.bz2"
       longfile="gnu"
       compression="bzip2">
   <tarfileset id="jedit-mac"
        dir="${dist.dir}"
        includes="jars/MacOSX.jar"/>
  </tar>
  <tar destfile="${dist.dir}/jedit-api.tar.bz2"
       longfile="gnu"
       compression="bzip2">
   <tarfileset id="jedit-api"
        dir="${dist.dir}"
        includes="doc/api/**"/>
  </tar>
  <tar destfile="${dist.dir}/jedit-os2.tar.bz2"
       compression="bzip2">
   <tarfileset id="jedit-os2"
        dir="${dist.dir}/classes/package-files/os2"
        includes="jedit.cmd"/>
  </tar>
  <antcall target="compile-installer">
   <param name="config.build.debuglevel"
          value="lines,source"/>
   <param name="classes.dir"
          location="${dist.dir}/classes"/>
  </antcall>
  <antcall target="compile-calculatesize">
   <param name="config.build.debuglevel"
          value="lines,source"/>
   <param name="classes.dir"
          location="${dist.dir}/classes"/>
  </antcall>
  <taskdef name="calculatesize"
    classname="de.masters_of_disaster.ant.tasks.calculatesize.CalculateSize"
    classpath="${dist.dir}/classes/calculatesize"
    uri="antlib:de.masters_of_disaster.ant.tasks"/>
  <mod:calculatesize realsizeproperty="jedit-macros.realsize"
       disksizeproperty="jedit-macros.disksize">
   <fileset refid="jedit-macros"/>
  </mod:calculatesize>
  <mod:calculatesize realsizeproperty="jedit-program.realsize"
       disksizeproperty="jedit-program.disksize">
   <fileset refid="jedit-program"/>
  </mod:calculatesize>
  <mod:calculatesize realsizeproperty="jedit-windows.realsize"
       disksizeproperty="jedit-windows.disksize">
   <fileset refid="jedit-windows"/>
  </mod:calculatesize>
  <mod:calculatesize realsizeproperty="jedit-mac.realsize"
       disksizeproperty="jedit-mac.disksize">
   <fileset refid="jedit-mac"/>
  </mod:calculatesize>
  <mod:calculatesize realsizeproperty="jedit-api.realsize"
       disksizeproperty="jedit-api.disksize">
   <fileset refid="jedit-api"/>
  </mod:calculatesize>
  <mod:calculatesize realsizeproperty="jedit-os2.realsize"
       disksizeproperty="jedit-os2.disksize">
   <fileset refid="jedit-os2"/>
  </mod:calculatesize>
  <copy todir="${dist.dir}/classes/installer/installer"
        encoding="UTF-8"
        overwrite="true">
   <fileset file="installer/install.props"/>
   <filterset>
    <filter token="jedit.version"
     value="${jedit.version}"/>
    <filter token="jedit-macros.realsize"
     value="${jedit-macros.realsize}"/>
    <filter token="jedit-macros.disksize"
     value="${jedit-macros.disksize}"/>
    <filter token="jedit-program.realsize"
     value="${jedit-program.realsize}"/>
    <filter token="jedit-program.disksize"
     value="${jedit-program.disksize}"/>
    <filter token="jedit-windows.realsize"
     value="${jedit-windows.realsize}"/>
    <filter token="jedit-windows.disksize"
     value="${jedit-windows.disksize}"/>
    <filter token="jedit-mac.realsize"
     value="${jedit-mac.realsize}"/>
    <filter token="jedit-mac.disksize"
     value="${jedit-mac.disksize}"/>
    <filter token="jedit-api.realsize"
     value="${jedit-api.realsize}"/>
    <filter token="jedit-api.disksize"
     value="${jedit-api.disksize}"/>
    <filter token="jedit-os2.realsize"
     value="${jedit-os2.realsize}"/>
    <filter token="jedit-os2.disksize"
     value="${jedit-os2.disksize}"/>
   </filterset>
  </copy>
  <jar destfile="${dist.dir}/${dist.jar.filename}"
       basedir="${dist.dir}/classes/installer"
       compress="true"
       manifest="installer/install.mf"
       duplicate="fail"
       index="true">
   <fileset dir="${basedir}">
    <include name="installer/*.html"/>
   </fileset>
   <fileset dir="${dist.dir}/classes/package-files/linux">
    <include name="jedit.1"/>
   </fileset>
   <zipfileset dir="${dist.dir}"
        includes="jedit-api.tar.bz2
           jedit-mac.tar.bz2
           jedit-macros.tar.bz2
           jedit-os2.tar.bz2
           jedit-windows.tar.bz2
           jedit-program.tar.bz2"
        prefix="installer"/>
  </jar>
  <property name="wipe.dist.files"
     value="true"/>
  <contrib:runtarget target="dist-cleanup"/>
 </target>

 <target name="dist-manuals"
  depends="init,setup"
  description="build the PDF-manuals">
  <antcall target="docs-pdf-a4">
   <param name="classes.dir"
          location="${dist.dir}/classes"/>
   <param name="jar.location"
          location="${dist.dir}"/>
  </antcall>
  <antcall target="docs-pdf-USletter">
   <param name="classes.dir"
          location="${dist.dir}/classes"/>
   <param name="jar.location"
          location="${dist.dir}"/>
  </antcall>
  <property name="wipe.dist.files"
     value="true"/>
  <contrib:runtarget target="dist-cleanup"/>
 </target>

 <target name="dist-src"
  depends="init,setup"
  description="build the src-archive">
  <mkdir dir="${dist.dir}"/>
  <tar destfile="${dist.dir}/${src.archive.filename}"
       longfile="gnu"
       compression="bzip2">
   <tarfileset dir="${basedir}"
        excludes="${config.lib.dir}/**
           ${config.build.dir}/**
           ${config.dist.dir}/**
           **/build.properties"
        prefix="jEdit/"/>
  </tar>
 </target>

 <target name="dist-mac-finish"
  depends="init,retrieve,setup"
  description="finish building the Mac OS X disk image (DMG-file) on Mac OS X">
  <fail message="The disk image (DMG-file) for easy distribution on Mac OS X can only be built on Mac OS X currently">
   <condition>
    <not>
     <os family="mac"/>
    </not>
   </condition>
  </fail>
  <taskdef name="create"
    classname="com.oracle.appbundler.AppBundlerTask"
    uri="antlib:com.oracle.appbundler">
   <classpath>
    <fileset dir="${lib.dir}/appbundler"
      includes="*.jar"/>
   </classpath>
  </taskdef>
  <tstamp>
   <format property="current.year"
    pattern="yyyy"/>
  </tstamp>
  <mkdir dir="${dist.dir}/classes/mac"/>
  <appbundler:create outputDirectory="${dist.dir}/classes/mac"
       name="jEdit"
       displayname="jEdit"
       identifier="org.gjt.sp.jedit"
       icon="icons/icon.icns"
       executableName="jedit"
       shortversion="${jedit.version}"
       version="${jedit.build.number}"
       signature="JESP"
       copyright="Copyright © 1998-${current.year} Contributors"
       jvmRequired="${target.java.version}"
       applicationCategory="public.app-category.developer-tools"
       highResolutionCapable="true"
       supportsAutomaticGraphicsSwitching="true"
       mainclassname="org.gjt.sp.jedit.jEdit">
   <classpath file="${dist.dir}/${jar.filename}"/>
   <option value="-Dapple.awt.textantialiasing=true"/>
   <option value="-Dapple.laf.useScreenMenuBar=true"/>
   <option value="-Dapple.awt.antialiasing=true"/>
   <argument value="-background"/>
   <bundledocument contentTypes="public.text"
     extensions="*"
     icon="icons/file.icns"
     name="jEdit TEXT Document"
     role="Editor"/>
  </appbundler:create>
  <copy todir="${dist.dir}/classes/mac/jEdit.app/Contents/Java/"
        overwrite="true">
   <fileset dir="${dist.dir}"
       includes="doc/**
          jars/**
          keymaps/**
          macros/**
          modes/**
          properties/**
          startup/**"/>
  </copy>
  <copy todir="${dist.dir}/classes/mac/"
        overwrite="true">
   <fileset dir="package-files/osx/"
     includes=".background/**"/>
  </copy>
  <delete failonerror="false">
   <fileset dir="${dist.dir}"
     includes="*${mac.disk.image.filename}"/>
  </delete>
  <exec executable="hdiutil"
        failonerror="true">
   <arg value="create"/>
   <arg value="-volname"/>
   <arg value="jEdit"/>
   <arg value="-srcfolder"/>
   <arg file="${dist.dir}/classes/mac"/>
   <arg file="${dist.dir}/orig-${mac.disk.image.filename}"/>
  </exec>
  <exec executable="hdiutil"
        failonerror="true">
   <arg value="convert"/>
   <arg file="${dist.dir}/orig-${mac.disk.image.filename}"/>
   <arg value="-format"/>
   <arg value="UDRW"/>
   <arg value="-o"/>
   <arg file="${dist.dir}/udrw-${mac.disk.image.filename}"/>
  </exec>
  <exec executable="hdiutil"
        failonerror="true">
   <arg value="attach"/>
   <arg file="${dist.dir}/udrw-${mac.disk.image.filename}"/>
  </exec>
  <exec executable="ln"
        failonerror="true">
   <arg value="-sF"/>
   <arg file="/Applications"/>
   <arg file="/Volumes/jEdit/"/>
  </exec>
  <copy file="package-files/osx/DS_Store"
        tofile="/Volumes/jEdit/.DS_Store"
        overwrite="true"/>
  <exec executable="hdiutil"
        failonerror="true">
   <arg value="detach"/>
   <arg file="/Volumes/jEdit"/>
   <arg value="-force"/>
  </exec>
  <copy file="${dist.dir}/udrw-${mac.disk.image.filename}"
        tofile="${dist.dir}/udrw-copy-${mac.disk.image.filename}"
        overwrite="true"/>
  <exec executable="hdiutil"
        failonerror="true">
   <arg value="convert"/>
   <arg file="${dist.dir}/udrw-copy-${mac.disk.image.filename}"/>
   <arg value="-format"/>
   <arg value="UDZO"/>
   <arg value="-imagekey"/>
   <arg value="zlib-level=9"/>
   <arg value="-o"/>
   <arg file="${dist.dir}/${mac.disk.image.filename}"/>
  </exec>
  <property name="wipe.dist.files"
     value="true"/>
  <contrib:runtarget target="dist-cleanup"/>
 </target>

 <target name="dist-mac"
  depends="init,retrieve,setup,prepare-dist-files"
  description="build the Mac OS X disk image (DMG-file)">
  <contrib:if>
   <os family="mac"/>
   <contrib:then>
    <antcall target="dist-mac-finish">
     <param name="wipe.dist.files"
            value="false"/>
    </antcall>
   </contrib:then>
   <contrib:else>
    <tar destfile="${dist.dir}/jedit${jedit.version}-dist-mac-finish.tar.bz2"
         basedir="${basedir}"
         longfile="gnu"
         includes="build.xml
            ivy.xml
            ivysettings.xml
            icons/file.icns
            icons/icon.icns
            org/gjt/sp/jedit/jEdit.java
            package-files/osx/**
            ${config.dist.dir}/${jar.filename}
            ${config.dist.dir}/doc/**
            ${config.dist.dir}/jars/**
            ${config.dist.dir}/keymaps/**
            ${config.dist.dir}/macros/**
            ${config.dist.dir}/modes/**
            ${config.dist.dir}/properties/**
            ${config.dist.dir}/startup/**"
         compression="bzip2"/>
   </contrib:else>
  </contrib:if>
  <property name="wipe.dist.files"
     value="true"/>
  <contrib:runtarget target="dist-cleanup"/>
 </target>

 <target name="filter-package-files"
  depends="init,setup">
  <fail message="Please set the property "winepath.executable" in build.properties, you may find example values in build.properties.sample">
   <condition>
    <and>
     <istrue value="${config.innosetup.via.wine}"/>
     <not>
      <isset property="config.winepath.executable"/>
     </not>
    </and>
   </condition>
  </fail>
  <contrib:if>
   <and>
    <istrue value="${config.innosetup.via.wine}"/>
    <isset property="config.winepath.executable"/>
   </and>
   <contrib:then>
    <exec executable="${config.winepath.executable}"
          outputproperty="basedir.for.innosetup"
          failonerror="true">
     <arg value="-w"/>
     <arg value="${basedir}"/>
    </exec>
    <exec executable="${config.winepath.executable}"
          outputproperty="dist.dir.for.innosetup"
          failonerror="true">
     <arg value="-w"/>
     <arg value="${dist.dir}"/>
    </exec>
   </contrib:then>
   <contrib:else>
    <property name="basedir.for.innosetup"
       value="${basedir}"/>
    <property name="dist.dir.for.innosetup"
       value="${dist.dir}"/>
   </contrib:else>
  </contrib:if>
  <tstamp>
   <format property="current.year"
    pattern="yyyy"/>
  </tstamp>
  <copy todir="${classes.dir}/package-files"
        encoding="UTF-8"
        overwrite="true">
   <fileset dir="package-files"/>
   <filterset id="package-files-filter">
    <filter token="base.dir"
     value="${basedir}"/>
    <filter token="base.dir.for.innosetup"
     value="${basedir.for.innosetup}"/>
    <filter token="current.year"
     value="${current.year}"/>
    <filter token="dist.dir.for.innosetup"
     value="${dist.dir.for.innosetup}"/>
    <filter token="jar.filename"
     value="${jar.filename}"/>
    <filter token="jedit.build.number"
     value="${jedit.build.number}"/>
    <filter token="jedit.version"
     value="${jedit.version}"/>
    <filter token="target.java.version"
     value="${target.java.version}"/>
    <filter token="win.filename"
     value="${win.filename}"/>
   </filterset>
  </copy>
 </target>

 <target name="prepare-dist-files"
  depends="init,retrieve,setup">
  <antcall target="build">
   <param name="config.build.debuglevel"
          value="lines,source"/>
   <param name="classes.dir"
          location="${dist.dir}/classes"/>
   <param name="jar.location"
          location="${dist.dir}"/>
  </antcall>
  <antcall target="docs-html">
   <param name="config.build.debuglevel"
          value="lines,source"/>
   <param name="classes.dir"
          location="${dist.dir}/classes"/>
   <param name="jar.location"
          location="${dist.dir}"/>
  </antcall>
  <antcall target="docs-javadoc">
   <param name="config.build.debuglevel"
          value="lines,source"/>
   <param name="classes.dir"
          location="${dist.dir}/classes"/>
   <param name="jar.location"
          location="${dist.dir}"/>
  </antcall>
  <copy todir="${dist.dir}/jars">
   <fileset dir="${lib.dir}/default-plugins"/>
  </copy>
  <antcall target="filter-package-files">
   <param name="classes.dir"
          location="${dist.dir}/classes"/>
  </antcall>
  <antcall target="build-exe-launcher">
   <param name="classes.dir"
          location="${dist.dir}/classes"/>
   <param name="jar.location"
          location="${dist.dir}"/>
  </antcall>
  <gzip src="${dist.dir}/classes/package-files/linux/jedit.1"
        destfile="${dist.dir}/classes/package-files/linux/jedit.1.gz"/>
 </target>

 <target name="dist-slackware"
  depends="init,setup,prepare-dist-files"
  description="build the Slackware Package">
  <tar destfile="${dist.dir}/jedit-${jedit.version}-noarch-1sao.tgz"
       longfile="gnu"
       compression="gzip">
   <tarfileset file="${basedir}"
        username="root"
        group="root"
        fullpath="./"/>
   <tarfileset dir="${dist.dir}/classes/package-files/linux/slackware"
        includes="doinst.sh
           slack-desc
           slack-required"
        username="root"
        group="root"
        prefix="install/"/>
   <tarfileset file="${dist.dir}/classes/package-files/linux/jedit"
        mode="755"
        username="root"
        group="bin"
        fullpath="usr/bin/jedit"/>
   <tarfileset dir="${dist.dir}/doc"
        includes="*.txt"
        username="root"
        group="root"
        prefix="usr/doc/jedit-${jedit.version}/"/>
   <tarfileset file="${dist.dir}/classes/package-files/linux/jedit.1.gz"
        username="root"
        group="root"
        fullpath="usr/man/man1/jedit.1.gz"/>
   <tarfileset file="${dist.dir}/classes/package-files/linux/slackware/jEdit.desktop"
        username="root"
        group="root"
        fullpath="usr/share/applications/jEdit.desktop"/>
   <tarfileset dir="${dist.dir}"
        includes="doc/**
           jars/**
           keymaps/**
           macros/**
           modes/**
           properties/**
           startup/**
           ${jar.filename}"
        excludes="jars/MacOSX.jar"
        username="root"
        group="root"
        prefix="usr/share/jedit-${jedit.version}/"/>
   <tarfileset dir="icons"
        includes="jedit-file48.png
           jedit-icon48.png"
        username="root"
        group="root"
        prefix="usr/share/pixmaps/"/>
  </tar>
  <property name="wipe.dist.files"
     value="true"/>
  <contrib:runtarget target="dist-cleanup"/>
 </target>

 <target name="compile-ar"
  depends="init">
  <mkdir dir="${classes.dir}/ar"/>
  <depend srcDir="${basedir}"
   destDir="${classes.dir}/ar"
   cache="${classes.dir}"/>
  <dependset>
   <srcfilelist files="build.xml"/>
   <targetfileset dir="${classes.dir}/ar"/>
  </dependset>
  <javac srcdir="${basedir}"
         destdir="${classes.dir}/ar"
         includes="de/masters_of_disaster/ant/tasks/ar/**"
         debug="true"
         debuglevel="${config.build.debuglevel}"
         nowarn="${config.build.nowarn}"
         deprecation="${config.build.deprecation}"
         release="${target.java.version}"
         compiler="modern"
         encoding="UTF-8"
         includeAntRuntime="true">
   <compilerarg line="${config.build.compilerarg}"/>
  </javac>
 </target>

 <target name="compile-deb"
  depends="init">
  <mkdir dir="${classes.dir}/deb"/>
  <depend srcDir="${basedir}"
   destDir="${classes.dir}/deb"
   cache="${classes.dir}"/>
  <dependset>
   <srcfilelist files="build.xml"/>
   <targetfileset dir="${classes.dir}/deb"/>
  </dependset>
  <javac srcdir="${basedir}"
         destdir="${classes.dir}/deb"
         includes="de/masters_of_disaster/ant/tasks/deb/**"
         debug="true"
         debuglevel="${config.build.debuglevel}"
         nowarn="${config.build.nowarn}"
         deprecation="${config.build.deprecation}"
         release="${target.java.version}"
         compiler="modern"
         encoding="UTF-8"
         includeAntRuntime="true">
   <compilerarg line="${config.build.compilerarg}"/>
  </javac>
 </target>

 <target name="compile-calculatesize"
  depends="init">
  <mkdir dir="${classes.dir}/calculatesize"/>
  <depend srcDir="${basedir}"
   destDir="${classes.dir}/calculatesize"
   cache="${classes.dir}"/>
  <dependset>
   <srcfilelist files="build.xml"/>
   <targetfileset dir="${classes.dir}/calculatesize"/>
  </dependset>
  <javac srcdir="${basedir}"
         destdir="${classes.dir}/calculatesize"
         includes="de/masters_of_disaster/ant/tasks/calculatesize/**"
         debug="true"
         debuglevel="${config.build.debuglevel}"
         nowarn="${config.build.nowarn}"
         deprecation="${config.build.deprecation}"
         release="${target.java.version}"
         compiler="modern"
         encoding="UTF-8"
         includeAntRuntime="true">
   <compilerarg line="${config.build.compilerarg}"/>
  </javac>
 </target>

 <target name="dist-deb"
  depends="init,retrieve,setup,prepare-dist-files"
  description="build the DEB Package">
  <antcall target="compile-ar">
   <param name="config.build.debuglevel"
          value="lines,source"/>
   <param name="classes.dir"
          location="${dist.dir}/classes"/>
  </antcall>
  <antcall target="compile-deb">
   <param name="config.build.debuglevel"
          value="lines,source"/>
   <param name="classes.dir"
          location="${dist.dir}/classes"/>
  </antcall>
  <taskdef name="deb"
    classname="de.masters_of_disaster.ant.tasks.deb.Deb"
    classpath="${dist.dir}/classes/deb"
    uri="antlib:de.masters_of_disaster.ant.tasks"/>
  <antcall target="compile-calculatesize">
   <param name="config.build.debuglevel"
          value="lines,source"/>
   <param name="classes.dir"
          location="${dist.dir}/classes"/>
  </antcall>
  <taskdef name="calculatesize"
    classname="de.masters_of_disaster.ant.tasks.calculatesize.CalculateSize"
    classpath="${dist.dir}/classes/calculatesize"
    uri="antlib:de.masters_of_disaster.ant.tasks"/>
  <mod:calculatesize realsizeproperty="deb.installed.size">
   <fileset dir="${dist.dir}/doc"
     includes="*.txt"/>
   <fileset dir="${dist.dir}"
     includes="classes/package-files/linux/jedit
        classes/package-files/linux/deb/jedit
        classes/package-files/linux/deb/jedit.desktop
        classes/package-files/linux/jedit.1.gz
        doc/**
        jars/**
        keymaps/**
        macros/**
        modes/**
        properties/**
        startup/**
        ${jar.filename}"
     excludes="jars/MacOSX.jar"/>
  </mod:calculatesize>
  <copy todir="${dist.dir}/classes/package-files/linux/deb"
        encoding="UTF-8"
        overwrite="true">
   <fileset file="package-files/linux/deb/control"/>
   <filterset>
    <filter token="jedit.build.number"
     value="${jedit.build.number}"/>
    <filter token="deb.installed.size"
     value="${deb.installed.size}"/>
   </filterset>
  </copy>
  <mod:deb destfile="${dist.dir}/jedit_${jedit.version}_all.deb"
    tempDir="${dist.dir}/classes/deb"
    deleteTempFiles="false"
    includeMd5sums="true">
   <controlfileset file="${dist.dir}/classes/package-files/linux/deb/control"/>
   <controlfileset dir="${dist.dir}/classes/package-files/linux/deb"
     includes="postinst
        postrm"
     mode="755"/>
   <datafileset file="."
         fullpath="usr/"/>
   <datafileset file="."
         fullpath="usr/bin/"/>
   <datafileset file="${dist.dir}/classes/package-files/linux/jedit"
         fullpath="usr/bin/jedit"
         mode="755"/>
   <datafileset file="."
         fullpath="usr/lib/"/>
   <datafileset file="."
         fullpath="usr/lib/menu/"/>
   <datafileset file="${dist.dir}/classes/package-files/linux/deb/jedit"
         fullpath="usr/lib/menu/jedit"/>
   <datafileset file="."
         fullpath="usr/share/"/>
   <datafileset file="."
         fullpath="usr/share/applications/"/>
   <datafileset file="${dist.dir}/classes/package-files/linux/deb/jedit.desktop"
         fullpath="usr/share/applications/jedit.desktop"/>
   <datafileset file="."
         fullpath="usr/share/doc/"/>
   <datafileset file="."
         fullpath="usr/share/doc/jEdit/"/>
   <datafileset dir="${dist.dir}/doc"
         includes="*.txt"
         prefix="usr/share/doc/jEdit/"/>
   <datafileset file="."
         fullpath="usr/share/jEdit/"/>
   <datafileset dir="${dist.dir}"
         includes="doc/**
            keymaps/**
            macros/**
            modes/**
            properties/**
            startup/**
            ${jar.filename}"
         prefix="usr/share/jEdit/"/>
   <datafileset file="."
         fullpath="usr/share/jEdit/jars/"/>
   <datafileset dir="${dist.dir}/jars"
         excludes="MacOSX.jar"
         prefix="usr/share/jEdit/jars/"/>
   <datafileset file="."
         fullpath="usr/share/man/"/>
   <datafileset file="."
         fullpath="usr/share/man/man1/"/>
   <datafileset file="${dist.dir}/classes/package-files/linux/jedit.1.gz"
         fullpath="usr/share/man/man1/jedit.1.gz"/>
  </mod:deb>
  <contrib:if>
   <istrue value="${jedit.version.final}"/>
   <contrib:then>
    <length property="deb.size"
     file="${dist.dir}/jedit_${jedit.version}_all.deb"/>
    <checksum file="${dist.dir}/jedit_${jedit.version}_all.deb"
       algorithm="MD5"
       property="deb.md5"/>
    <checksum file="${dist.dir}/jedit_${jedit.version}_all.deb"
       algorithm="SHA1"
       property="deb.sha1"/>
    <checksum file="${dist.dir}/jedit_${jedit.version}_all.deb"
       algorithm="SHA-256"
       property="deb.sha256"/>
    <copy todir="${dist.dir}"
          encoding="UTF-8"
          overwrite="true">
     <fileset file="package-files/linux/deb/Packages"/>
     <filterset>
      <filter token="jedit.build.number"
       value="${jedit.build.number}"/>
      <filter token="deb.installed.size"
       value="${deb.installed.size}"/>
      <filter token="deb.repository.file"
       value="jedit/${jedit.version}/jedit_${jedit.version}_all.deb"/>
      <filter token="deb.size"
       value="${deb.size}"/>
      <filter token="deb.md5"
       value="${deb.md5}"/>
      <filter token="deb.sha1"
       value="${deb.sha1}"/>
      <filter token="deb.sha256"
       value="${deb.sha256}"/>
     </filterset>
    </copy>
    <gzip src="${dist.dir}/Packages"
          destfile="${dist.dir}/Packages.gz"/>
    <bzip2 src="${dist.dir}/Packages"
           destfile="${dist.dir}/Packages.bz2"/>
    <length property="packages.size"
     file="${dist.dir}/Packages"/>
    <checksum file="${dist.dir}/Packages"
       algorithm="MD5"
       property="packages.md5"/>
    <checksum file="${dist.dir}/Packages"
       algorithm="SHA1"
       property="packages.sha1"/>
    <checksum file="${dist.dir}/Packages"
       algorithm="SHA-256"
       property="packages.sha256"/>
    <length property="packages.gz.size"
     file="${dist.dir}/Packages.gz"/>
    <checksum file="${dist.dir}/Packages.gz"
       algorithm="MD5"
       property="packages.gz.md5"/>
    <checksum file="${dist.dir}/Packages.gz"
       algorithm="SHA1"
       property="packages.gz.sha1"/>
    <checksum file="${dist.dir}/Packages.gz"
       algorithm="SHA-256"
       property="packages.gz.sha256"/>
    <length property="packages.bz2.size"
     file="${dist.dir}/Packages.bz2"/>
    <checksum file="${dist.dir}/Packages.bz2"
       algorithm="MD5"
       property="packages.bz2.md5"/>
    <checksum file="${dist.dir}/Packages.bz2"
       algorithm="SHA1"
       property="packages.bz2.sha1"/>
    <checksum file="${dist.dir}/Packages.bz2"
       algorithm="SHA-256"
       property="packages.bz2.sha256"/>
    <script language="beanshell">
     <classpath>
      <fileset dir="${lib.dir}/scripting"
        includes="*.jar"/>
     </classpath>

     new Formatter(new File(project.getProperty("dist.dir"), "Release"), "UTF-8", Locale.ENGLISH)
      .format("Date: %1$ta, %1$td %1$tb %1$tY %1$tT %1$tZ\n", new Object[] {
       Calendar.getInstance(TimeZone.getTimeZone("UTC")) })
      .format("MD5Sum:\n", new Object[0])
      .format(" %s %16s %s\n", new Object[] {
       project.getProperty("packages.md5"),
       project.getProperty("packages.size"),
       "Packages" })
      .format(" %s %16s %s\n", new Object[] {
       project.getProperty("packages.bz2.md5"),
       project.getProperty("packages.bz2.size"),
       "Packages.bz2" })
      .format(" %s %16s %s\n", new Object[] {
       project.getProperty("packages.gz.md5"),
       project.getProperty("packages.gz.size"),
       "Packages.gz" })
      .format("SHA1:\n", new Object[0])
      .format(" %s %16s %s\n", new Object[] {
       project.getProperty("packages.sha1"),
       project.getProperty("packages.size"),
       "Packages" })
      .format(" %s %16s %s\n", new Object[] {
       project.getProperty("packages.bz2.sha1"),
       project.getProperty("packages.bz2.size"),
       "Packages.bz2" })
      .format(" %s %16s %s\n", new Object[] {
       project.getProperty("packages.gz.sha1"),
       project.getProperty("packages.gz.size"),
       "Packages.gz" })
      .format("SHA256:\n", new Object[0])
      .format(" %s %16s %s\n", new Object[] {
       project.getProperty("packages.sha256"),
       project.getProperty("packages.size"),
       "Packages" })
      .format(" %s %16s %s\n", new Object[] {
       project.getProperty("packages.bz2.sha256"),
       project.getProperty("packages.bz2.size"),
       "Packages.bz2" })
      .format(" %s %16s %s\n", new Object[] {
       project.getProperty("packages.gz.sha256"),
       project.getProperty("packages.gz.size"),
       "Packages.gz" })
      .close()
    </script>
    <contrib:runtarget target="dist-sign-deb-Release"/>
   </contrib:then>
  </contrib:if>
  <property name="wipe.dist.files"
     value="true"/>
  <contrib:runtarget target="dist-cleanup"/>
 </target>

 <target name="dist-sign-deb-Release"
  depends="init,retrieve,setup"
  description="sign the DEB Release file">
  <contrib:if>
   <not>
    <or>
     <isset property="config.gpg.secring"/>
     <istrue value="${config.gpg.ignore.missing.secring}"/>
    </or>
   </not>
   <contrib:then>
    <input>
WARN: The property "gpg.secring" is not set in build.properties, you may find example values in build.properties.sample.
WARN: The debian repository metadata will not be signed (Release.gpg) unless you define that property.
WARN: Set the property "gpg.ignore.missing.secring" to "true" in build.properties to suppress this message.

Press Return key to continue...
    </input>
   </contrib:then>
  </contrib:if>
  <contrib:if>
   <isset property="config.gpg.secring"/>
   <contrib:then>
    <input addproperty="config.gpg.secring.password">
     <handler type="secure"/>
 Please enter the secring password and press Return key.
 You can also set the property "gpg.secring.password" in build.properties instead.

 Password: </input>
   </contrib:then>
  </contrib:if>
  <script language="beanshell">
   <classpath>
    <fileset dir="${lib.dir}/scripting"
--> --------------------

--> maximum size reached

--> --------------------

¤ Dauer der Verarbeitung: 0.136 Sekunden  (vorverarbeitet)  ¤





Kontakt
Drucken
Kontakt
sprechenden Kalenders

in der Quellcodebibliothek suchen




schauen Sie vor die Tür

Fenster


Die Firma ist wie angegeben erreichbar.

Die farbliche Syntaxdarstellung ist noch experimentell.


Bot Zugriff



                                                                                                                                                                                                                                                                                                                                                                                                     


Neuigkeiten

     Aktuelles
     Motto des Tages

Software

     Produkte
     Quellcodebibliothek

Aktivitäten

     Artikel über Sicherheit
     Anleitung zur Aktivierung von SSL

Muße

     Gedichte
     Musik
     Bilder

Jenseits des Üblichen ....

Besucherstatistik

Besucherstatistik