PageRenderTime 65ms CodeModel.GetById 23ms RepoModel.GetById 0ms app.codeStats 1ms

/jEdit/tags/jedit-4-5-pre1/build.xml

#
XML | 1924 lines | 1841 code | 73 blank | 10 comment | 0 complexity | 947a102c3949652dd1aceda724ac255a MD5 | raw file
Possible License(s): BSD-3-Clause, AGPL-1.0, Apache-2.0, LGPL-2.0, LGPL-3.0, GPL-2.0, CC-BY-SA-3.0, LGPL-2.1, GPL-3.0, MPL-2.0-no-copyleft-exception, IPL-1.0
  1. <?xml version="1.0"?>
  2. <project name="jedit"
  3. default="build"
  4. xmlns:mod="antlib:de.masters_of_disaster.ant.tasks"
  5. xmlns:contrib="antlib:net.sf.antcontrib"
  6. xmlns:launch4j="antlib:net.sf.launch4j.ant"
  7. xmlns:jarbundler="antlib:net.sourceforge.jarbundler"
  8. xmlns:fop="antlib:org.apache.fop.tools.anttasks"
  9. xmlns:ivy="antlib:org.apache.ivy.ant">
  10. <description>
  11. This is an ant build.xml file for building jEdit - Programmer's Text Editor.
  12. </description>
  13. <property file="build.properties"
  14. prefix="config"/>
  15. <!-- jEdit Version -->
  16. <property name="jedit.version"
  17. value="4.5pre1"/>
  18. <property name="jedit.build.number"
  19. value="04.05.01.00"/>
  20. <property name="jedit.version.final"
  21. value="false"/>
  22. <!-- Target Java Versions -->
  23. <property name="target.java.version"
  24. value="1.6"/>
  25. <property name="mac.target.java.version"
  26. value="1.6+"/>
  27. <!-- based on http://packages.slackverse.org/?v=1&p=92 -->
  28. <property name="slackware.target.java.version"
  29. value="1_6_0_20-i586-1"/>
  30. <!-- Various Paths -->
  31. <property name="config.lib.dir"
  32. value="lib"/>
  33. <property name="config.build.dir"
  34. value="build"/>
  35. <property name="config.dist.dir"
  36. value="dist"/>
  37. <property name="lib.dir"
  38. location="${config.lib.dir}"/>
  39. <property name="build.dir"
  40. location="${config.build.dir}"/>
  41. <property name="dist.dir"
  42. location="${config.dist.dir}"/>
  43. <property name="classes.dir"
  44. location="${build.dir}/classes"/>
  45. <property name="jar.location"
  46. location="${build.dir}"/>
  47. <property name="textAreaPackage"
  48. location="../textarea"/>
  49. <!-- Various Filenames -->
  50. <property name="jar.filename"
  51. value="${ant.project.name}.jar"/>
  52. <property name="dist.jar.filename"
  53. value="jedit${jedit.version}install.jar"/>
  54. <property name="manual.filename.prefix"
  55. value="jedit${jedit.version}manual-"/>
  56. <property name="src.archive.filename"
  57. value="jedit${jedit.version}source.tar.bz2"/>
  58. <property name="win.filename"
  59. value="jedit${jedit.version}install"/>
  60. <property name="mac.disk.image.filename"
  61. value="jedit${jedit.version}install.dmg"/>
  62. <!-- Ivy Properties -->
  63. <property name="config.ivy.version"
  64. value="2.2.0"/>
  65. <property name="ivy.jar.dir"
  66. location="${lib.dir}/ivy"/>
  67. <property name="ivy.jar.filename"
  68. value="ivy-${config.ivy.version}.jar"/>
  69. <property name="ivy.jar.file"
  70. location="${ivy.jar.dir}/${ivy.jar.filename}"/>
  71. <!-- Miscellaneous -->
  72. <property name="config.build.debuglevel"
  73. value="lines,vars,source"/>
  74. <property name="config.build.nowarn"
  75. value="false"/>
  76. <property name="config.build.deprecation"
  77. value="true"/>
  78. <property name="config.build.compilerarg"
  79. value="-Xlint:unchecked"/>
  80. <target name="init"
  81. unless="init.done">
  82. <echo message="Buildfile for ${ant.project.name} (${ant.file})"
  83. level="info"/>
  84. <fail message="Ant 1.8 or newer (1.8.1 excluded due to a bug) is needed for jEdit to build, please install it and rerun">
  85. <condition>
  86. <or>
  87. <not>
  88. <antversion atleast="1.8"/>
  89. </not>
  90. <antversion exactly="1.8.1"/>
  91. </or>
  92. </condition>
  93. </fail>
  94. <fail message="The ant-optional package is needed for jEdit to build, please install it and rerun">
  95. <condition>
  96. <not>
  97. <and>
  98. <available classname="org.apache.tools.ant.taskdefs.optional.depend.Depend"/>
  99. <available classname="org.apache.tools.ant.taskdefs.optional.TraXLiaison"/>
  100. </and>
  101. </not>
  102. </condition>
  103. </fail>
  104. <property name="init.done"
  105. value="true"/>
  106. </target>
  107. <target name="check-ivy"
  108. depends="init">
  109. <available property="ivy.jar.present"
  110. file="${ivy.jar.file}"
  111. type="file"/>
  112. </target>
  113. <target name="download-ivy"
  114. depends="init,check-ivy"
  115. unless="ivy.jar.present">
  116. <mkdir dir="${ivy.jar.dir}"/>
  117. <get src="http://repo2.maven.org/maven2/org/apache/ivy/ivy/${config.ivy.version}/ivy-${config.ivy.version}.jar"
  118. dest="${ivy.jar.file}"
  119. usetimestamp="true"/>
  120. </target>
  121. <target name="init-ivy"
  122. depends="init,download-ivy"
  123. unless="ivy.done">
  124. <property name="ivy.retrieve.pattern"
  125. value="${lib.dir}/[conf]/[artifact](-[classifier]).[ext]"/>
  126. <taskdef resource="org/apache/ivy/ant/antlib.xml"
  127. classpath="${ivy.jar.file}"
  128. loaderref="ivy.loader"
  129. uri="antlib:org.apache.ivy.ant"/>
  130. <ivy:settings file="ivysettings.xml"/>
  131. </target>
  132. <target name="retrieve"
  133. description="retrieve the dependencies"
  134. depends="init,init-ivy"
  135. unless="ivy.done">
  136. <ivy:retrieve sync="true"/>
  137. <ivy:retrieve pattern="${lib.dir}/ivy/[artifact]-[revision].[ext]"
  138. organisation="org.apache.ivy"
  139. module="ivy"
  140. revision="${config.ivy.version}"
  141. conf="default"
  142. inline="true"/>
  143. <property name="ivy.done"
  144. value="true"/>
  145. </target>
  146. <target name="setup"
  147. depends="init,retrieve">
  148. <taskdef resource="net/sf/antcontrib/antlib.xml"
  149. uri="antlib:net.sf.antcontrib">
  150. <classpath>
  151. <fileset dir="${lib.dir}/ant-contrib"
  152. includes="*.jar"/>
  153. </classpath>
  154. </taskdef>
  155. </target>
  156. <target name="clean"
  157. depends="init"
  158. description="clean up intermediate files">
  159. <delete includeemptydirs="true"
  160. failonerror="false">
  161. <fileset dir="${build.dir}/classes"
  162. defaultexcludes="false"/>
  163. <fileset dir="${dist.dir}/classes"
  164. defaultexcludes="false"/>
  165. </delete>
  166. </target>
  167. <target name="clean-all"
  168. depends="init"
  169. description="clean up lib.dir, build.dir and dist.dir completely">
  170. <delete includeemptydirs="true"
  171. failonerror="false">
  172. <fileset dir="${lib.dir}"
  173. defaultexcludes="false"/>
  174. <fileset dir="${build.dir}"
  175. defaultexcludes="false"/>
  176. <fileset dir="${dist.dir}"
  177. defaultexcludes="false"/>
  178. <fileset dir="${textAreaPackage}/build"
  179. defaultexcludes="false"/>
  180. </delete>
  181. </target>
  182. <target name="compile"
  183. depends="init">
  184. <mkdir dir="${classes.dir}/core"/>
  185. <depend srcDir="${basedir}"
  186. destDir="${classes.dir}/core"
  187. cache="${classes.dir}"/>
  188. <dependset>
  189. <srcfilelist files="build.xml"/>
  190. <targetfileset dir="${classes.dir}/core"/>
  191. </dependset>
  192. <javac srcdir="${basedir}"
  193. destdir="${classes.dir}/core"
  194. debug="true"
  195. debuglevel="${config.build.debuglevel}"
  196. nowarn="${config.build.nowarn}"
  197. deprecation="${config.build.deprecation}"
  198. source="${target.java.version}"
  199. target="${target.java.version}"
  200. compiler="modern"
  201. encoding="UTF-8"
  202. includeAntRuntime="false">
  203. <include name="org/**"/>
  204. <compilerarg line="${config.build.compilerarg}"/>
  205. </javac>
  206. </target>
  207. <target name="prepare-textArea"
  208. depends="init">
  209. <delete includeemptydirs="true"
  210. failonerror="false">
  211. <fileset dir="${textAreaPackage}/src"/>
  212. </delete>
  213. <mkdir dir="${textAreaPackage}/src"/>
  214. <copy todir="${textAreaPackage}/src">
  215. <fileset dir="${basedir}">
  216. <include name="modes/*"/>
  217. <include name="org/gjt/sp/jedit/bsh/*"/>
  218. <include name="org/gjt/sp/jedit/bsh/**/*"/>
  219. <include name="org/gjt/sp/jedit/buffer/BufferAdapter.java"/>
  220. <include name="org/gjt/sp/jedit/buffer/BufferListener.java"/>
  221. <include name="org/gjt/sp/jedit/buffer/BufferSegment.java"/>
  222. <include name="org/gjt/sp/jedit/buffer/ContentManager.java"/>
  223. <include name="org/gjt/sp/jedit/buffer/DefaultFoldHandlerProvider.java"/>
  224. <include name="org/gjt/sp/jedit/buffer/DummyFoldHandler.java"/>
  225. <include name="org/gjt/sp/jedit/buffer/ExplicitFoldHandler.java"/>
  226. <include name="org/gjt/sp/jedit/buffer/FoldHandler.java"/>
  227. <include name="org/gjt/sp/jedit/buffer/FoldHandlerProvider.java"/>
  228. <include name="org/gjt/sp/jedit/buffer/IndentFoldHandler.java"/>
  229. <include name="org/gjt/sp/jedit/buffer/JEditBuffer.java"/>
  230. <include name="org/gjt/sp/jedit/buffer/KillRing.java"/>
  231. <include name="org/gjt/sp/jedit/buffer/LineManager.java"/>
  232. <include name="org/gjt/sp/jedit/buffer/PositionManager.java"/>
  233. <include name="org/gjt/sp/jedit/buffer/UndoManager.java"/>
  234. <include name="org/gjt/sp/jedit/gui/KeyEventTranslator.java"/>
  235. <include name="org/gjt/sp/jedit/gui/KeyEventWorkaround.java"/>
  236. <include name="org/gjt/sp/jedit/gui/MutableListModel.java"/>
  237. <include name="org/gjt/sp/jedit/gui/ShortcutPrefixActiveEvent.java"/>
  238. <include name="org/gjt/sp/jedit/gui/HistoryModel.java"/>
  239. <include name="org/gjt/sp/jedit/gui/HistoryModelSaver.java"/>
  240. <include name="org/gjt/sp/jedit/indent/*.java"/>
  241. <include name="org/gjt/sp/jedit/input/AbstractInputHandler.java"/>
  242. <include name="org/gjt/sp/jedit/input/DefaultInputHandlerProvider.java"/>
  243. <include name="org/gjt/sp/jedit/input/InputHandlerProvider.java"/>
  244. <include name="org/gjt/sp/jedit/input/TextAreaInputHandler.java"/>
  245. <include name="org/gjt/sp/jedit/syntax/*.java"/>
  246. <include name="org/gjt/sp/jedit/syntax/xmode.dtd"/>
  247. <include name="org/gjt/sp/jedit/datatransfer/JEditDataFlavor.java"/>
  248. <include name="org/gjt/sp/jedit/datatransfer/JEditRichText.java"/>
  249. <include name="org/gjt/sp/jedit/datatransfer/JEditTransferable.java"/>
  250. <include name="org/gjt/sp/jedit/datatransfer/JEditTransferableService.java"/>
  251. <include name="org/gjt/sp/jedit/datatransfer/RichJEditTextTransferableService.java"/>
  252. <include name="org/gjt/sp/jedit/datatransfer/RichTextTransferable.java"/>
  253. <include name="org/gjt/sp/jedit/datatransfer/StringTransferableService.java"/>
  254. <include name="org/gjt/sp/jedit/datatransfer/TransferHandler.java"/>
  255. <include name="org/gjt/sp/jedit/textarea/Anchor.java"/>
  256. <include name="org/gjt/sp/jedit/textarea/AntiAlias.java"/>
  257. <include name="org/gjt/sp/jedit/textarea/BufferHandler.java"/>
  258. <include name="org/gjt/sp/jedit/textarea/ChunkCache.java"/>
  259. <include name="org/gjt/sp/jedit/textarea/ColumnBlock.java"/>
  260. <include name="org/gjt/sp/jedit/textarea/ColumnBlockLine.java"/>
  261. <include name="org/gjt/sp/jedit/textarea/DisplayManager.java"/>
  262. <include name="org/gjt/sp/jedit/textarea/ElasticTabStopBufferListener.java"/>
  263. <include name="org/gjt/sp/jedit/textarea/ElasticTabstopsTabExpander.java"/>
  264. <include name="org/gjt/sp/jedit/textarea/ExtensionManager.java"/>
  265. <include name="org/gjt/sp/jedit/textarea/FastRepaintManager.java"/>
  266. <include name="org/gjt/sp/jedit/textarea/FirstLine.java"/>
  267. <include name="org/gjt/sp/jedit/textarea/FoldPainter.java"/>
  268. <include name="org/gjt/sp/jedit/textarea/Gutter.java"/>
  269. <include name="org/gjt/sp/jedit/textarea/GutterPopupHandler.java"/>
  270. <include name="org/gjt/sp/jedit/textarea/InputMethodSupport.java"/>
  271. <include name="org/gjt/sp/jedit/textarea/MouseActions.java"/>
  272. <include name="org/gjt/sp/jedit/textarea/MouseActionsProvider.java"/>
  273. <include name="org/gjt/sp/jedit/textarea/Node.java"/>
  274. <include name="org/gjt/sp/jedit/textarea/RangeMap.java"/>
  275. <include name="org/gjt/sp/jedit/textarea/Selection.java"/>
  276. <include name="org/gjt/sp/jedit/textarea/SelectionManager.java"/>
  277. <include name="org/gjt/sp/jedit/textarea/ScreenLineManager.java"/>
  278. <include name="org/gjt/sp/jedit/textarea/ScrollLayout.java"/>
  279. <include name="org/gjt/sp/jedit/textarea/ScrollLineCount.java"/>
  280. <include name="org/gjt/sp/jedit/textarea/ScrollListener.java"/>
  281. <include name="org/gjt/sp/jedit/textarea/StandaloneTextArea.java"/>
  282. <include name="org/gjt/sp/jedit/textarea/StatusListener.java"/>
  283. <include name="org/gjt/sp/jedit/textarea/StructureMatcher.java"/>
  284. <include name="org/gjt/sp/jedit/textarea/TextArea.java"/>
  285. <include name="org/gjt/sp/jedit/textarea/TextAreaBorder.java"/>
  286. <include name="org/gjt/sp/jedit/textarea/TextAreaDropHandler.java"/>
  287. <include name="org/gjt/sp/jedit/textarea/TextAreaException.java"/>
  288. <include name="org/gjt/sp/jedit/textarea/TextAreaExtension.java"/>
  289. <include name="org/gjt/sp/jedit/textarea/TextAreaMouseHandler.java"/>
  290. <include name="org/gjt/sp/jedit/textarea/TextAreaPainter.java"/>
  291. <include name="org/gjt/sp/jedit/textarea/textarea.actions.xml"/>
  292. <include name="org/gjt/sp/jedit/textarea/TriangleFoldPainter.java"/>
  293. <include name="org/gjt/sp/jedit/ActionListHandler.java"/>
  294. <include name="org/gjt/sp/jedit/BeanShellFacade.java"/>
  295. <include name="org/gjt/sp/jedit/Debug.java"/>
  296. <include name="org/gjt/sp/jedit/IPropertyManager.java"/>
  297. <include name="org/gjt/sp/jedit/JEditAbstractEditAction.java"/>
  298. <include name="org/gjt/sp/jedit/JEditActionSet.java"/>
  299. <include name="org/gjt/sp/jedit/JEditActionContext.java"/>
  300. <include name="org/gjt/sp/jedit/JEditBeanShellAction.java"/>
  301. <include name="org/gjt/sp/jedit/Mode.java"/>
  302. <include name="org/gjt/sp/jedit/OperatingSystem.java"/>
  303. <include name="org/gjt/sp/jedit/RegistersListener.java"/>
  304. <include name="org/gjt/sp/jedit/Registers.java"/>
  305. <include name="org/gjt/sp/jedit/RegisterSaver.java"/>
  306. <include name="org/gjt/sp/jedit/SelectionManager.java"/>
  307. <include name="org/gjt/sp/jedit/TextUtilities.java"/>
  308. <include name="org/gjt/sp/jedit/actions.dtd"/>
  309. <include name="org/gjt/sp/jedit/jedit.props"/>
  310. <include name="org/gjt/sp/jedit/jedit_keys.props"/>
  311. <include name="modes/*"/>
  312. <include name="org/gjt/sp/util/Log*.java"/>
  313. <include name="org/gjt/sp/util/IntegerArray.java"/>
  314. <include name="org/gjt/sp/util/IOUtilities.java"/>
  315. <include name="org/gjt/sp/util/ProgressObserver.java"/>
  316. <include name="org/gjt/sp/util/SegmentCharSequence.java"/>
  317. <include name="org/gjt/sp/util/StandardUtilities.java"/>
  318. <include name="org/gjt/sp/util/Task.java"/>
  319. <include name="org/gjt/sp/util/TaskManager.java"/>
  320. <include name="org/gjt/sp/util/TaskListener.java"/>
  321. <include name="org/gjt/sp/util/ThreadUtilities.java"/>
  322. <include name="org/gjt/sp/util/SyntaxUtilities.java"/>
  323. <include name="org/gjt/sp/util/XMLUtilities.java"/>
  324. </fileset>
  325. </copy>
  326. </target>
  327. <target name="compile-textArea"
  328. depends="init,prepare-textArea">
  329. <mkdir dir="${textAreaPackage}/build"/>
  330. <javac srcdir="${textAreaPackage}/src"
  331. destdir="${textAreaPackage}/build"
  332. debug="true"
  333. debuglevel="${config.build.debuglevel}"
  334. nowarn="${config.build.nowarn}"
  335. deprecation="${config.build.deprecation}"
  336. source="${target.java.version}"
  337. target="${target.java.version}"
  338. compiler="modern"
  339. encoding="UTF-8"
  340. includeAntRuntime="false">
  341. <compilerarg line="${config.build.compilerarg}"/>
  342. </javac>
  343. </target>
  344. <target name="build"
  345. depends="init,retrieve,setup,compile"
  346. description="build the jEdit JAR-file with full debug-information">
  347. <mkdir dir="${jar.location}"/>
  348. <jar destfile="${jar.location}/${jar.filename}"
  349. basedir="${classes.dir}/core"
  350. compress="false"
  351. manifest="org/gjt/sp/jedit/jedit.manifest"
  352. duplicate="fail"
  353. index="true">
  354. <fileset dir="${basedir}">
  355. <include name="org/gjt/sp/jedit/bsh/commands/*.bsh"/>
  356. <include name="org/gjt/sp/jedit/**/*.dtd"/>
  357. <include name="org/gjt/sp/jedit/default.abbrevs"/>
  358. <include name="org/gjt/sp/jedit/*.props"/>
  359. <include name="org/gjt/sp/jedit/*.xml"/>
  360. <include name="org/gjt/sp/jedit/textarea/*.xml"/>
  361. <include name="org/gjt/sp/jedit/icons/**/*.gif"/>
  362. <include name="org/gjt/sp/jedit/icons/**/*.jpg"/>
  363. <include name="org/gjt/sp/jedit/icons/**/*.png"/>
  364. </fileset>
  365. </jar>
  366. <copy todir="${jar.location}">
  367. <fileset dir="${basedir}">
  368. <include name="macros/**"/>
  369. <include name="modes/**"/>
  370. <include name="properties/**"/>
  371. <include name="startup/**"/>
  372. </fileset>
  373. </copy>
  374. <copy todir="${jar.location}/jars">
  375. <fileset dir="${lib.dir}/default-plugins">
  376. <exclude name="MacOSX.jar"/>
  377. </fileset>
  378. </copy>
  379. <contrib:if>
  380. <os family="mac"/>
  381. <contrib:then>
  382. <copy todir="${jar.location}/jars">
  383. <fileset dir="${lib.dir}/default-plugins">
  384. <include name="MacOSX.jar"/>
  385. </fileset>
  386. </copy>
  387. </contrib:then>
  388. </contrib:if>
  389. </target>
  390. <target name="build-exe-launcher"
  391. depends="init,retrieve,setup,filter-package-files"
  392. description="build the EXE launcher">
  393. <contrib:if>
  394. <os family="windows"/>
  395. <contrib:then>
  396. <property name="osfamily"
  397. value="windows"/>
  398. </contrib:then>
  399. </contrib:if>
  400. <contrib:if>
  401. <os family="mac"/>
  402. <contrib:then>
  403. <property name="osfamily"
  404. value="mac"/>
  405. </contrib:then>
  406. </contrib:if>
  407. <contrib:if>
  408. <os family="unix"/>
  409. <contrib:then>
  410. <property name="osfamily"
  411. value="unix"/>
  412. </contrib:then>
  413. </contrib:if>
  414. <contrib:switch value="${osfamily}">
  415. <contrib:case value="windows">
  416. <unzip src="${lib.dir}/launch4j/launch4j-win32.zip"
  417. dest="${build.dir}/"/>
  418. </contrib:case>
  419. <contrib:case value="unix">
  420. <untar src="${lib.dir}/launch4j/launch4j-linux.tgz"
  421. dest="${build.dir}/"
  422. compression="gzip"/>
  423. <chmod dir="${build.dir}/launch4j/bin/"
  424. perm="+x"
  425. includes="**"/>
  426. </contrib:case>
  427. <contrib:case value="mac">
  428. <untar src="${lib.dir}/launch4j/launch4j-macosx.tgz"
  429. dest="${build.dir}/"
  430. compression="gzip"/>
  431. <chmod dir="${build.dir}/launch4j/bin/"
  432. perm="+x"
  433. includes="**"
  434. osfamily="mac"/>
  435. </contrib:case>
  436. <contrib:default>
  437. <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"/>
  438. </contrib:default>
  439. </contrib:switch>
  440. <taskdef name="create"
  441. classname="net.sf.launch4j.ant.Launch4jTask"
  442. classpath="${build.dir}/launch4j/launch4j.jar"
  443. uri="antlib:net.sf.launch4j.ant"/>
  444. <launch4j:create configFile="${classes.dir}/package-files/windows/jedit.launch4j.xml"
  445. outfile="${jar.location}/jedit.exe"/>
  446. </target>
  447. <target name="build-textArea"
  448. depends="init,compile-textArea"
  449. description="build the textArea JAR-file with full debug-information">
  450. <mkdir dir="${jar.location}"/>
  451. <jar destfile="${jar.location}/${ant.project.name}-textArea.jar"
  452. compress="false"
  453. duplicate="fail"
  454. index="true">
  455. <fileset dir="${textAreaPackage}/build/"/>
  456. <fileset dir="${textAreaPackage}/src">
  457. <include name="org/gjt/sp/jedit/textarea/*.xml"/>
  458. <include name="org/gjt/sp/jedit/syntax/xmode.dtd"/>
  459. <include name="org/gjt/sp/jedit/actions.dtd"/>
  460. <include name="org/gjt/sp/jedit/jedit.props"/>
  461. <include name="org/gjt/sp/jedit/jedit_keys.props"/>
  462. <include name="modes/*"/>
  463. </fileset>
  464. <manifest>
  465. <attribute name="Main-Class"
  466. value="org.gjt.sp.jedit.textarea.StandaloneTextArea"/>
  467. </manifest>
  468. </jar>
  469. </target>
  470. <target name="run"
  471. depends="init,build"
  472. description="run jEdit">
  473. <java jar="${jar.location}/${jar.filename}"
  474. fork="true"
  475. spawn="true"
  476. maxmemory="192M">
  477. <arg value="-settings=${build.dir}/settings"/>
  478. </java>
  479. </target>
  480. <target name="run-debug"
  481. depends="init,build"
  482. description="run jEdit with debug listening enabled">
  483. <java jar="${jar.location}/${jar.filename}"
  484. fork="true"
  485. spawn="true"
  486. maxmemory="192M">
  487. <jvmarg value="-agentlib:jdwp=transport=dt_socket,server=y,address=localhost:5005,timeout=60000"/>
  488. <arg value="-settings=${build.dir}/settings"/>
  489. </java>
  490. </target>
  491. <target name="unpack-docbook-xsl"
  492. depends="init,retrieve">
  493. <unzip src="${lib.dir}/docbook/docbook-xsl-resources.zip"
  494. dest="${build.dir}/docbook-xsl/"/>
  495. </target>
  496. <presetdef name="dependset.build">
  497. <dependset>
  498. <srcfilelist dir="${basedir}">
  499. <file name="build.xml"/>
  500. <file name="ivy.xml"/>
  501. <file name="ivysettings.xml"/>
  502. </srcfilelist>
  503. </dependset>
  504. </presetdef>
  505. <presetdef name="dependset.html">
  506. <dependset.build>
  507. <srcfileset dir="${lib.dir}/docbook"/>
  508. <srcfilelist files="doc/jedithtml.xsl"/>
  509. </dependset.build>
  510. </presetdef>
  511. <presetdef name="xslt.doc">
  512. <xslt>
  513. <classpath>
  514. <fileset dir="${lib.dir}/docbook"
  515. includes="*.jar"/>
  516. </classpath>
  517. <xmlcatalog>
  518. <entity publicid="http://docbook.sourceforge.net/release/xsl/current/html/chunk.xsl"
  519. location="${build.dir}/docbook-xsl/docbook/html/chunk.xsl"/>
  520. <entity publicid="http://docbook.sourceforge.net/release/xsl/current/fo/docbook.xsl"
  521. location="${build.dir}/docbook-xsl/docbook/fo/docbook.xsl"/>
  522. </xmlcatalog>
  523. <sysproperty key="javax.xml.parsers.DocumentBuilderFactory"
  524. value="org.apache.xerces.jaxp.DocumentBuilderFactoryImpl"/>
  525. <sysproperty key="javax.xml.parsers.SAXParserFactory"
  526. value="org.apache.xerces.jaxp.SAXParserFactoryImpl"/>
  527. <sysproperty key="org.apache.xerces.xni.parser.XMLParserConfiguration"
  528. value="org.apache.xerces.parsers.XIncludeParserConfiguration"/>
  529. </xslt>
  530. </presetdef>
  531. <target name="generate-doc-faq"
  532. depends="init,retrieve,setup,unpack-docbook-xsl">
  533. <dependset.html>
  534. <srcfileset dir="doc/FAQ"/>
  535. <targetfileset dir="${jar.location}/doc/FAQ"/>
  536. </dependset.html>
  537. <contrib:if>
  538. <available file="${jar.location}/doc/FAQ/toc.xml"
  539. type="file"/>
  540. <contrib:then>
  541. <echo message="FAQ is up-to-date"
  542. level="info"/>
  543. </contrib:then>
  544. <contrib:else>
  545. <xslt.doc style="doc/jedithtml.xsl"
  546. in="doc/FAQ/faq.xml"
  547. out="${jar.location}/doc/FAQ/index.html">
  548. <param name="base.dir"
  549. expression="${jar.location}/doc/FAQ/"/>
  550. </xslt.doc>
  551. </contrib:else>
  552. </contrib:if>
  553. </target>
  554. <target name="generate-doc-news"
  555. depends="init,retrieve,setup,unpack-docbook-xsl">
  556. <dependset.html>
  557. <srcfileset dir="doc/news45"/>
  558. <targetfileset dir="${jar.location}/doc/news45"/>
  559. </dependset.html>
  560. <contrib:if>
  561. <available file="${jar.location}/doc/news45/toc.xml"
  562. type="file"/>
  563. <contrib:then>
  564. <echo message="News is up-to-date"
  565. level="info"/>
  566. </contrib:then>
  567. <contrib:else>
  568. <xslt.doc style="doc/jedithtml.xsl"
  569. in="doc/news45/news.xml"
  570. out="${jar.location}/doc/news45/index.html">
  571. <param name="base.dir"
  572. expression="${jar.location}/doc/news45/"/>
  573. </xslt.doc>
  574. </contrib:else>
  575. </contrib:if>
  576. </target>
  577. <target name="generate-doc-users-guide"
  578. depends="init,retrieve,setup,unpack-docbook-xsl">
  579. <dependset.html>
  580. <srcfileset dir="doc/users-guide"/>
  581. <targetfileset dir="${jar.location}/doc/users-guide"/>
  582. </dependset.html>
  583. <contrib:if>
  584. <available file="${jar.location}/doc/users-guide/toc.xml"
  585. type="file"/>
  586. <contrib:then>
  587. <echo message="User's Guide is up-to-date"
  588. level="info"/>
  589. </contrib:then>
  590. <contrib:else>
  591. <xslt.doc style="doc/jedithtml.xsl"
  592. in="doc/users-guide/users-guide.xml"
  593. out="${jar.location}/doc/users-guide/index.html">
  594. <param name="base.dir"
  595. expression="${jar.location}/doc/users-guide/"/>
  596. </xslt.doc>
  597. </contrib:else>
  598. </contrib:if>
  599. </target>
  600. <target name="docs-html"
  601. depends="init,generate-doc-faq,generate-doc-news,generate-doc-users-guide"
  602. description="generate HTML docs">
  603. <copy todir="${jar.location}/doc">
  604. <fileset dir="doc">
  605. <include name="*.txt"/>
  606. <include name="*.html"/>
  607. <include name="*.png"/>
  608. <include name="tips/**"/>
  609. </fileset>
  610. </copy>
  611. </target>
  612. <target name="generate-javadoc"
  613. depends="init,setup,compile">
  614. <dependset>
  615. <srcfileset dir="${basedir}">
  616. <include name="build.xml"/>
  617. <include name="doclet/**/*.java"/>
  618. <include name="org/**/*.java"/>
  619. <include name="org/**/package.html"/>
  620. </srcfileset>
  621. <targetfileset dir="${classes.dir}/javadoc"/>
  622. </dependset>
  623. <contrib:if>
  624. <available file="${classes.dir}/javadoc/api/toc.xml"
  625. type="file"/>
  626. <contrib:then>
  627. <echo message="JavaDoc is up-to-date"
  628. level="info"/>
  629. </contrib:then>
  630. <contrib:else>
  631. <mkdir dir="${classes.dir}/javadoc"/>
  632. <javac srcdir="${basedir}"
  633. destdir="${classes.dir}/javadoc"
  634. includes="doclet/**"
  635. debug="true"
  636. debuglevel="${config.build.debuglevel}"
  637. nowarn="${config.build.nowarn}"
  638. deprecation="${config.build.deprecation}"
  639. source="${target.java.version}"
  640. target="${target.java.version}"
  641. compiler="modern"
  642. encoding="UTF-8"
  643. includeAntRuntime="true">
  644. <compilerarg line="${config.build.compilerarg}"/>
  645. </javac>
  646. <javadoc sourcepath="${basedir}"
  647. destdir="${classes.dir}/javadoc/api"
  648. packagenames="org.*"
  649. classpath="${classes.dir}/core"
  650. doclet="doclet.GenerateTocXML"
  651. docletpath="${classes.dir}/javadoc"
  652. version="true"
  653. use="true"
  654. author="true"
  655. splitindex="true"
  656. locale="en"
  657. windowtitle="jEdit API"
  658. doctitle="jEdit API"
  659. failonerror="true"
  660. source="${target.java.version}">
  661. <group title="jEdit"
  662. packages="org.gjt.sp*"/>
  663. <group title="BeanShell"
  664. packages="org.gjt.sp.jedit.bsh*"/>
  665. </javadoc>
  666. </contrib:else>
  667. </contrib:if>
  668. </target>
  669. <target name="docs-javadoc"
  670. depends="init,generate-javadoc"
  671. description="generate JavaDoc API docs">
  672. <copy todir="${jar.location}/doc">
  673. <fileset dir="${classes.dir}/javadoc"
  674. includes="api/**"
  675. excludes="api/**/*.html"/>
  676. </copy>
  677. <copy todir="${jar.location}/doc">
  678. <fileset dir="${classes.dir}/javadoc"
  679. includes="api/**/*.html"/>
  680. <filterchain>
  681. <tokenfilter>
  682. <replacestring
  683. from="&lt;TD BGCOLOR=&quot;#FFFFFF&quot; CLASS=&quot;NavBarCell1Rev&quot;&gt;"
  684. to="&lt;TD BGCOLOR=&quot;#00008B&quot; CLASS=&quot;NavBarCell1Rev&quot;&gt;"/>
  685. </tokenfilter>
  686. <tokenfilter>
  687. <filetokenizer/>
  688. <replaceregex
  689. pattern="(&lt;SCRIPT type=&quot;text/javascript&quot;&gt;.*?&lt;/SCRIPT&gt;|onload=&quot;.*?&quot;)"
  690. flags="gs"/>
  691. </tokenfilter>
  692. </filterchain>
  693. </copy>
  694. </target>
  695. <target name="generate-pdf-users-guide"
  696. depends="init,retrieve,setup,unpack-docbook-xsl">
  697. <fail message="Please set the property &quot;paper.type&quot;"
  698. unless="paper.type"/>
  699. <contrib:switch value="${paper.type}">
  700. <contrib:case value="A4">
  701. <property name="manual.filename.paper.type"
  702. value="a4"/>
  703. </contrib:case>
  704. <contrib:case value="USletter">
  705. <property name="manual.filename.paper.type"
  706. value="letter"/>
  707. </contrib:case>
  708. <contrib:default>
  709. <property name="manual.filename.paper.type"
  710. value="${paper.type}"/>
  711. </contrib:default>
  712. </contrib:switch>
  713. <dependset.build>
  714. <srcfileset dir="${lib.dir}/docbook"/>
  715. <srcfileset dir="${lib.dir}/fop"/>
  716. <srcfilelist files="doc/jeditfo.xsl"/>
  717. <srcfileset dir="doc/users-guide"/>
  718. <targetfileset file="${classes.dir}/docs-pdf/${manual.filename.prefix}${manual.filename.paper.type}.fot"/>
  719. <targetfileset file="${jar.location}/${manual.filename.prefix}${manual.filename.paper.type}.pdf"/>
  720. </dependset.build>
  721. <contrib:if>
  722. <available file="${jar.location}/${manual.filename.prefix}${manual.filename.paper.type}.pdf"
  723. type="file"/>
  724. <contrib:then>
  725. <echo message="${paper.type} PDF User's Guide is up-to-date"
  726. level="info"/>
  727. </contrib:then>
  728. <contrib:else>
  729. <xslt.doc style="doc/jeditfo.xsl"
  730. in="doc/users-guide/users-guide.xml"
  731. out="${classes.dir}/docs-pdf/${manual.filename.prefix}${manual.filename.paper.type}.fot">
  732. <param name="paper.type"
  733. expression="${paper.type}"/>
  734. </xslt.doc>
  735. <taskdef name="transform"
  736. classname="org.apache.fop.tools.anttasks.Fop"
  737. uri="antlib:org.apache.fop.tools.anttasks">
  738. <classpath>
  739. <fileset dir="${lib.dir}/fop"
  740. includes="*.jar"/>
  741. </classpath>
  742. </taskdef>
  743. <fop:transform fofile="${classes.dir}/docs-pdf/${manual.filename.prefix}${manual.filename.paper.type}.fot"
  744. outfile="${jar.location}/${manual.filename.prefix}${manual.filename.paper.type}.pdf"
  745. format="application/pdf"
  746. messagelevel="info"/>
  747. </contrib:else>
  748. </contrib:if>
  749. </target>
  750. <target name="docs-pdf-a4"
  751. depends="init"
  752. description="generate PDF users-guide with A4 paper size">
  753. <antcall target="generate-pdf-users-guide">
  754. <param name="paper.type"
  755. value="A4"/>
  756. </antcall>
  757. </target>
  758. <target name="docs-pdf-USletter"
  759. depends="init"
  760. description="generate PDF users-guide with US letter paper size">
  761. <antcall target="generate-pdf-users-guide">
  762. <param name="paper.type"
  763. value="USletter"/>
  764. </antcall>
  765. </target>
  766. <target name="docs-upload"
  767. depends="init,docs-html,docs-javadoc"
  768. description="upload generated documentation to public website (needs rsync)">
  769. <fail message="Please set the property &quot;rsync.executable&quot; in build.properties, you may find example values in build.properties.sample"
  770. unless="config.rsync.executable"/>
  771. <exec executable="${config.rsync.executable}"
  772. dir="${jar.location}/doc/"
  773. failonerror="true">
  774. <arg value="-avz"/>
  775. <arg value="--delete"/>
  776. <arg value="--progress"/>
  777. <arg value="api"/>
  778. <arg value="FAQ"/>
  779. <arg value="users-guide"/>
  780. <arg value="web.sourceforge.net:/home/project-web/jedit/htdocs"/>
  781. </exec>
  782. </target>
  783. <target name="compile-installer"
  784. depends="init">
  785. <mkdir dir="${classes.dir}/installer"/>
  786. <depend srcDir="${basedir}"
  787. destDir="${classes.dir}/installer"
  788. cache="${classes.dir}"/>
  789. <dependset>
  790. <srcfilelist files="build.xml"/>
  791. <targetfileset dir="${classes.dir}/installer"/>
  792. </dependset>
  793. <javac srcdir="${basedir}"
  794. destdir="${classes.dir}/installer"
  795. includes="installer/**"
  796. debug="true"
  797. debuglevel="${config.build.debuglevel}"
  798. nowarn="${config.build.nowarn}"
  799. deprecation="${config.build.deprecation}"
  800. source="${target.java.version}"
  801. target="${target.java.version}"
  802. compiler="modern"
  803. encoding="UTF-8"
  804. includeAntRuntime="false">
  805. <compilerarg line="${config.build.compilerarg}"/>
  806. </javac>
  807. </target>
  808. <target name="dist-java"
  809. depends="init,setup,prepare-dist-files"
  810. description="build the Java-installer">
  811. <tar destfile="${dist.dir}/jedit-macros.tar.bz2"
  812. compression="bzip2">
  813. <tarfileset id="jedit-macros"
  814. dir="${dist.dir}"
  815. includes="macros/**"/>
  816. </tar>
  817. <tar destfile="${dist.dir}/jedit-program.tar.bz2"
  818. compression="bzip2">
  819. <tarfileset id="jedit-program"
  820. dir="${dist.dir}"
  821. includes="doc/**
  822. jars/**
  823. modes/**
  824. properties/**
  825. startup/**
  826. ${jar.filename}"
  827. excludes="doc/api/**
  828. jars/MacOSX.jar"/>
  829. </tar>
  830. <tar destfile="${dist.dir}/jedit-windows.tar.bz2"
  831. compression="bzip2">
  832. <tarfileset id="jedit-windows"
  833. dir="${dist.dir}"
  834. includes="jedit.exe"/>
  835. </tar>
  836. <tar destfile="${dist.dir}/jedit-mac.tar.bz2"
  837. compression="bzip2">
  838. <tarfileset id="jedit-mac"
  839. dir="${dist.dir}"
  840. includes="jars/MacOSX.jar"/>
  841. </tar>
  842. <tar destfile="${dist.dir}/jedit-api.tar.bz2"
  843. compression="bzip2">
  844. <tarfileset id="jedit-api"
  845. dir="${dist.dir}"
  846. includes="doc/api/**"/>
  847. </tar>
  848. <tar destfile="${dist.dir}/jedit-os2.tar.bz2"
  849. compression="bzip2">
  850. <tarfileset id="jedit-os2"
  851. dir="${dist.dir}/classes/package-files/os2"
  852. includes="jedit.cmd"/>
  853. </tar>
  854. <antcall target="compile-installer">
  855. <param name="config.build.debuglevel"
  856. value="lines,source"/>
  857. <param name="classes.dir"
  858. location="${dist.dir}/classes"/>
  859. </antcall>
  860. <antcall target="compile-calculatesize">
  861. <param name="config.build.debuglevel"
  862. value="lines,source"/>
  863. <param name="classes.dir"
  864. location="${dist.dir}/classes"/>
  865. </antcall>
  866. <taskdef name="calculatesize"
  867. classname="de.masters_of_disaster.ant.tasks.calculatesize.CalculateSize"
  868. classpath="${dist.dir}/classes/calculatesize"
  869. uri="antlib:de.masters_of_disaster.ant.tasks"/>
  870. <mod:calculatesize realsizeproperty="jedit-macros.realsize"
  871. disksizeproperty="jedit-macros.disksize">
  872. <fileset refid="jedit-macros"/>
  873. </mod:calculatesize>
  874. <mod:calculatesize realsizeproperty="jedit-program.realsize"
  875. disksizeproperty="jedit-program.disksize">
  876. <fileset refid="jedit-program"/>
  877. </mod:calculatesize>
  878. <mod:calculatesize realsizeproperty="jedit-windows.realsize"
  879. disksizeproperty="jedit-windows.disksize">
  880. <fileset refid="jedit-windows"/>
  881. </mod:calculatesize>
  882. <mod:calculatesize realsizeproperty="jedit-mac.realsize"
  883. disksizeproperty="jedit-mac.disksize">
  884. <fileset refid="jedit-mac"/>
  885. </mod:calculatesize>
  886. <mod:calculatesize realsizeproperty="jedit-api.realsize"
  887. disksizeproperty="jedit-api.disksize">
  888. <fileset refid="jedit-api"/>
  889. </mod:calculatesize>
  890. <mod:calculatesize realsizeproperty="jedit-os2.realsize"
  891. disksizeproperty="jedit-os2.disksize">
  892. <fileset refid="jedit-os2"/>
  893. </mod:calculatesize>
  894. <copy todir="${dist.dir}/classes/installer/installer"
  895. encoding="UTF-8"
  896. overwrite="true">
  897. <fileset file="installer/install.props"/>
  898. <filterset>
  899. <filter token="jedit.version"
  900. value="${jedit.version}"/>
  901. <filter token="jedit-macros.realsize"
  902. value="${jedit-macros.realsize}"/>
  903. <filter token="jedit-macros.disksize"
  904. value="${jedit-macros.disksize}"/>
  905. <filter token="jedit-program.realsize"
  906. value="${jedit-program.realsize}"/>
  907. <filter token="jedit-program.disksize"
  908. value="${jedit-program.disksize}"/>
  909. <filter token="jedit-windows.realsize"
  910. value="${jedit-windows.realsize}"/>
  911. <filter token="jedit-windows.disksize"
  912. value="${jedit-windows.disksize}"/>
  913. <filter token="jedit-mac.realsize"
  914. value="${jedit-mac.realsize}"/>
  915. <filter token="jedit-mac.disksize"
  916. value="${jedit-mac.disksize}"/>
  917. <filter token="jedit-api.realsize"
  918. value="${jedit-api.realsize}"/>
  919. <filter token="jedit-api.disksize"
  920. value="${jedit-api.disksize}"/>
  921. <filter token="jedit-os2.realsize"
  922. value="${jedit-os2.realsize}"/>
  923. <filter token="jedit-os2.disksize"
  924. value="${jedit-os2.disksize}"/>
  925. </filterset>
  926. </copy>
  927. <jar destfile="${dist.dir}/${dist.jar.filename}"
  928. basedir="${dist.dir}/classes/installer"
  929. compress="true"
  930. manifest="installer/install.mf"
  931. duplicate="fail"
  932. index="true">
  933. <fileset dir="${basedir}">
  934. <include name="installer/*.html"/>
  935. </fileset>
  936. <fileset dir="${dist.dir}/classes/package-files/linux">
  937. <include name="jedit.1"/>
  938. </fileset>
  939. <zipfileset dir="${dist.dir}"
  940. includes="jedit-api.tar.bz2
  941. jedit-mac.tar.bz2
  942. jedit-macros.tar.bz2
  943. jedit-os2.tar.bz2
  944. jedit-windows.tar.bz2
  945. jedit-program.tar.bz2"
  946. prefix="installer"/>
  947. </jar>
  948. <property name="wipe.dist.files"
  949. value="true"/>
  950. <contrib:runtarget target="dist-cleanup"/>
  951. </target>
  952. <target name="dist-manuals"
  953. depends="init,setup"
  954. description="build the PDF-manuals">
  955. <antcall target="docs-pdf-a4">
  956. <param name="classes.dir"
  957. location="${dist.dir}/classes"/>
  958. <param name="jar.location"
  959. location="${dist.dir}"/>
  960. </antcall>
  961. <antcall target="docs-pdf-USletter">
  962. <param name="classes.dir"
  963. location="${dist.dir}/classes"/>
  964. <param name="jar.location"
  965. location="${dist.dir}"/>
  966. </antcall>
  967. <property name="wipe.dist.files"
  968. value="true"/>
  969. <contrib:runtarget target="dist-cleanup"/>
  970. </target>
  971. <target name="dist-src"
  972. depends="init"
  973. description="build the src-archive">
  974. <mkdir dir="${dist.dir}"/>
  975. <tar destfile="${dist.dir}/${src.archive.filename}"
  976. compression="bzip2">
  977. <tarfileset dir="${basedir}"
  978. excludes="${config.lib.dir}/**
  979. ${config.build.dir}/**
  980. ${config.dist.dir}/**
  981. **/build.properties"
  982. prefix="jEdit/"/>
  983. </tar>
  984. </target>
  985. <target name="compile-jarbundler"
  986. depends="init,retrieve">
  987. <mkdir dir="${classes.dir}/jarbundler"/>
  988. <depend srcDir="${basedir}"
  989. destDir="${classes.dir}/jarbundler"
  990. cache="${classes.dir}"/>
  991. <dependset>
  992. <srcfilelist files="build.xml"/>
  993. <targetfileset dir="${classes.dir}/jarbundler"/>
  994. </dependset>
  995. <javac srcdir="${basedir}"
  996. destdir="${classes.dir}/jarbundler"
  997. includes="net/**"
  998. debug="true"
  999. debuglevel="${config.build.debuglevel}"
  1000. nowarn="${config.build.nowarn}"
  1001. deprecation="${config.build.deprecation}"
  1002. source="1.4"
  1003. target="1.4"
  1004. compiler="modern"
  1005. encoding="UTF-8"
  1006. includeAntRuntime="true">
  1007. <classpath>
  1008. <fileset dir="${lib.dir}/jarbundler"
  1009. includes="*.jar"/>
  1010. </classpath>
  1011. <compilerarg line="${config.build.compilerarg}"/>
  1012. </javac>
  1013. </target>
  1014. <target name="dist-mac-finish"
  1015. depends="init,retrieve,setup"
  1016. description="finish building the Mac OS X disk image (DMG-file) on Mac OS X">
  1017. <fail message="The disk image (DMG-file) for easy distribution on Mac OS X can only be built on Mac OS X currently">
  1018. <condition>
  1019. <not>
  1020. <os family="mac"/>
  1021. </not>
  1022. </condition>
  1023. </fail>
  1024. <taskdef name="create"
  1025. classname="net.sourceforge.jarbundler.JarBundler"
  1026. classpath="${dist.dir}/classes/jarbundler"
  1027. uri="antlib:net.sourceforge.jarbundler">
  1028. <classpath>
  1029. <fileset dir="${lib.dir}/jarbundler"
  1030. includes="*.jar"/>
  1031. </classpath>
  1032. </taskdef>
  1033. <tstamp>
  1034. <format property="current.year"
  1035. pattern="yyyy"/>
  1036. </tstamp>
  1037. <mkdir dir="${dist.dir}/classes/mac"/>
  1038. <jarbundler:create dir="${dist.dir}/classes/mac"
  1039. name="jEdit"
  1040. mainclass="org.gjt.sp.jedit.jEdit"
  1041. jar="${dist.dir}/${jar.filename}"
  1042. arguments="-background"
  1043. build="${jedit.build.number}"
  1044. bundleid="org.gjt.sp.jedit"
  1045. extraclasspath="/System/Library/Java"
  1046. icon="icons/icon.icns"
  1047. infostring="jEdit ${jedit.version}, Copyright &#169; 1998-${current.year} Contributors"
  1048. jvmversion="${mac.target.java.version}"
  1049. shortname="jEdit"
  1050. signature="JESP"
  1051. stubfile="jedit"
  1052. version="${jedit.version}"
  1053. vmoptions="-Xmx192M">
  1054. <javaproperty name="apple.awt.antialiasing" value="true"/>
  1055. <javaproperty name="apple.awt.textantialiasing" value="true"/>
  1056. <javaproperty name="apple.laf.useScreenMenuBar" value="true"/>
  1057. <!-- Commented due https://sourceforge.net/tracker/?func=detail&atid=100588&aid=2820535&group_id=588 discussion -->
  1058. <!--javaproperty name="apple.awt.graphics.UseQuartz" value="true" />
  1059. <javaproperty name="apple.awt.rendering" value="speed" /-->
  1060. <javafileset dir="${dist.dir}"
  1061. includes="doc/**
  1062. jars/**
  1063. macros/**
  1064. modes/**
  1065. properties/**
  1066. startup/**"/>
  1067. <documenttype name="jEdit TEXT Document"
  1068. extensions="*"
  1069. ostypes="TEXT ****"
  1070. iconfile="icons/file.icns"
  1071. role="Editor"/>
  1072. <service message="openFile"
  1073. menuitem="jEdit/Open Files"
  1074. sendtypes="NSStringPboardType,NSFilenamesPboardType"/>
  1075. <service message="insertSelection"
  1076. menuitem="jEdit/Insert Text"
  1077. sendtypes="NSStringPboardType"/>
  1078. <service message="openSelection"
  1079. menuitem="jEdit/New Buffer with Text"
  1080. sendtypes="NSStringPboardType"/>
  1081. </jarbundler:create>
  1082. <delete file="${dist.dir}/classes/mac/jEdit.app/Contents/MacOS/jedit" />
  1083. <exec executable="ln"
  1084. failonerror="true">
  1085. <arg value="-s" />
  1086. <arg file="/System/Library/Frameworks/JavaVM.framework/Resources/MacOS/JavaApplicationStub" />
  1087. <arg file="${dist.dir}/classes/mac/jEdit.app/Contents/MacOS/jedit" />
  1088. </exec>
  1089. <delete file="${dist.dir}/${mac.disk.image.filename}"
  1090. failonerror="false"/>
  1091. <exec executable="hdiutil"
  1092. failonerror="true">
  1093. <arg value="create"/>
  1094. <arg value="-quiet"/>
  1095. <arg value="-volname"/>
  1096. <arg value="jEdit ${jedit.version}"/>
  1097. <arg value="-srcfolder"/>
  1098. <arg file="${dist.dir}/classes/mac/jEdit.app"/>
  1099. <arg file="${dist.dir}/${mac.disk.image.filename}"/>
  1100. </exec>
  1101. <exec executable="hdiutil"
  1102. failonerror="true">
  1103. <arg value="internet-enable"/>
  1104. <arg value="-quiet"/>
  1105. <arg file="${dist.dir}/${mac.disk.image.filename}"/>
  1106. </exec>
  1107. <property name="wipe.dist.files"
  1108. value="true"/>
  1109. <contrib:runtarget target="dist-cleanup"/>
  1110. </target>
  1111. <target name="dist-mac"
  1112. depends="init,retrieve,setup,prepare-dist-files"
  1113. description="build the Mac OS X disk image (DMG-file)">
  1114. <antcall target="compile-jarbundler">
  1115. <param name="config.build.debuglevel"
  1116. value="lines,source"/>
  1117. <param name="classes.dir"
  1118. location="${dist.dir}/classes"/>
  1119. </antcall>
  1120. <contrib:if>
  1121. <os family="mac"/>
  1122. <contrib:then>
  1123. <antcall target="dist-mac-finish">
  1124. <param name="wipe.dist.files"
  1125. value="false"/>
  1126. </antcall>
  1127. </contrib:then>
  1128. <contrib:else>
  1129. <tar destfile="${dist.dir}/jedit${jedit.version}-dist-mac-finish.tar.bz2"
  1130. basedir="${basedir}"
  1131. includes="build.xml
  1132. ivy.xml
  1133. ivysettings.xml
  1134. icons/file.icns
  1135. icons/icon.icns
  1136. ${config.dist.dir}/${jar.filename}
  1137. ${config.dist.dir}/classes/jarbundler/**
  1138. ${config.dist.dir}/doc/**
  1139. ${config.dist.dir}/jars/**
  1140. ${config.dist.dir}/macros/**
  1141. ${config.dist.dir}/modes/**
  1142. ${config.dist.dir}/properties/**
  1143. ${config.dist.dir}/startup/**"
  1144. compression="bzip2"/>
  1145. </contrib:else>
  1146. </contrib:if>
  1147. <property name="wipe.dist.files"
  1148. value="true"/>
  1149. <contrib:runtarget target="dist-cleanup"/>
  1150. </target>
  1151. <target name="filter-package-files"
  1152. depends="init,setup">
  1153. <fail message="Please set the property &quot;winepath.executable&quot; in build.properties, you may find example values in build.properties.sample">
  1154. <condition>
  1155. <and>
  1156. <istrue value="${config.innosetup.via.wine}"/>
  1157. <not>
  1158. <isset property="config.winepath.executable"/>
  1159. </not>
  1160. </and>
  1161. </condition>
  1162. </fail>
  1163. <contrib:if>
  1164. <and>
  1165. <istrue value="${config.innosetup.via.wine}"/>
  1166. <isset property="config.winepath.executable"/>
  1167. </and>
  1168. <contrib:then>
  1169. <exec executable="${config.winepath.executable}"
  1170. outputproperty="basedir.for.innosetup"
  1171. failonerror="true">
  1172. <arg value="-w"/>
  1173. <arg value="${basedir}"/>
  1174. </exec>
  1175. <exec executable="${config.winepath.executable}"
  1176. outputproperty="dist.dir.for.innosetup"
  1177. failonerror="true">
  1178. <arg value="-w"/>
  1179. <arg value="${dist.dir}"/>
  1180. </exec>
  1181. </contrib:then>
  1182. <contrib:else>
  1183. <property name="basedir.for.innosetup"
  1184. value="${basedir}"/>
  1185. <property name="dist.dir.for.innosetup"
  1186. value="${dist.dir}"/>
  1187. </contrib:else>
  1188. </contrib:if>
  1189. <tstamp>
  1190. <format property="current.year"
  1191. pattern="yyyy"/>
  1192. </tstamp>
  1193. <copy todir="${classes.dir}/package-files"
  1194. encoding="UTF-8"
  1195. overwrite="true">
  1196. <fileset dir="package-files"/>
  1197. <filterset id="package-files-filter">
  1198. <filter token="base.dir"
  1199. value="${basedir}"/>
  1200. <filter token="base.dir.for.innosetup"
  1201. value="${basedir.for.innosetup}"/>
  1202. <filter token="current.year"
  1203. value="${current.year}"/>
  1204. <filter token="dist.dir.for.innosetup"
  1205. value="${dist.dir.for.innosetup}"/>
  1206. <filter token="jar.filename"
  1207. value="${jar.filename}"/>
  1208. <filter token="jedit.build.number"
  1209. value="${jedit.build.number}"/>
  1210. <filter token="jedit.version"
  1211. value="${jedit.version}"/>
  1212. <filter token="slackware.target.java.version"
  1213. value="${slackware.target.java.version}"/>
  1214. <filter token="target.java.version"
  1215. value="${target.java.version}"/>
  1216. <filter token="win.filename"
  1217. value="${win.filename}"/>
  1218. </filterset>
  1219. </copy>
  1220. </target>
  1221. <target name="prepare-dist-files"
  1222. depends="init,retrieve,setup">
  1223. <antcall target="build">
  1224. <param name="config.build.debuglevel"
  1225. value="lines,source"/>
  1226. <param name="classes.dir"
  1227. location="${dist.dir}/classes"/>
  1228. <param name="jar.location"
  1229. location="${dist.dir}"/>
  1230. </antcall>
  1231. <antcall target="docs-html">
  1232. <param name="config.build.debuglevel"
  1233. value="lines,source"/>
  1234. <param name="classes.dir"
  1235. location="${dist.dir}/classes"/>
  1236. <param name="jar.location"
  1237. location="${dist.dir}"/>
  1238. </antcall>
  1239. <antcall target="docs-javadoc">
  1240. <param name="config.build.debuglevel"
  1241. value="lines,source"/>
  1242. <param name="classes.dir"
  1243. location="${dist.dir}/classes"/>
  1244. <param name="jar.location"
  1245. location="${dist.dir}"/>
  1246. </antcall>
  1247. <copy todir="${dist.dir}/jars">
  1248. <fileset dir="${lib.dir}/default-plugins"/>
  1249. </copy>
  1250. <antcall target="filter-package-files">
  1251. <param name="classes.dir"
  1252. location="${dist.dir}/classes"/>
  1253. </antcall>
  1254. <antcall target="build-exe-launcher">
  1255. <param name="classes.dir"
  1256. location="${dist.dir}/classes"/>
  1257. <param name="jar.location"
  1258. location="${dist.dir}"/>
  1259. </antcall>
  1260. <gzip src="${dist.dir}/classes/package-files/linux/jedit.1"
  1261. destfile="${dist.dir}/classes/package-files/linux/jedit.1.gz"/>
  1262. </target>
  1263. <target name="dist-slackware"
  1264. depends="init,setup,prepare-dist-files"
  1265. description="build the Slackware Package">
  1266. <tar destfile="${dist.dir}/jedit-${jedit.version}-noarch-1sao.tgz"
  1267. compression="gzip">
  1268. <tarfileset file="${basedir}"
  1269. username="root"
  1270. group="root"
  1271. fullpath="./"/>
  1272. <tarfileset dir="${dist.dir}/classes/package-files/linux/slackware"
  1273. includes="doinst.sh
  1274. slack-desc
  1275. slack-required"
  1276. username="root"
  1277. group="root"
  1278. prefix="install/"/>
  1279. <tarfileset file="${dist.dir}/classes/package-files/linux/jedit"
  1280. mode="755"
  1281. username="root"
  1282. group="bin"
  1283. fullpath="usr/bin/jedit"/>
  1284. <tarfileset dir="${dist.dir}/doc"
  1285. includes="*.txt"
  1286. username="root"
  1287. group="root"
  1288. prefix="usr/doc/jedit-${jedit.version}/"/>
  1289. <tarfileset file="${dist.dir}/classes/package-files/linux/jedit.1.gz"
  1290. username="root"
  1291. group="root"
  1292. fullpath="usr/man/man1/jedit.1.gz"/>
  1293. <tarfileset file="${dist.dir}/classes/package-files/linux/slackware/jEdit.desktop"
  1294. username="root"
  1295. group="root"
  1296. fullpath="usr/share/applications/jEdit.desktop"/>
  1297. <tarfileset dir="${dist.dir}"
  1298. includes="doc/**
  1299. jars/**
  1300. macros/**
  1301. modes/**
  1302. properties/**
  1303. startup/**
  1304. ${jar.filename}"
  1305. excludes="jars/MacOSX.jar"
  1306. username="root"
  1307. group="root"
  1308. prefix="usr/share/jedit-${jedit.version}/"/>
  1309. <tarfileset dir="icons"
  1310. includes="jedit-file48.png
  1311. jedit-icon48.png"
  1312. username="root"
  1313. group="root"
  1314. prefix="usr/share/pixmaps/"/>
  1315. </tar>
  1316. <property name="wipe.dist.files"
  1317. value="true"/>
  1318. <contrib:runtarget target="dist-cleanup"/>
  1319. </target>
  1320. <target name="compile-ar"
  1321. depends="init">
  1322. <mkdir dir="${classes.dir}/ar"/>
  1323. <depend srcDir="${basedir}"
  1324. destDir="${classes.dir}/ar"
  1325. cache="${classes.dir}"/>
  1326. <dependset>
  1327. <srcfilelist files="build.xml"/>
  1328. <targetfileset dir="${classes.dir}/ar"/>
  1329. </dependset>
  1330. <javac srcdir="${basedir}"
  1331. destdir="${classes.dir}/ar"
  1332. includes="de/masters_of_disaster/ant/tasks/ar/**"
  1333. debug="true"
  1334. debuglevel="${config.build.debuglevel}"
  1335. nowarn="${config.build.nowarn}"
  1336. deprecation="${config.build.deprecation}"
  1337. source="${target.java.version}"
  1338. target="${target.java.version}"
  1339. compiler="modern"
  1340. encoding="UTF-8"
  1341. includeAntRuntime="true">
  1342. <compilerarg line="${config.build.compilerarg}"/>
  1343. </javac>
  1344. </target>
  1345. <target name="compile-deb"
  1346. depends="init">
  1347. <mkdir dir="${classes.dir}/deb"/>
  1348. <depend srcDir="${basedir}"
  1349. destDir="${classes.dir}/deb"
  1350. cache="${classes.dir}"/>
  1351. <dependset>
  1352. <srcfilelist files="build.xml"/>
  1353. <targetfileset dir="${classes.dir}/deb"/>
  1354. </dependset>
  1355. <javac srcdir="${basedir}"
  1356. destdir="${classes.dir}/deb"
  1357. includes="de/masters_of_disaster/ant/tasks/deb/**"
  1358. debug="true"
  1359. debuglevel="${config.build.debuglevel}"
  1360. nowarn="${config.build.nowarn}"
  1361. deprecation="${config.build.deprecation}"
  1362. source="${target.java.version}"
  1363. target="${target.java.version}"
  1364. compiler="modern"
  1365. encoding="UTF-8"
  1366. includeAntRuntime="true">
  1367. <compilerarg line="${config.build.compilerarg}"/>
  1368. </javac>
  1369. </target>
  1370. <target name="compile-calculatesize"
  1371. depends="init">
  1372. <mkdir dir="${classes.dir}/calculatesize"/>
  1373. <depend srcDir="${basedir}"
  1374. destDir="${classes.dir}/calculatesize"
  1375. cache="${classes.dir}"/>
  1376. <dependset>
  1377. <srcfilelist files="build.xml"/>
  1378. <targetfileset dir="${classes.dir}/calculatesize"/>
  1379. </dependset>
  1380. <javac srcdir="${basedir}"
  1381. destdir="${classes.dir}/calculatesize"
  1382. includes="de/masters_of_disaster/ant/tasks/calculatesize/**"
  1383. debug="true"
  1384. debuglevel="${config.build.debuglevel}"
  1385. nowarn="${config.build.nowarn}"
  1386. deprecation="${config.build.deprecation}"
  1387. source="${target.java.version}"
  1388. target="${target.java.version}"
  1389. compiler="modern"
  1390. encoding="UTF-8"
  1391. includeAntRuntime="true">
  1392. <compilerarg line="${config.build.compilerarg}"/>
  1393. </javac>
  1394. </target>
  1395. <target name="dist-deb"
  1396. depends="init,retrieve,setup,prepare-dist-files"
  1397. description="build the DEB Package">
  1398. <antcall target="compile-ar">
  1399. <param name="config.build.debuglevel"
  1400. value="lines,source"/>
  1401. <param name="classes.dir"
  1402. location="${dist.dir}/classes"/>
  1403. </antcall>
  1404. <antcall target="compile-deb">
  1405. <param name="config.build.debuglevel"
  1406. value="lines,source"/>
  1407. <param name="classes.dir"
  1408. location="${dist.dir}/classes"/>
  1409. </antcall>
  1410. <taskdef name="deb"
  1411. classname="de.masters_of_disaster.ant.tasks.deb.Deb"
  1412. classpath="${dist.dir}/classes/deb"
  1413. uri="antlib:de.masters_of_disaster.ant.tasks"/>
  1414. <antcall target="compile-calculatesize">
  1415. <param name="config.build.debuglevel"
  1416. value="lines,source"/>
  1417. <param name="classes.dir"
  1418. location="${dist.dir}/classes"/>
  1419. </antcall>
  1420. <taskdef name="calculatesize"
  1421. classname="de.masters_of_disaster.ant.tasks.calculatesize.CalculateSize"
  1422. classpath="${dist.dir}/classes/calculatesize"
  1423. uri="antlib:de.masters_of_disaster.ant.tasks"/>
  1424. <mod:calculatesize realsizeproperty="deb.installed.size">
  1425. <fileset dir="${dist.dir}/doc"
  1426. includes="*.txt"/>
  1427. <fileset dir="${dist.dir}"
  1428. includes="classes/package-files/linux/jedit
  1429. classes/package-files/linux/deb/jedit
  1430. classes/package-files/linux/deb/jedit.desktop
  1431. classes/package-files/linux/jedit.1.gz
  1432. doc/**
  1433. jars/**
  1434. macros/**
  1435. modes/**
  1436. properties/**
  1437. startup/**
  1438. ${jar.filename}"
  1439. excludes="jars/MacOSX.jar"/>
  1440. </mod:calculatesize>
  1441. <copy todir="${dist.dir}/classes/package-files/linux/deb"
  1442. encoding="UTF-8"
  1443. overwrite="true">
  1444. <fileset file="package-files/linux/deb/control"/>
  1445. <filterset>
  1446. <filter token="jedit.build.number"
  1447. value="${jedit.build.number}"/>
  1448. <filter token="deb.installed.size"
  1449. value="${deb.installed.size}"/>
  1450. </filterset>
  1451. </copy>
  1452. <mod:deb destfile="${dist.dir}/jedit_${jedit.version}_all.deb"
  1453. tempDir="${dist.dir}/classes/deb"
  1454. deleteTempFiles="false"
  1455. includeMd5sums="true">
  1456. <controlfileset file="${dist.dir}/classes/package-files/linux/deb/control"/>
  1457. <controlfileset dir="${dist.dir}/classes/package-files/linux/deb"
  1458. includes="postinst
  1459. postrm"
  1460. mode="755"/>
  1461. <datafileset file="."
  1462. fullpath="usr/"/>
  1463. <datafileset file="."
  1464. fullpath="usr/bin/"/>
  1465. <datafileset file="${dist.dir}/classes/package-files/linux/jedit"
  1466. fullpath="usr/bin/jedit"
  1467. mode="755"/>
  1468. <datafileset file="."
  1469. fullpath="usr/lib/"/>
  1470. <datafileset file="."
  1471. fullpath="usr/lib/menu/"/>
  1472. <datafileset file="${dist.dir}/classes/package-files/linux/deb/jedit"
  1473. fullpath="usr/lib/menu/jedit"/>
  1474. <datafileset file="."
  1475. fullpath="usr/share/"/>
  1476. <datafileset file="."
  1477. fullpath="usr/share/applications/"/>
  1478. <datafileset file="${dist.dir}/classes/package-files/linux/deb/jedit.desktop"
  1479. fullpath="usr/share/applications/jedit.desktop"/>
  1480. <datafileset file="."
  1481. fullpath="usr/share/doc/"/>
  1482. <datafileset file="."
  1483. fullpath="usr/share/doc/jEdit/"/>
  1484. <datafileset dir="${dist.dir}/doc"
  1485. includes="*.txt"
  1486. prefix="usr/share/doc/jEdit/"/>
  1487. <datafileset file="."
  1488. fullpath="usr/share/jEdit/"/>
  1489. <datafileset dir="${dist.dir}"
  1490. includes="doc/**
  1491. macros/**
  1492. modes/**
  1493. properties/**
  1494. startup/**
  1495. ${jar.filename}"
  1496. prefix="usr/share/jEdit/"/>
  1497. <datafileset file="."
  1498. fullpath="usr/share/jEdit/jars/"/>
  1499. <datafileset dir="${dist.dir}/jars"
  1500. excludes="MacOSX.jar"
  1501. prefix="usr/share/jEdit/jars/"/>
  1502. <datafileset file="."
  1503. fullpath="usr/share/man/"/>
  1504. <datafileset file="."
  1505. fullpath="usr/share/man/man1/"/>
  1506. <datafileset file="${dist.dir}/classes/package-files/linux/jedit.1.gz"
  1507. fullpath="usr/share/man/man1/jedit.1.gz"/>
  1508. </mod:deb>
  1509. <contrib:if>
  1510. <istrue value="${jedit.version.final}"/>
  1511. <contrib:then>
  1512. <length property="deb.size"
  1513. file="${dist.dir}/jedit_${jedit.version}_all.deb"/>
  1514. <checksum file="${dist.dir}/jedit_${jedit.version}_all.deb"
  1515. algorithm="MD5"
  1516. property="deb.md5"/>
  1517. <checksum file="${dist.dir}/jedit_${jedit.version}_all.deb"
  1518. algorithm="SHA1"
  1519. property="deb.sha1"/>
  1520. <checksum file="${dist.dir}/jedit_${jedit.version}_all.deb"
  1521. algorithm="SHA-256"
  1522. property="deb.sha256"/>
  1523. <copy todir="${dist.dir}"
  1524. encoding="UTF-8"
  1525. overwrite="true">
  1526. <fileset file="package-files/linux/deb/Packages"/>
  1527. <filterset>
  1528. <filter token="jedit.build.number"
  1529. value="${jedit.build.number}"/>
  1530. <filter token="deb.installed.size"
  1531. value="${deb.installed.size}"/>
  1532. <filter token="deb.repository.file"
  1533. value="./jedit/${jedit.version}/jedit_${jedit.version}_all.deb"/>
  1534. <filter token="deb.size"
  1535. value="${deb.size}"/>
  1536. <filter token="deb.md5"
  1537. value="${deb.md5}"/>
  1538. <filter token="deb.sha1"
  1539. value="${deb.sha1}"/>
  1540. <filter token="deb.sha256"
  1541. value="${deb.sha256}"/>
  1542. </filterset>
  1543. </copy>
  1544. <gzip src="${dist.dir}/Packages"
  1545. destfile="${dist.dir}/Packages.gz"/>
  1546. <bzip2 src="${dist.dir}/Packages"
  1547. destfile="${dist.dir}/Packages.bz2"/>
  1548. <length property="packages.size"
  1549. file="${dist.dir}/Packages"/>
  1550. <checksum file="${dist.dir}/Packages"
  1551. algorithm="MD5"
  1552. property="packages.md5"/>
  1553. <checksum file="${dist.dir}/Packages"
  1554. algorithm="SHA1"
  1555. property="packages.sha1"/>
  1556. <checksum file="${dist.dir}/Packages"
  1557. algorithm="SHA-256"
  1558. property="packages.sha256"/>
  1559. <length property="packages.gz.size"
  1560. file="${dist.dir}/Packages.gz"/>
  1561. <checksum file="${dist.dir}/Packages.gz"
  1562. algorithm="MD5"
  1563. property="packages.gz.md5"/>
  1564. <checksum file="${dist.dir}/Packages.gz"
  1565. algorithm="SHA1"
  1566. property="packages.gz.sha1"/>
  1567. <checksum file="${dist.dir}/Packages.gz"
  1568. algorithm="SHA-256"
  1569. property="packages.gz.sha256"/>
  1570. <length property="packages.bz2.size"
  1571. file="${dist.dir}/Packages.bz2"/>
  1572. <checksum file="${dist.dir}/Packages.bz2"
  1573. algorithm="MD5"
  1574. property="packages.bz2.md5"/>
  1575. <checksum file="${dist.dir}/Packages.bz2"
  1576. algorithm="SHA1"
  1577. property="packages.bz2.sha1"/>
  1578. <checksum file="${dist.dir}/Packages.bz2"
  1579. algorithm="SHA-256"
  1580. property="packages.bz2.sha256"/>
  1581. <script language="beanshell">
  1582. <classpath>
  1583. <fileset dir="${lib.dir}/scripting"
  1584. includes="*.jar"/>
  1585. </classpath>
  1586. new Formatter(new File(project.getProperty("dist.dir"), "Release"), "UTF-8", Locale.ENGLISH)
  1587. .format("Date: %1$ta, %1$td %1$tb %1$tY %1$tT %1$tZ\n", new Object[] {
  1588. Calendar.getInstance(TimeZone.getTimeZone("UTC")) })
  1589. .format("MD5Sum:\n", new Object[0])
  1590. .format(" %s %16s %s\n", new Object[] {
  1591. project.getProperty("packages.md5"),
  1592. project.getProperty("packages.size"),
  1593. "Packages" })
  1594. .format(" %s %16s %s\n", new Object[] {
  1595. project.getProperty("packages.bz2.md5"),
  1596. project.getProperty("packages.bz2.size"),
  1597. "Packages.bz2" })
  1598. .format(" %s %16s %s\n", new Object[] {
  1599. project.getProperty("packages.gz.md5"),
  1600. project.getProperty("packages.gz.size"),
  1601. "Packages.gz" })
  1602. .format("SHA1:\n", new Object[0])
  1603. .format(" %s %16s %s\n", new Object[] {
  1604. project.getProperty("packages.sha1"),
  1605. project.getProperty("packages.size"),
  1606. "Packages" })
  1607. .format(" %s %16s %s\n", new Object[] {
  1608. project.getProperty("packages.bz2.sha1"),
  1609. project.getProperty("packages.bz2.size"),
  1610. "Packages.bz2" })
  1611. .format(" %s %16s %s\n", new Object[] {
  1612. project.getProperty("packages.gz.sha1"),
  1613. project.getProperty("packages.gz.size"),
  1614. "Packages.gz" })
  1615. .format("SHA256:\n", new Object[0])
  1616. .format(" %s %16s %s\n", new Object[] {
  1617. project.getProperty("packages.sha256"),
  1618. project.getProperty("packages.size"),
  1619. "Packages" })
  1620. .format(" %s %16s %s\n", new Object[] {
  1621. project.getProperty("packages.bz2.sha256"),
  1622. project.getProperty("packages.bz2.size"),
  1623. "Packages.bz2" })
  1624. .format(" %s %16s %s\n", new Object[] {
  1625. project.getProperty("packages.gz.sha256"),
  1626. project.getProperty("packages.gz.size"),
  1627. "Packages.gz" })
  1628. .close()
  1629. </script>
  1630. <contrib:runtarget target="dist-sign-deb-Release"/>
  1631. </contrib:then>
  1632. </contrib:if>
  1633. <property name="wipe.dist.files"
  1634. value="true"/>
  1635. <contrib:runtarget target="dist-cleanup"/>
  1636. </target>
  1637. <target name="dist-sign-deb-Release"
  1638. depends="init,retrieve,setup"
  1639. description="sign the DEB Release file">
  1640. <contrib:if>
  1641. <not>
  1642. <or>
  1643. <isset property="config.gpg.secring"/>
  1644. <istrue value="${config.gpg.ignore.missing.secring}"/>
  1645. </or>
  1646. </not>
  1647. <contrib:then>
  1648. <input>
  1649. WARN: The property "gpg.secring" is not set in build.properties, you may find example values in build.properties.sample.
  1650. WARN: The debian repository metadata will not be signed (Release.gpg) unless you define that property.
  1651. WARN: Set the property "gpg.ignore.missing.secring" to "true" in build.properties to suppress this message.
  1652. Press Return key to continue...
  1653. </input>
  1654. </contrib:then>
  1655. </contrib:if>
  1656. <contrib:if>
  1657. <isset property="config.gpg.secring"/>
  1658. <contrib:then>
  1659. <input addproperty="config.gpg.secring.password">
  1660. <handler type="secure"/>
  1661. Please enter the secring password and press Return key.
  1662. You can also set the property "gpg.secring.password" in build.properties instead.
  1663. Password: </input>
  1664. </contrib:then>
  1665. </contrib:if>
  1666. <script language="beanshell">
  1667. <classpath>
  1668. <fileset dir="${lib.dir}/scripting"
  1669. includes="*.jar"/>
  1670. </classpath>
  1671. import java.security.Security;
  1672. import org.bouncycastle.bcpg.ArmoredOutputStream;
  1673. import org.bouncycastle.bcpg.BCPGOutputStream;
  1674. import org.bouncycastle.jce.provider.BouncyCastleProvider;
  1675. import org.bouncycastle.openpgp.PGPUtil;
  1676. import org.bouncycastle.openpgp.PGPSecretKeyRingCollection;
  1677. import org.bouncycastle.openpgp.PGPSignatureGenerator;
  1678. import org.bouncycastle.openpgp.PGPSignature;
  1679. if (project.getProperty("config.gpg.secring") == null)
  1680. {
  1681. return;
  1682. }
  1683. Security.addProvider(new BouncyCastleProvider());
  1684. fIn = null;
  1685. out = null;
  1686. keyIn = null;
  1687. try
  1688. {
  1689. keyIn = new BufferedInputStream(new FileInputStream(project.getProperty("config.gpg.secring")));
  1690. pgpSec = new PGPSecretKeyRingCollection(PGPUtil.getDecoderStream(keyIn));
  1691. if (pgpSec == null)
  1692. {
  1693. System.out.println("Secring could not be decoded");
  1694. return;
  1695. }
  1696. outer: for (keyRing : pgpSec.getKeyRings())
  1697. {
  1698. for (key : keyRing.getSecretKeys())
  1699. {
  1700. if (key.isSigningKey())
  1701. {
  1702. pgpSec = key;
  1703. break outer;
  1704. }
  1705. }
  1706. }
  1707. if (pgpSec == null)
  1708. {
  1709. System.out.println("No signing key found");
  1710. return;
  1711. }
  1712. pgpPrivKey = pgpSec.extractPrivateKey(project.getProperty("config.gpg.secring.password").toCharArray(), "BC");
  1713. sGen = new PGPSignatureGenerator(pgpSec.getPublicKey().getAlgorithm(), PGPUtil.SHA1, "BC");
  1714. sGen.initSign(PGPSignature.BINARY_DOCUMENT, pgpPrivKey);
  1715. fIn = new BufferedInputStream(new FileInputStream(new File (project.getProperty("dist.dir"), "Release")));
  1716. while ((ch = fIn.read()) >= 0)
  1717. {
  1718. sGen.update((byte)ch);
  1719. }
  1720. out = new BCPGOutputStream(new ArmoredOutputStream(new BufferedOutputStream(new FileOutputStream(new File (project.getProperty("dist.dir"), "Release.gpg")))));
  1721. sGen.generate().encode(out);
  1722. } finally {
  1723. if (fIn != null)
  1724. {
  1725. fIn.close();
  1726. }
  1727. if (out != null)
  1728. {
  1729. out.close();
  1730. }
  1731. if (keyIn != null)
  1732. {
  1733. keyIn.close();
  1734. }
  1735. }
  1736. </script>
  1737. </target>
  1738. <target name="dist-win-finish"
  1739. depends="init,setup"
  1740. description="finish building the Windows installer (EXE-file) on Windows or via wine">
  1741. <fail message="The Windows installer (EXE-file) can only be built on Windows or via wine currently">
  1742. <condition>
  1743. <not>
  1744. <or>
  1745. <os family="windows"/>
  1746. <istrue value="${config.innosetup.via.wine}"/>
  1747. </or>
  1748. </not>
  1749. </condition>
  1750. </fail>
  1751. <fail message="Please set the property &quot;innosetup.compiler.executable&quot; in build.properties, you may find example values in build.properties.sample"
  1752. unless="config.innosetup.compiler.executable"/>
  1753. <fail message="Please set the property &quot;wine.executable&quot; in build.properties, you may find example values in build.properties.sample">
  1754. <condition>
  1755. <and>
  1756. <istrue value="${config.innosetup.via.wine}"/>
  1757. <not>
  1758. <isset property="config.wine.executable"/>
  1759. </not>
  1760. </and>
  1761. </condition>
  1762. </fail>
  1763. <antcall target="filter-package-files">
  1764. <param name="classes.dir"
  1765. location="${dist.dir}/classes"/>
  1766. </antcall>
  1767. <contrib:if>
  1768. <istrue value="${config.innosetup.via.wine}"/>
  1769. <contrib:then>
  1770. <exec executable="${config.wine.executable}"
  1771. dir="${dist.dir}"
  1772. failonerror="true">
  1773. <arg value="${config.innosetup.compiler.executable}"/>
  1774. <arg value="classes/package-files/windows/win32installer.iss"/>
  1775. </exec>
  1776. </contrib:then>
  1777. <contrib:else>
  1778. <exec executable="${config.innosetup.compiler.executable}"
  1779. dir="${dist.dir}"
  1780. failonerror="true">
  1781. <arg value="classes/package-files/windows/win32installer.iss"/>
  1782. </exec>
  1783. </contrib:else>
  1784. </contrib:if>
  1785. <property name="wipe.dist.files"
  1786. value="true"/>
  1787. <contrib:runtarget target="dist-cleanup"/>
  1788. </target>
  1789. <target name="dist-win"
  1790. depends="init,setup,prepare-dist-files"
  1791. description="build the Windows installer (EXE-file)">
  1792. <contrib:if>
  1793. <or>
  1794. <os family="windows"/>
  1795. <istrue value="${config.innosetup.via.wine}"/>
  1796. </or>
  1797. <contrib:then>
  1798. <antcall target="dist-win-finish">
  1799. <param name="wipe.dist.files"
  1800. value="false"/>
  1801. </antcall>
  1802. </contrib:then>
  1803. <contrib:else>
  1804. <tar destfile="${dist.dir}/jedit${jedit.version}-dist-win-finish.tar.bz2"
  1805. basedir="${basedir}"
  1806. includes="build.properties.sample
  1807. build.xml
  1808. ivy.xml
  1809. ivysettings.xml
  1810. icons/jedit.ico
  1811. icons/WindowsInstallerSmallImage.bmp
  1812. icons/WindowsInstallerImage.bmp
  1813. package-files/windows/win32installer.iss
  1814. ${config.dist.dir}/jedit.exe
  1815. ${config.dist.dir}/${jar.filename}
  1816. ${config.dist.dir}/classes/package-files/windows/**
  1817. ${config.dist.dir}/doc/**
  1818. ${config.dist.dir}/jars/**
  1819. ${config.dist.dir}/macros/**
  1820. ${config.dist.dir}/modes/**
  1821. ${config.dist.dir}/properties/**
  1822. ${config.dist.dir}/startup/**"
  1823. excludes="${config.dist.dir}/jars/MacOSX.jar"
  1824. compression="bzip2"/>
  1825. </contrib:else>
  1826. </contrib:if>
  1827. <property name="wipe.dist.files"
  1828. value="true"/>
  1829. <contrib:runtarget target="dist-cleanup"/>
  1830. </target>
  1831. <target name="dist"
  1832. depends="init,setup"
  1833. description="build all distribution files">
  1834. <property name="wipe.dist.files"
  1835. value="false"/>
  1836. <contrib:runtarget target="dist-java"/>
  1837. <contrib:runtarget target="dist-manuals"/>
  1838. <contrib:runtarget target="dist-src"/>
  1839. <contrib:runtarget target="dist-slackware"/>
  1840. <contrib:runtarget target="dist-deb"/>
  1841. <contrib:runtarget target="dist-mac"/>
  1842. <contrib:runtarget target="dist-win"/>
  1843. <antcall target="dist-cleanup">
  1844. <param name="wipe.dist.files"
  1845. value="true"/>
  1846. </antcall>
  1847. </target>
  1848. <target name="dist-cleanup"
  1849. depends="init,setup">
  1850. <contrib:if>
  1851. <istrue value="${wipe.dist.