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-versioning.xml 3.3KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <project name="DMDirc-versioning" default="default" basedir=".">
  3. <description>Adds automatic versioning information to DMDirc</description>
  4. <property name="version.config" value="build/classes/com/dmdirc/version.config"/>
  5. <property name="defaults.path" value="modules/defaults/.git/"/>
  6. <property name="defaults.output" value="build/classes/com/dmdirc/config/defaults/"/>
  7. <property name="defaults.target" value="${defaults.output}default/defaults"/>
  8. <property name="modealiases.target" value="${defaults.output}modealiases/generic"/>
  9. <available file=".git" property="is.git"/>
  10. <target name="-write-version" depends="-write-version-header, -add-version, -write-updater, -write-identities, -write-disable-updates"/>
  11. <target name="-write-version-header">
  12. <echo file="${version.config}"># This is a DMDirc configuration file automatically generated by
  13. # the build process.
  14. keysections:
  15. identity
  16. version
  17. updater
  18. identity:
  19. name=DMDirc version information
  20. globaldefault=true
  21. order=95000
  22. version:
  23. version=</echo>
  24. </target>
  25. <target name="-add-version" depends="-add-git-version"/>
  26. <target name="-add-git-version" if="is.git">
  27. <exec executable="git" output="${version.config}" append="true">
  28. <arg value="describe"/>
  29. <arg value="--tags"/>
  30. </exec>
  31. </target>
  32. <target name="-init-channel" unless="channel">
  33. <property name="channel" value="NONE"/>
  34. </target>
  35. <target name="with.disabled.updater">
  36. <property name="disableupdates" value="true" />
  37. </target>
  38. <target name="-write-disable-updates" if="disableupdates">
  39. <echo file="${version.config}" append="true">
  40. version:
  41. noupdates=true
  42. </echo>
  43. </target>
  44. <target name="-write-updater" depends="-init-channel, -read-identities">
  45. <echo file="${version.config}" append="true">
  46. updater:
  47. channel=${channel}
  48. bundleddefaultsversion=${defaults.version}
  49. bundledmodealiasesversion=${modealiases.version}
  50. </echo>
  51. </target>
  52. <target name="-write-identities" depends="-read-identities, -copy-identities">
  53. <echo file="${defaults.target}" append="true">
  54. identity:
  55. defaultsversion=${defaults.version}
  56. </echo>
  57. <echo file="${modealiases.target}" append="true">
  58. identity:
  59. modealiasversion=${modealiases.version}
  60. </echo>
  61. </target>
  62. <target name="-copy-identities">
  63. <mkdir dir="${defaults.output}"/>
  64. <copy todir="${defaults.output}" overwrite="true">
  65. <fileset dir="modules/defaults/" excludes=".git/"/>
  66. </copy>
  67. </target>
  68. <target name="-read-identities" depends="-read-identities-git"/>
  69. <target name="-read-identities-git" if="is.git">
  70. <exec dir="." executable="bash" outputproperty="defaults.version">
  71. <arg value="-c"/>
  72. <arg value="git --git-dir ${defaults.path} rev-list --all -n 1 -- default | xargs git --git-dir ${defaults.path} describe --tags"/>
  73. </exec>
  74. <exec dir="." executable="bash" outputproperty="modealiases.version">
  75. <arg value="-c"/>
  76. <arg value="git --git-dir ${defaults.path} rev-list --all -n 1 -- modealiases | xargs git --git-dir ${defaults.path} describe --tags"/>
  77. </exec>
  78. </target>
  79. </project>