PageRenderTime 64ms CodeModel.GetById 18ms RepoModel.GetById 0ms app.codeStats 0ms

/jEdit/tags/jedit-4-3-pre5/build.xml

#
XML | 1118 lines | 1081 code | 37 blank | 0 comment | 0 complexity | d252da7b6ea850f85dbefd5acfc893a7 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. <description>
  5. This is an ant build.xml file for building jEdit - Programmer's Text Editor.
  6. </description>
  7. <property file="build.properties"
  8. prefix="config" />
  9. <property name="src.dir"
  10. location="." />
  11. <property name="build.dir"
  12. location="${config.build.dir}" />
  13. <property name="dist.dir"
  14. location="${config.dist.dir}" />
  15. <property name="classes.dir"
  16. location="${build.dir}/classes" />
  17. <property name="jar.location"
  18. location="${build.dir}" />
  19. <property name="build.debuglevel"
  20. value="lines,vars,source" />
  21. <target name="init"
  22. unless="init.done">
  23. <echo message="Buildfile for ${ant.project.name} (${ant.file})"
  24. level="info" />
  25. <property name="init.done"
  26. value="true" />
  27. </target>
  28. <target name="clean"
  29. depends="init"
  30. description="clean up build.dir and dist.dir">
  31. <delete includeemptydirs="true"
  32. failonerror="false">
  33. <fileset dir="${build.dir}/classes" />
  34. <fileset dir="${dist.dir}/classes" />
  35. </delete>
  36. </target>
  37. <target name="clean-all"
  38. depends="init"
  39. description="clean up build.dir and dist.dir completely">
  40. <delete includeemptydirs="true"
  41. failonerror="false">
  42. <fileset dir="${build.dir}" />
  43. <fileset dir="${dist.dir}" />
  44. </delete>
  45. </target>
  46. <target name="compile"
  47. depends="init">
  48. <mkdir dir="${classes.dir}/core" />
  49. <depend srcDir="${src.dir}"
  50. destDir="${classes.dir}/core"
  51. cache="${classes.dir}" />
  52. <javac srcdir="${src.dir}"
  53. destdir="${classes.dir}/core"
  54. debug="true"
  55. debuglevel="${build.debuglevel}"
  56. deprecation="true"
  57. source="${config.target.java.version}"
  58. target="${config.target.java.version}"
  59. compiler="modern">
  60. <include name="bsh/**" />
  61. <include name="org/**" />
  62. <include name="com/**" />
  63. <include name="gnu/**" />
  64. </javac>
  65. </target>
  66. <target name="build"
  67. depends="init,compile"
  68. description="build the jEdit JAR-file with full debug-information">
  69. <mkdir dir="${jar.location}" />
  70. <jar destfile="${jar.location}/${config.jar.filename}"
  71. basedir="${classes.dir}/core"
  72. compress="false"
  73. manifest="org/gjt/sp/jedit/jedit.manifest"
  74. duplicate="fail"
  75. index="true">
  76. <fileset dir=".">
  77. <include name="bsh/commands/*.bsh" />
  78. <include name="org/gjt/sp/jedit/**/*.dtd" />
  79. <include name="org/gjt/sp/jedit/default.abbrevs" />
  80. <include name="org/gjt/sp/jedit/*.props" />
  81. <include name="org/gjt/sp/jedit/*.xml" />
  82. <include name="org/gjt/sp/jedit/icons/*.gif" />
  83. <include name="org/gjt/sp/jedit/icons/*.jpg" />
  84. <include name="org/gjt/sp/jedit/icons/*.png" />
  85. <include name="gnu/regexp/MessagesBundle.properties" />
  86. </fileset>
  87. </jar>
  88. <copy todir="${jar.location}">
  89. <fileset dir=".">
  90. <include name="macros/**" />
  91. <include name="modes/**" />
  92. <include name="properties/**" />
  93. <include name="startup/**" />
  94. </fileset>
  95. </copy>
  96. </target>
  97. <target name="run"
  98. depends="init,build"
  99. description="run jEdit">
  100. <java jar="${jar.location}/${config.jar.filename}"
  101. fork="true"
  102. spawn="true" />
  103. </target>
  104. <target name="generate-docbook-wrapper"
  105. if="format"
  106. depends="init">
  107. <pathconvert property="absolute-stylesheet"
  108. dirsep="/">
  109. <path location="${config.docbook.xsl}/${stylesheet}" />
  110. </pathconvert>
  111. <echo message="&lt;?xml version=&quot;1.0&quot;?&gt;${line.separator}"
  112. file="doc/docbook-wrapper-${format}.xsl"
  113. level="error" />
  114. <echo message="&lt;xsl:stylesheet xmlns:xsl=&quot;http://www.w3.org/1999/XSL/Transform&quot;${line.separator}"
  115. file="doc/docbook-wrapper-${format}.xsl"
  116. append="true"
  117. level="error" />
  118. <echo message=" version=&quot;1.0&quot;&gt;${line.separator}"
  119. file="doc/docbook-wrapper-${format}.xsl"
  120. append="true"
  121. level="error" />
  122. <echo message=" &lt;xsl:import href=&quot;file:///${absolute-stylesheet}&quot; /&gt;${line.separator}"
  123. file="doc/docbook-wrapper-${format}.xsl"
  124. append="true"
  125. level="error" />
  126. <echo message="&lt;/xsl:stylesheet&gt;${line.separator}"
  127. file="doc/docbook-wrapper-${format}.xsl"
  128. append="true"
  129. level="error" />
  130. </target>
  131. <target name="generate-doc-faq"
  132. depends="init"
  133. if="doc.output.location"
  134. unless="faq.is.up.to.date">
  135. <mkdir dir="${doc.output.location}/FAQ" />
  136. <exec executable="${config.xsltproc.executable}"
  137. dir="doc"
  138. failonerror="true">
  139. <arg value="--output" />
  140. <arg value="../${doc.output.location}/FAQ/" />
  141. <arg value="--catalogs" />
  142. <arg value="jedithtml.xsl" />
  143. <arg value="FAQ/faq.xml" />
  144. <env key="SGML_CATALOG_FILES"
  145. file="${config.docbook.catalog}" />
  146. </exec>
  147. </target>
  148. <target name="generate-doc-news"
  149. depends="init"
  150. if="doc.output.location"
  151. unless="news.is.up.to.date">
  152. <mkdir dir="${doc.output.location}/news42" />
  153. <exec executable="${config.xsltproc.executable}"
  154. dir="doc"
  155. failonerror="true">
  156. <arg value="--output" />
  157. <arg value="../${doc.output.location}/news42/" />
  158. <arg value="--catalogs" />
  159. <arg value="jedithtml.xsl" />
  160. <arg value="news42/news.xml" />
  161. <env key="SGML_CATALOG_FILES"
  162. file="${config.docbook.catalog}" />
  163. </exec>
  164. </target>
  165. <target name="generate-doc-users-guide"
  166. depends="init"
  167. if="doc.output.location"
  168. unless="users-guide.is.up.to.date">
  169. <mkdir dir="${doc.output.location}/users-guide" />
  170. <exec executable="${config.xsltproc.executable}"
  171. dir="doc"
  172. failonerror="true">
  173. <arg value="--output" />
  174. <arg value="../${doc.output.location}/users-guide/" />
  175. <arg value="--catalogs" />
  176. <arg value="jedithtml.xsl" />
  177. <arg value="users-guide/users-guide.xml" />
  178. <env key="SGML_CATALOG_FILES"
  179. file="${config.docbook.catalog}" />
  180. </exec>
  181. </target>
  182. <target name="docs-html"
  183. depends="init"
  184. description="generate HTML docs (needs xsltproc)">
  185. <antcall target="generate-docbook-wrapper">
  186. <param name="format"
  187. value="html" />
  188. <param name="stylesheet"
  189. value="html/chunk.xsl" />
  190. </antcall>
  191. <pathconvert property="doc.output.location"
  192. dirsep="/">
  193. <path location="${jar.location}/doc" />
  194. <globmapper from="${basedir}/*"
  195. to="*"
  196. handledirsep="true" />
  197. </pathconvert>
  198. <dependset>
  199. <srcfileset dir="doc/FAQ" />
  200. <targetfileset dir="${doc.output.location}/FAQ" />
  201. </dependset>
  202. <available property="faq.is.up.to.date"
  203. file="${doc.output.location}/FAQ/toc.xml"
  204. type="file" />
  205. <antcall target="generate-doc-faq" />
  206. <dependset>
  207. <srcfileset dir="doc/news42" />
  208. <targetfileset dir="${doc.output.location}/news42" />
  209. </dependset>
  210. <available property="news.is.up.to.date"
  211. file="${doc.output.location}/news42/toc.xml"
  212. type="file" />
  213. <antcall target="generate-doc-news" />
  214. <dependset>
  215. <srcfileset dir="doc/users-guide" />
  216. <targetfileset dir="${doc.output.location}/users-guide" />
  217. </dependset>
  218. <available property="users-guide.is.up.to.date"
  219. file="${doc.output.location}/users-guide/toc.xml"
  220. type="file" />
  221. <antcall target="generate-doc-users-guide" />
  222. <delete file="doc/docbook-wrapper-html.xsl"
  223. failonerror="false" />
  224. <copy todir="${doc.output.location}">
  225. <fileset dir="doc">
  226. <include name="*.txt" />
  227. <include name="*.html" />
  228. <include name="*.png" />
  229. <include name="tips/**" />
  230. </fileset>
  231. </copy>
  232. </target>
  233. <target name="generate-javadoc"
  234. depends="init"
  235. unless="javadoc.is.up.to.date">
  236. <mkdir dir="${classes.dir}/javadoc" />
  237. <javac srcdir="${src.dir}"
  238. destdir="${classes.dir}/javadoc"
  239. includes="doclet/**"
  240. debug="true"
  241. debuglevel="${build.debuglevel}"
  242. deprecation="true"
  243. source="${config.target.java.version}"
  244. target="${config.target.java.version}"
  245. compiler="modern" />
  246. <javadoc sourcepath="${src.dir}"
  247. destdir="${classes.dir}/javadoc/api"
  248. packagenames="bsh.*,org.*,com.*,gnu.*"
  249. classpath="${classes.dir}/core"
  250. doclet="doclet.GenerateTocXML"
  251. docletpath="${classes.dir}/javadoc"
  252. version="true"
  253. use="true"
  254. author="true"
  255. splitindex="true"
  256. windowtitle="jEdit API"
  257. doctitle="jEdit API"
  258. failonerror="true"
  259. source="${config.target.java.version}">
  260. <group title="jEdit"
  261. packages="org.gjt.sp*" />
  262. <group title="BeanShell"
  263. packages="bsh*:org.objectweb.asm*" />
  264. <group title="Microstar XML Parser"
  265. packages="com.microstar.xml*" />
  266. <group title="GNU Regular Expression Implementation"
  267. packages="gnu.regexp*" />
  268. </javadoc>
  269. </target>
  270. <target name="docs-javadoc"
  271. depends="init"
  272. description="generate JavaDoc API docs">
  273. <dependset>
  274. <srcfileset dir="${src.dir}">
  275. <include name="doclet/**/*.java" />
  276. <include name="bsh/**/*.java" />
  277. <include name="bsh/**/package.html" />
  278. <include name="org/**/*.java" />
  279. <include name="org/**/package.html" />
  280. <include name="com/**/*.java" />
  281. <include name="com/**/package.html" />
  282. <include name="gnu/**/*.java" />
  283. <include name="gnu/**/package.html" />
  284. </srcfileset>
  285. <targetfileset dir="${classes.dir}/javadoc" />
  286. </dependset>
  287. <available property="javadoc.is.up.to.date"
  288. file="${classes.dir}/javadoc/api/toc.xml"
  289. type="file" />
  290. <antcall target="generate-javadoc" />
  291. <copy todir="${jar.location}/doc">
  292. <fileset dir="${classes.dir}/javadoc"
  293. includes="api/**"
  294. excludes="api/**/*.html" />
  295. </copy>
  296. <copy todir="${jar.location}/doc">
  297. <fileset dir="${classes.dir}/javadoc"
  298. includes="api/**/*.html" />
  299. <filterchain>
  300. <tokenfilter>
  301. <replacestring from="&lt;TD BGCOLOR=&quot;#FFFFFF&quot; CLASS=&quot;NavBarCell1Rev&quot;&gt;"
  302. to="&lt;TD BGCOLOR=&quot;#00008B&quot; CLASS=&quot;NavBarCell1Rev&quot;&gt;" />
  303. </tokenfilter>
  304. <tokenfilter>
  305. <filetokenizer />
  306. <replaceregex pattern="(&lt;SCRIPT type=&quot;text/javascript&quot;&gt;.*?&lt;/SCRIPT&gt;|onload=&quot;.*?&quot;)"
  307. flags="gs" />
  308. </tokenfilter>
  309. </filterchain>
  310. </copy>
  311. </target>
  312. <target name="generate-pdf-users-guide"
  313. depends="init"
  314. if="paper.type"
  315. unless="pdf-users-guide.is.up.to.date">
  316. <antcall target="generate-docbook-wrapper">
  317. <param name="format"
  318. value="fo" />
  319. <param name="stylesheet"
  320. value="fo/docbook.xsl" />
  321. </antcall>
  322. <pathconvert property="docs-pdf.classes.dir"
  323. dirsep="/">
  324. <path location="${classes.dir}/docs-pdf" />
  325. <globmapper from="${basedir}/*"
  326. to="*"
  327. handledirsep="true" />
  328. </pathconvert>
  329. <mkdir dir="${docs-pdf.classes.dir}" />
  330. <exec executable="${config.xsltproc.executable}"
  331. dir="doc"
  332. failonerror="true">
  333. <arg value="--stringparam" />
  334. <arg value="paper.type" />
  335. <arg value="&quot;${paper.type}&quot;" />
  336. <arg value="--output" />
  337. <arg value="../${docs-pdf.classes.dir}/${config.manual.filename.prefix}${paper.type}.fot" />
  338. <arg value="--novalid" />
  339. <arg value="jeditfo.xsl" />
  340. <arg value="users-guide/users-guide.xml" />
  341. </exec>
  342. <delete file="doc/docbook-wrapper-fo.xsl"
  343. failonerror="false" />
  344. <taskdef name="fop"
  345. classname="org.apache.fop.tools.anttasks.Fop"
  346. classpath="${config.fop.dir}/build/fop.jar">
  347. <classpath>
  348. <fileset dir="${config.fop.dir}/lib"
  349. includes="*.jar" />
  350. </classpath>
  351. </taskdef>
  352. <fop fofile="${docs-pdf.classes.dir}/${config.manual.filename.prefix}${paper.type}.fot"
  353. outfile="${jar.location}/${config.manual.filename.prefix}${paper.type}.pdf"
  354. format="application/pdf"
  355. messagelevel="info" />
  356. </target>
  357. <target name="docs-pdf"
  358. depends="init"
  359. if="paper.type">
  360. <dependset>
  361. <srcfileset dir="doc/users-guide" />
  362. <targetfilelist dir="${classes.dir}/docs-pdf"
  363. files="${config.manual.filename.prefix}${paper.type}.fot" />
  364. <targetfilelist dir="${jar.location}"
  365. files="${config.manual.filename.prefix}${paper.type}.pdf" />
  366. </dependset>
  367. <available property="pdf-users-guide.is.up.to.date"
  368. file="${jar.location}/${config.manual.filename.prefix}${paper.type}.pdf"
  369. type="file" />
  370. <antcall target="generate-pdf-users-guide" />
  371. </target>
  372. <target name="docs-pdf-a4"
  373. depends="init"
  374. description="generate PDF users-guide with A4 paper size (needs xsltproc and fop)">
  375. <antcall target="docs-pdf">
  376. <param name="paper.type"
  377. value="A4" />
  378. </antcall>
  379. </target>
  380. <target name="docs-pdf-USletter"
  381. depends="init"
  382. description="generate PDF users-guide with US letter paper size (needs xsltproc and fop)">
  383. <antcall target="docs-pdf">
  384. <param name="paper.type"
  385. value="USletter" />
  386. </antcall>
  387. </target>
  388. <target name="compile-installer"
  389. depends="init">
  390. <mkdir dir="${classes.dir}/installer" />
  391. <depend srcDir="${src.dir}"
  392. destDir="${classes.dir}/installer"
  393. cache="${classes.dir}" />
  394. <javac srcdir="${src.dir}"
  395. destdir="${classes.dir}/installer"
  396. includes="installer/**"
  397. debug="true"
  398. debuglevel="${build.debuglevel}"
  399. deprecation="true"
  400. source="${config.target.java.version}"
  401. target="${config.target.java.version}"
  402. compiler="modern" />
  403. </target>
  404. <target name="compile-default-plugins-for-dist"
  405. depends="init">
  406. <ant dir="jars/LatestVersion"
  407. target="dist"
  408. inheritAll="false">
  409. <property name="jedit.install.dir"
  410. value="${dist.dir}" />
  411. </ant>
  412. <ant dir="jars/LatestVersion"
  413. target="clean"
  414. inheritAll="false">
  415. <property name="jedit.install.dir"
  416. value="${dist.dir}" />
  417. </ant>
  418. <ant dir="jars/QuickNotepad"
  419. target="dist"
  420. inheritAll="false">
  421. <property name="jedit.install.dir"
  422. value="${dist.dir}" />
  423. </ant>
  424. <ant dir="jars/QuickNotepad"
  425. target="clean"
  426. inheritAll="false">
  427. <property name="jedit.install.dir"
  428. value="${dist.dir}" />
  429. </ant>
  430. <ant dir="jars/MacOS"
  431. target="dist"
  432. inheritAll="false">
  433. <property name="jedit.install.dir"
  434. value="${dist.dir}" />
  435. </ant>
  436. <ant dir="jars/MacOS"
  437. target="clean"
  438. inheritAll="false">
  439. <property name="jedit.install.dir"
  440. value="${dist.dir}" />
  441. </ant>
  442. </target>
  443. <target name="dist-java"
  444. depends="init"
  445. description="build the Java-installer">
  446. <antcall target="prepare-dist-files" />
  447. <tar destfile="${dist.dir}/jedit-macros.tar.bz2"
  448. basedir="${dist.dir}"
  449. includes="macros/**"
  450. compression="bzip2" />
  451. <tar destfile="${dist.dir}/jedit-program.tar.bz2"
  452. basedir="${dist.dir}"
  453. includes="doc/**
  454. jars/LatestVersion.jar
  455. jars/QuickNotepad.jar
  456. modes/**
  457. properties/**
  458. startup/**
  459. ${config.jar.filename}"
  460. excludes="doc/api/**"
  461. compression="bzip2" />
  462. <tar destfile="${dist.dir}/jedit-mac.tar.bz2"
  463. basedir="${dist.dir}"
  464. includes="jars/MacOS.jar"
  465. compression="bzip2" />
  466. <tar destfile="${dist.dir}/jedit-api.tar.bz2"
  467. basedir="${dist.dir}"
  468. includes="doc/api/**"
  469. compression="bzip2" />
  470. <tar destfile="${dist.dir}/jedit-os2.tar.bz2"
  471. basedir="package-files/os2"
  472. includes="jedit.cmd"
  473. compression="bzip2" />
  474. <antcall target="compile-installer">
  475. <param name="build.debuglevel"
  476. value="lines,source" />
  477. <param name="classes.dir"
  478. location="${dist.dir}/classes" />
  479. </antcall>
  480. <copy todir="${dist.dir}/classes/installer/installer"
  481. overwrite="true">
  482. <fileset file="installer/install.props" />
  483. <filterset>
  484. <filter token="jedit.version"
  485. value="${config.jedit.version}" />
  486. </filterset>
  487. </copy>
  488. <jar destfile="${dist.dir}/${config.dist.jar.filename}"
  489. basedir="${dist.dir}/classes/installer"
  490. compress="true"
  491. manifest="installer/install.mf"
  492. duplicate="fail"
  493. index="true">
  494. <fileset dir=".">
  495. <include name="installer/*.html" />
  496. </fileset>
  497. <fileset dir="${dist.dir}/classes/package-files/linux">
  498. <include name="jedit.1" />
  499. </fileset>
  500. <zipfileset dir="${dist.dir}"
  501. includes="jedit-api.tar.bz2
  502. jedit-mac.tar.bz2
  503. jedit-macros.tar.bz2
  504. jedit-os2.tar.bz2
  505. jedit-program.tar.bz2"
  506. prefix="installer" />
  507. </jar>
  508. <condition property="wipe.dist.files">
  509. <not>
  510. <isset property="dont.wipe.dist.files" />
  511. </not>
  512. </condition>
  513. <antcall target="dist-cleanup" />
  514. </target>
  515. <target name="dist-manuals"
  516. depends="init"
  517. description="build the PDF-manuals">
  518. <antcall target="docs-pdf-a4">
  519. <param name="classes.dir"
  520. location="${dist.dir}/classes" />
  521. <param name="jar.location"
  522. location="${dist.dir}" />
  523. </antcall>
  524. <antcall target="docs-pdf-USletter">
  525. <param name="classes.dir"
  526. location="${dist.dir}/classes" />
  527. <param name="jar.location"
  528. location="${dist.dir}" />
  529. </antcall>
  530. <condition property="wipe.dist.files">
  531. <not>
  532. <isset property="dont.wipe.dist.files" />
  533. </not>
  534. </condition>
  535. <antcall target="dist-cleanup" />
  536. </target>
  537. <target name="dist-src"
  538. depends="init"
  539. description="build the src-archive">
  540. <pathconvert property="relative.build.dir">
  541. <path location="${build.dir}" />
  542. <globmapper from="${basedir}/*"
  543. to="jEdit/*"
  544. handledirsep="true" />
  545. </pathconvert>
  546. <pathconvert property="relative.dist.dir">
  547. <path location="${dist.dir}" />
  548. <globmapper from="${basedir}/*"
  549. to="jEdit/*"
  550. handledirsep="true" />
  551. </pathconvert>
  552. <mkdir dir="${dist.dir}" />
  553. <tar destfile="${dist.dir}/${config.src.archive.filename}"
  554. basedir=".."
  555. includes="jEdit/**"
  556. excludes="${relative.build.dir}/**
  557. ${relative.dist.dir}/**"
  558. compression="bzip2" />
  559. </target>
  560. <target name="compile-jarbundler"
  561. depends="init">
  562. <mkdir dir="${classes.dir}/jarbundler" />
  563. <depend srcDir="${src.dir}"
  564. destDir="${classes.dir}/jarbundler"
  565. cache="${classes.dir}" />
  566. <javac srcdir="${src.dir}"
  567. destdir="${classes.dir}/jarbundler"
  568. includes="net/**"
  569. debug="true"
  570. debuglevel="${build.debuglevel}"
  571. deprecation="true"
  572. source="${config.target.java.version}"
  573. target="${config.target.java.version}"
  574. compiler="modern" />
  575. </target>
  576. <target name="dist-mac-finish"
  577. depends="init"
  578. unless="build.on.non.mac"
  579. description="finish building the Mac OS X disk image (DMG-file) on Mac OS X">
  580. <fail message="The disk image (DMG-file) for easy distribution on Mac OS X can only be built on Mac OS X currently">
  581. <condition>
  582. <not>
  583. <os family="mac" />
  584. </not>
  585. </condition>
  586. </fail>
  587. <taskdef name="jarbundler"
  588. classname="net.sourceforge.jarbundler.JarBundler"
  589. classpath="${dist.dir}/classes/jarbundler" />
  590. <tstamp>
  591. <format property="current.year"
  592. pattern="yyyy" />
  593. </tstamp>
  594. <mkdir dir="${dist.dir}/classes/mac" />
  595. <jarbundler dir="${dist.dir}/classes/mac"
  596. name="jEdit"
  597. mainclass="org.gjt.sp.jedit.jEdit"
  598. jar="${dist.dir}/${config.jar.filename}"
  599. arguments="-background"
  600. build="${config.jedit.build.number}"
  601. bundleid="org.gjt.sp.jedit"
  602. extraclasspath="/System/Library/Java"
  603. icon="icons/icon.icns"
  604. infostring="jEdit ${config.jedit.version}, Copyright &#169; 1998-${current.year} Slava Pestov"
  605. jvmversion="${config.mac.target.java.version}"
  606. shortname="jEdit"
  607. signature="JESP"
  608. stubfile="jedit"
  609. version="${config.jedit.version}">
  610. <javaproperty name="apple.awt.antialiasing"
  611. value="true" />
  612. <javaproperty name="apple.awt.textantialiasing"
  613. value="true" />
  614. <javaproperty name="apple.laf.useScreenMenuBar"
  615. value="true" />
  616. <javafileset dir="${dist.dir}"
  617. includes="doc/**
  618. jars/**
  619. macros/**
  620. modes/**
  621. properties/**
  622. startup/**" />
  623. <documenttype name="jEdit TEXT Document"
  624. extensions="*"
  625. ostypes="TEXT ****"
  626. iconfile="icons/file.icns"
  627. role="Editor" />
  628. <service message="openFile"
  629. menuitem="jEdit/Open Files"
  630. sendtypes="NSStringPboardType,NSFilenamesPboardType" />
  631. <service message="insertSelection"
  632. menuitem="jEdit/Insert Text"
  633. sendtypes="NSStringPboardType" />
  634. <service message="openSelection"
  635. menuitem="jEdit/New Buffer with Text"
  636. sendtypes="NSStringPboardType" />
  637. </jarbundler>
  638. <delete file="${dist.dir}/classes/mac/jEdit.app/Contents/MacOS/jedit" />
  639. <exec executable="ln"
  640. failonerror="true">
  641. <arg value="-s" />
  642. <arg file="/System/Library/Frameworks/JavaVM.framework/Resources/MacOS/JavaApplicationStub" />
  643. <arg file="${dist.dir}/classes/mac/jEdit.app/Contents/MacOS/jedit" />
  644. </exec>
  645. <delete file="${dist.dir}/${config.mac.disk.image.filename}"
  646. failonerror="false" />
  647. <exec executable="hdiutil"
  648. failonerror="true">
  649. <arg value="create" />
  650. <arg value="-quiet" />
  651. <arg value="-volname" />
  652. <arg value="jEdit ${config.jedit.version}" />
  653. <arg value="-srcfolder" />
  654. <arg file="${dist.dir}/classes/mac/jEdit.app" />
  655. <arg file="${dist.dir}/${config.mac.disk.image.filename}" />
  656. </exec>
  657. <exec executable="hdiutil"
  658. failonerror="true">
  659. <arg value="internet-enable" />
  660. <arg value="-quiet" />
  661. <arg file="${dist.dir}/${config.mac.disk.image.filename}" />
  662. </exec>
  663. <condition property="wipe.dist.files">
  664. <not>
  665. <isset property="dont.wipe.dist.files" />
  666. </not>
  667. </condition>
  668. <antcall target="dist-cleanup" />
  669. </target>
  670. <target name="prepare-dist-mac-finish"
  671. depends="init"
  672. if="build.on.non.mac">
  673. <tar destfile="${dist.dir}/jEdit-${config.jedit.version}-dist-mac-finish.tar.bz2"
  674. basedir="."
  675. includes="build.properties
  676. build.xml
  677. icons/file.icns
  678. icons/icon.icns
  679. ${config.dist.dir}/${config.jar.filename}
  680. ${config.dist.dir}/classes/jarbundler/**
  681. ${config.dist.dir}/doc/**
  682. ${config.dist.dir}/jars/**
  683. ${config.dist.dir}/macros/**
  684. ${config.dist.dir}/modes/**
  685. ${config.dist.dir}/properties/**
  686. ${config.dist.dir}/startup/**"
  687. compression="bzip2" />
  688. </target>
  689. <target name="dist-mac"
  690. depends="init"
  691. description="build the Mac OS X disk image (DMG-file)">
  692. <antcall target="prepare-dist-files" />
  693. <antcall target="compile-jarbundler">
  694. <param name="build.debuglevel"
  695. value="lines,source" />
  696. <param name="classes.dir"
  697. location="${dist.dir}/classes" />
  698. </antcall>
  699. <condition property="build.on.non.mac">
  700. <not>
  701. <os family="mac" />
  702. </not>
  703. </condition>
  704. <antcall target="dist-mac-finish">
  705. <param name="dont.wipe.dist.files"
  706. value="true" />
  707. </antcall>
  708. <antcall target="prepare-dist-mac-finish" />
  709. <condition property="wipe.dist.files">
  710. <not>
  711. <isset property="dont.wipe.dist.files" />
  712. </not>
  713. </condition>
  714. <antcall target="dist-cleanup" />
  715. </target>
  716. <target name="prepare-dist-files"
  717. depends="init">
  718. <antcall target="build">
  719. <param name="build.debuglevel"
  720. value="lines,source" />
  721. <param name="classes.dir"
  722. location="${dist.dir}/classes" />
  723. <param name="jar.location"
  724. location="${dist.dir}" />
  725. </antcall>
  726. <antcall target="docs-html">
  727. <param name="build.debuglevel"
  728. value="lines,source" />
  729. <param name="classes.dir"
  730. location="${dist.dir}/classes" />
  731. <param name="jar.location"
  732. location="${dist.dir}" />
  733. </antcall>
  734. <antcall target="docs-javadoc">
  735. <param name="build.debuglevel"
  736. value="lines,source" />
  737. <param name="classes.dir"
  738. location="${dist.dir}/classes" />
  739. <param name="jar.location"
  740. location="${dist.dir}" />
  741. </antcall>
  742. <antcall target="compile-default-plugins-for-dist" />
  743. <copy todir="${dist.dir}/classes/package-files"
  744. overwrite="true">
  745. <fileset dir="package-files"
  746. excludes="windows/launchstub.exe" />
  747. <filterset>
  748. <filter token="jar.filename"
  749. value="${config.jar.filename}" />
  750. <filter token="jedit.version"
  751. value="${config.jedit.version}" />
  752. <filter token="jedit.build.number"
  753. value="${config.jedit.build.number}" />
  754. <filter token="slackware.target.java.version"
  755. value="${config.slackware.target.java.version}" />
  756. </filterset>
  757. </copy>
  758. <copy todir="${dist.dir}/classes/package-files/windows">
  759. <fileset file="package-files/windows/launchstub.exe" />
  760. </copy>
  761. <gzip src="${dist.dir}/classes/package-files/linux/jedit.1"
  762. destfile="${dist.dir}/classes/package-files/linux/jedit.1.gz" />
  763. </target>
  764. <target name="dist-slackware"
  765. depends="init"
  766. description="build the Slackware Package">
  767. <antcall target="prepare-dist-files" />
  768. <tar destfile="${dist.dir}/jEdit-${config.jedit.version}-noarch-1sao.tgz"
  769. compression="gzip">
  770. <tarfileset file="."
  771. username="root"
  772. group="root"
  773. fullpath="./" />
  774. <tarfileset dir="${dist.dir}/classes/package-files/linux/slackware"
  775. includes="doinst.sh
  776. slack-desc
  777. slack-required"
  778. username="root"
  779. group="root"
  780. prefix="install/" />
  781. <tarfileset file="${dist.dir}/classes/package-files/linux/jedit"
  782. mode="755"
  783. username="root"
  784. group="bin"
  785. fullpath="usr/bin/jedit" />
  786. <tarfileset dir="${dist.dir}/doc"
  787. includes="*.txt"
  788. username="root"
  789. group="root"
  790. prefix="usr/doc/jEdit-${config.jedit.version}/" />
  791. <tarfileset file="${dist.dir}/classes/package-files/linux/jedit.1.gz"
  792. username="root"
  793. group="root"
  794. fullpath="usr/man/man1/jedit.1.gz" />
  795. <tarfileset file="${dist.dir}/classes/package-files/linux/slackware/jEdit.desktop"
  796. username="root"
  797. group="root"
  798. fullpath="usr/share/applications/jEdit.desktop" />
  799. <tarfileset dir="${dist.dir}"
  800. includes="doc/**
  801. jars/LatestVersion.jar
  802. jars/QuickNotepad.jar
  803. macros/**
  804. modes/**
  805. properties/**
  806. startup/**
  807. ${config.jar.filename}"
  808. username="root"
  809. group="root"
  810. prefix="usr/share/jEdit-${config.jedit.version}/" />
  811. <tarfileset dir="icons"
  812. includes="jedit-file48.png
  813. jedit-icon48.png"
  814. username="root"
  815. group="root"
  816. prefix="usr/share/pixmaps/" />
  817. </tar>
  818. <condition property="wipe.dist.files">
  819. <not>
  820. <isset property="dont.wipe.dist.files" />
  821. </not>
  822. </condition>
  823. <antcall target="dist-cleanup" />
  824. </target>
  825. <target name="compile-ar"
  826. depends="init">
  827. <mkdir dir="${classes.dir}/ar" />
  828. <depend srcDir="${src.dir}"
  829. destDir="${classes.dir}/ar"
  830. cache="${classes.dir}" />
  831. <javac srcdir="${src.dir}"
  832. destdir="${classes.dir}/ar"
  833. includes="de/masters_of_disaster/ant/tasks/ar/**"
  834. debug="true"
  835. debuglevel="${build.debuglevel}"
  836. deprecation="true"
  837. source="${config.target.java.version}"
  838. target="${config.target.java.version}"
  839. compiler="modern" />
  840. </target>
  841. <target name="compile-deb"
  842. depends="init">
  843. <mkdir dir="${classes.dir}/deb" />
  844. <depend srcDir="${src.dir}"
  845. destDir="${classes.dir}/deb"
  846. cache="${classes.dir}" />
  847. <javac srcdir="${src.dir}"
  848. destdir="${classes.dir}/deb"
  849. includes="de/masters_of_disaster/ant/tasks/deb/**"
  850. debug="true"
  851. debuglevel="${build.debuglevel}"
  852. deprecation="true"
  853. source="${config.target.java.version}"
  854. target="${config.target.java.version}"
  855. compiler="modern" />
  856. </target>
  857. <target name="dist-deb"
  858. depends="init"
  859. description="build the DEB Package">
  860. <antcall target="prepare-dist-files" />
  861. <antcall target="compile-ar">
  862. <param name="build.debuglevel"
  863. value="lines,source" />
  864. <param name="classes.dir"
  865. location="${dist.dir}/classes" />
  866. </antcall>
  867. <antcall target="compile-deb">
  868. <param name="build.debuglevel"
  869. value="lines,source" />
  870. <param name="classes.dir"
  871. location="${dist.dir}/classes" />
  872. </antcall>
  873. <taskdef name="deb"
  874. classname="de.masters_of_disaster.ant.tasks.deb.Deb"
  875. classpath="${dist.dir}/classes/deb" />
  876. <taskdef name="calculateinstalledsizefordeb"
  877. classname="de.masters_of_disaster.ant.tasks.deb.CalculateInstalledSizeForDeb"
  878. classpath="${dist.dir}/classes/deb" />
  879. <calculateinstalledsizefordeb property="deb.installed.size">
  880. <fileset dir="${dist.dir}/doc"
  881. includes="*.txt" />
  882. <fileset dir="${dist.dir}"
  883. includes="classes/package-files/linux/jedit
  884. classes/package-files/linux/deb/jedit
  885. classes/package-files/linux/deb/jedit.desktop
  886. classes/package-files/linux/jedit.1.gz
  887. doc/**
  888. jars/LatestVersion.jar
  889. jars/QuickNotepad.jar
  890. macros/**
  891. modes/**
  892. properties/**
  893. startup/**
  894. ${config.jar.filename}" />
  895. </calculateinstalledsizefordeb>
  896. <copy todir="${dist.dir}/classes/package-files/linux/deb"
  897. overwrite="true">
  898. <fileset file="package-files/linux/deb/control" />
  899. <filterset>
  900. <filter token="jedit.build.number"
  901. value="${config.jedit.build.number}" />
  902. <filter token="deb.installed.size"
  903. value="${deb.installed.size}" />
  904. </filterset>
  905. </copy>
  906. <deb destfile="${dist.dir}/jedit_${config.jedit.version}_all.deb"
  907. tempDir="${dist.dir}/classes/deb"
  908. deleteTempFiles="false"
  909. includeMd5sums="true">
  910. <controlfileset file="${dist.dir}/classes/package-files/linux/deb/control" />
  911. <controlfileset dir="${dist.dir}/classes/package-files/linux/deb"
  912. includes="postinst
  913. postrm"
  914. mode="755" />
  915. <datafileset file="${dist.dir}/classes/package-files/linux/jedit"
  916. fullpath="usr/bin/jedit"
  917. mode="755" />
  918. <datafileset file="${dist.dir}/classes/package-files/linux/deb/jedit"
  919. fullpath="usr/lib/menu/jedit" />
  920. <datafileset file="${dist.dir}/classes/package-files/linux/deb/jedit.desktop"
  921. fullpath="usr/share/applications/jedit.desktop" />
  922. <datafileset dir="${dist.dir}/doc"
  923. includes="*.txt"
  924. prefix="usr/share/doc/jEdit/" />
  925. <datafileset dir="${dist.dir}/jars"
  926. includes="LatestVersion.jar
  927. QuickNotepad.jar"
  928. prefix="usr/share/java/" />
  929. <datafileset dir="${dist.dir}"
  930. includes="doc/**
  931. macros/**
  932. modes/**
  933. properties/**
  934. startup/**
  935. ${config.jar.filename}"
  936. prefix="usr/share/jEdit/" />
  937. <datafileset file="${dist.dir}/classes/package-files/linux/jedit.1.gz"
  938. fullpath="usr/share/man/man1/jedit.1.gz" />
  939. </deb>
  940. <condition property="wipe.dist.files">
  941. <not>
  942. <isset property="dont.wipe.dist.files" />
  943. </not>
  944. </condition>
  945. <antcall target="dist-cleanup" />
  946. </target>
  947. <target name="dist-win-finish"
  948. depends="init"
  949. unless="build.on.non.win"
  950. description="finish building the Windows installer (EXE-file) on Windows">
  951. <fail message="The Windows installer (EXE-file) can only be built on Windows currently">
  952. <condition>
  953. <not>
  954. <os family="windows" />
  955. </not>
  956. </condition>
  957. </fail>
  958. <tstamp>
  959. <format property="current.year"
  960. pattern="yyyy" />
  961. </tstamp>
  962. <copy todir="${dist.dir}/classes/package-files/windows"
  963. overwrite="true">
  964. <fileset file="package-files/windows/win32installer.iss" />
  965. <filterset>
  966. <filter token="jar.filename"
  967. value="${config.jar.filename}" />
  968. <filter token="jedit.version"
  969. value="${config.jedit.version}" />
  970. <filter token="jedit.build.number"
  971. value="${config.jedit.build.number}" />
  972. <filter token="win.filename"
  973. value="${config.win.filename}" />
  974. <filter token="dist.dir"
  975. value="${dist.dir}" />
  976. <filter token="base.dir"
  977. value="${basedir}" />
  978. <filter token="current.year"
  979. value="${current.year}" />
  980. </filterset>
  981. </copy>
  982. <exec executable="${config.innosetup.compiler.executable}"
  983. failonerror="true">
  984. <arg value="/cc" />
  985. <arg file="${dist.dir}/classes/package-files/windows/win32installer.iss" />
  986. </exec>
  987. <condition property="wipe.dist.files">
  988. <not>
  989. <isset property="dont.wipe.dist.files" />
  990. </not>
  991. </condition>
  992. <antcall target="dist-cleanup" />
  993. </target>
  994. <target name="prepare-dist-win-finish"
  995. depends="init"
  996. if="build.on.non.win">
  997. <tar destfile="${dist.dir}/jEdit-${config.jedit.version}-dist-win-finish.tar.bz2"
  998. basedir="."
  999. includes="build.properties
  1000. build.xml
  1001. icons/jedit.ico
  1002. icons/WindowsInstallerSmallImage.bmp
  1003. icons/WindowsInstallerImage.bmp
  1004. package-files/windows/win32installer.iss
  1005. ${config.dist.dir}/${config.jar.filename}
  1006. ${config.dist.dir}/classes/package-files/windows/**
  1007. ${config.dist.dir}/doc/**
  1008. ${config.dist.dir}/jars/LatestVersion.jar
  1009. ${config.dist.dir}/jars/QuickNotepad.jar
  1010. ${config.dist.dir}/macros/**
  1011. ${config.dist.dir}/modes/**
  1012. ${config.dist.dir}/properties/**
  1013. ${config.dist.dir}/startup/**"
  1014. compression="bzip2" />
  1015. </target>
  1016. <target name="dist-win"
  1017. depends="init"
  1018. description="build the Windows installer (EXE-file)">
  1019. <antcall target="prepare-dist-files" />
  1020. <condition property="build.on.non.win">
  1021. <not>
  1022. <os family="windows" />
  1023. </not>
  1024. </condition>
  1025. <antcall target="dist-win-finish">
  1026. <param name="dont.wipe.dist.files"
  1027. value="true" />
  1028. </antcall>
  1029. <antcall target="prepare-dist-win-finish" />
  1030. <condition property="wipe.dist.files">
  1031. <not>
  1032. <isset property="dont.wipe.dist.files" />
  1033. </not>
  1034. </condition>
  1035. <antcall target="dist-cleanup" />
  1036. </target>
  1037. <target name="dist"
  1038. depends="init"
  1039. description="build all distribution files">
  1040. <property name="dont.wipe.dist.files"
  1041. value="true" />
  1042. <antcall target="dist-java" />
  1043. <antcall target="dist-manuals" />
  1044. <antcall target="dist-src" />
  1045. <antcall target="dist-slackware" />
  1046. <antcall target="dist-deb" />
  1047. <antcall target="dist-mac" />
  1048. <antcall target="dist-win" />
  1049. <property name="wipe.dist.files"
  1050. value="true" />
  1051. <antcall target="dist-cleanup" />
  1052. </target>
  1053. <target name="dist-cleanup"
  1054. depends="init">
  1055. <delete includeemptydirs="true">
  1056. <fileset dir="${dist.dir}">
  1057. <selector if="wipe.dist.files">
  1058. <or>
  1059. <filename name="macros/**" />
  1060. <filename name="doc/**" />
  1061. <filename name="jars/**" />
  1062. <filename name="modes/**" />
  1063. <filename name="properties/**" />
  1064. <filename name="startup/**" />
  1065. <filename name="${config.jar.filename}" />
  1066. <and>
  1067. <filename name="*.tar.bz2" />
  1068. <filename name="${config.src.archive.filename}"
  1069. negate="true" />
  1070. <filename name="jEdit-${config.jedit.version}-dist-mac-finish.tar.bz2"
  1071. negate="true" />
  1072. <filename name="jEdit-${config.jedit.version}-dist-win-finish.tar.bz2"
  1073. negate="true" />
  1074. </and>
  1075. <filename name="classes/**" />
  1076. </or>
  1077. </selector>
  1078. </fileset>
  1079. </delete>
  1080. </target>
  1081. </project>