You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

build.xml 6.5KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <project name="DMDirc Plugins" default="default" basedir=".">
  3. <description>Builds, packages and tests DMDirc plugins.</description>
  4. <import file="build-gitversion.xml"/>
  5. <property name="plugins.src" location="src"/>
  6. <property name="plugins.build" location="build"/>
  7. <property name="plugins.build.classes" location="${plugins.build}/classes"/>
  8. <property name="plugins.build.metadata" location="${plugins.build}/metadata"/>
  9. <property name="plugins.dist" location="dist"/>
  10. <property name="plugins.lib" location="lib"/>
  11. <path id="plugins.classpath">
  12. <pathelement path="${plugins.dmdirc.build.dir}"/>
  13. <fileset dir="${plugins.lib}" includes="*.jar"/>
  14. </path>
  15. <condition property="plugins.dmdirc.exists">
  16. <available classname="com.dmdirc.Main" classpathref="plugins.classpath"/>
  17. </condition>
  18. <condition property="plugins.need.antlib">
  19. <not>
  20. <typefound name="foreach"/>
  21. </not>
  22. </condition>
  23. <target name="-init-taskdefs" if="plugins.need.antlib">
  24. <taskdef resource="net/sf/antcontrib/antlib.xml" classpathref="plugins.classpath"/>
  25. </target>
  26. <target name="-check-dmdirc-jar" unless="plugins.dmdirc.exists">
  27. <fail>DMDirc class files not found. Please put DMDirc on the classpath or specify the 'plugins.dmdirc.build.dir' property.</fail>
  28. </target>
  29. <target name="-init-compile" depends="-check-dmdirc-jar">
  30. <mkdir dir="${plugins.build}"/>
  31. <mkdir dir="${plugins.build.classes}"/>
  32. <mkdir dir="${plugins.build.metadata}"/>
  33. </target>
  34. <target name="compile" depends="-init-compile">
  35. <javac srcdir="${plugins.src}" destdir="${plugins.build.classes}"
  36. classpathref="plugins.classpath" includeantruntime="false"
  37. debug="true"/>
  38. <copy todir="${plugins.build.classes}">
  39. <fileset dir="${plugins.src}">
  40. <exclude name="**/*.java"/>
  41. <exclude name="**/plugin.config"/>
  42. </fileset>
  43. </copy>
  44. </target>
  45. <target name="jar" depends="-package,-add-libs"/>
  46. <target name="-package" depends="-init-taskdefs, compile">
  47. <for param="configfile">
  48. <fileset dir="${plugins.src}" includes="**/plugin.config"/>
  49. <sequential>
  50. <local name="plugin.src.dir"/>
  51. <local name="plugin.build.dir"/>
  52. <local name="plugin.name"/>
  53. <local name="plugin.jar"/>
  54. <local name="plugin.version"/>
  55. <mkdir dir="${plugins.build.metadata}/${plugin.name}/META-INF"/>
  56. <dirname file="@{configfile}" property="plugin.src.dir"/>
  57. <basename file="${plugin.src.dir}" property="plugin.name"/>
  58. <property name="plugin.jar" value="${plugins.dist}/${plugin.name}.jar"/>
  59. <propertyregex property="plugin.build.dir" input="${plugin.src.dir}" regexp="\Q${plugins.src}\E/?(.*)" replace="\1"/>
  60. <copy todir="${plugins.build.metadata}/${plugin.name}/META-INF">
  61. <fileset file="@{configfile}"/>
  62. <fileset dir="${plugin.src.dir}" includes="identities/** licences/**"/>
  63. </copy>
  64. <gitversion target="${plugin.src.dir}" outputproperty="plugin.version"/>
  65. <echo file="${plugins.build.metadata}/${plugin.name}/META-INF/plugin.config" append="true">
  66. version:
  67. number=${plugin.version}
  68. </echo>
  69. <jar destfile="${plugin.jar}">
  70. <fileset dir="${plugins.build.classes}" includes="${plugin.build.dir}/**"/>
  71. <fileset dir="${plugins.build.metadata}/${plugin.name}" includes="META-INF/**"/>
  72. </jar>
  73. <echo>Built ${plugin.name} plugin version ${plugin.version}</echo>
  74. </sequential>
  75. </for>
  76. </target>
  77. <target name="-add-libs">
  78. <jar destfile="${plugins.dist}/ui_swing.jar" update="true">
  79. <zipfileset src="${plugins.lib}/miglayout-3.7.4-swing.jar" includes="net/miginfocom/layout/**,net/miginfocom/swing/**"/>
  80. <zipfileset src="${plugins.lib}/menuscroller.jar" includes="darrylbu/util/**"/>
  81. <zipfileset src="${plugins.lib}/jxlayer.jar" includes="org/jdesktop/jxlayer/**"/>
  82. </jar>
  83. <jar destfile="${plugins.dist}/parser_twitter.jar" update="true">
  84. <zipfileset src="${plugins.lib}/commons-codec-1.3.jar" includes="org/apache/**" excludes="**/*.html"/>
  85. <zipfileset src="${plugins.lib}/signpost-core-1.1-SNAPSHOT.jar" includes="com/google/** oauth/signpost/**"/>
  86. <zipfileset src="${plugins.lib}/commons-lang-2.4.jar" includes="org/apache/**" excludes="**/*.html"/>
  87. </jar>
  88. <jar destfile="${plugins.dist}/ui_web.jar" update="true">
  89. <zipfileset src="${plugins.lib}/commons-lang-2.4.jar" includes="org/apache/**" excludes="**/*.html"/>
  90. <zipfileset src="${plugins.lib}/jetty-6.1.22.jar" includes="org/mortbay/**"/>
  91. <zipfileset src="${plugins.lib}/jetty-util-6.1.22.jar" includes="org/mortbay/**"/>
  92. <zipfileset src="${plugins.lib}/servlet-api-2.5-20081211.jar" includes="javax/servlet/**"/>
  93. </jar>
  94. <jar destfile="${plugins.dist}/parser_irc.jar" update="true">
  95. <!-- TODO: this could also be a jar in the lib dir -->
  96. <fileset dir="${plugins.dmdirc.build.dir}">
  97. <include name="com/dmdirc/parser/irc/**/*.class"/>
  98. </fileset>
  99. </jar>
  100. <jar destfile="${plugins.dist}/parser_xmpp.jar" update="true">
  101. <zipfileset src="${plugins.lib}/smack.jar" includes="org/**"/>
  102. <zipfileset src="${plugins.lib}/smackx.jar" includes="org/** com/**"/>
  103. </jar>
  104. <jar destfile="${plugins.dist}/parser_msn.jar" update="true">
  105. <zipfileset src="${plugins.lib}/jml-1.0b4-full.jar" includes="net/** org/**"/>
  106. <zipfileset src="${plugins.lib}/httpcore.jar" includes="org/**"/>
  107. </jar>
  108. <jar destfile="${plugins.dist}/windowflashing.jar" update="true">
  109. <zipfileset src="${plugins.lib}/jna.jar" includes="com/**"/>
  110. <zipfileset src="${plugins.lib}/platform.jar" includes="com/**"/>
  111. </jar>
  112. <jar destfile="${plugins.dist}/freedesktop_notifications.jar" update="true">
  113. <zipfileset src="${plugins.lib}/commons-lang-2.4.jar" includes="org/apache/**" excludes="**/*.html"/>
  114. </jar>
  115. </target>
  116. <target name="clean">
  117. <delete dir="${plugins.build}"/>
  118. <delete dir="${plugins.dist}"/>
  119. </target>
  120. </project>