Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- build.major.number=00
- build.revision.number=00
- build.minor.number=00
- <?xml version="1.0" encoding="UTF-8"?>
- <project name="project" default="current-number">
- <property file="build_info.properties"/>
- <property name="build.number" value="${build.major.number}.${build.minor.number}.${build.revision.number}"/>
- <target name="current-number">
- <echo>Current build number:${build.number}</echo>
- </target>
- <target name="compile">
- <antcall target="revision"></antcall>
- </target>
- <target name="dist">
- <antcall target="minor"></antcall>
- </target>
- <target name="revision">
- <propertyfile file="build_info.properties">
- <entry key="build.revision.number" type="int" operation="+" value="1" pattern="00"/>
- </propertyfile>
- </target>
- <target name="minor">
- <propertyfile file="build_info.properties">
- <entry key="build.minor.number" type="int" operation="+" value="1" pattern="00"/>
- <entry key="build.revision.number" type="int" value="0" pattern="00"/>
- </propertyfile>
- </target>
- <target name="major">
- <propertyfile file="build_info.properties">
- <entry key="build.major.number" type="int" operation="+" value="1" pattern="00"/>
- <entry key="build.minor.number" type="int" value="0" pattern="00"/>
- <entry key="build.revision.number" type="int" value="0" pattern="00"/>
- </propertyfile>
- </target>
- <target name="all">
- <propertyfile file="build_info.properties">
- <entry key="build.major.number" type="int" operation="+" value="1" pattern="00"/>
- <entry key="build.minor.number" type="int" operation="+" value="1" pattern="00"/>
- <entry key="build.revision.number" type="int" operation="+" value="1" pattern="00"/>
- </propertyfile>
- </target>
- </project>
- <?xml version="1.0" encoding="UTF-8"?>
- <project name="Numbers" default="dist" basedir=".">
- <property name="version.file" location="${basedir}/version.properties"/>
- <target name="inc.revision.properties" unless="no.increment.revision">
- <propertyfile file="${version.file}">
- <entry key="minor.number" default="00" operation="=" pattern="00" type="int"/>
- <entry key="major.number" default="00" operation="=" pattern="00" type="int"/>
- <entry key="build.number" default="00" operation="+" pattern="00" type="int"/>
- </propertyfile>
- </target>
- <target name="inc.minor.properties" unless="no.increment.minor">
- <propertyfile file="${version.file}">
- <entry key="minor.number" default="00" operation="+" pattern="00" type="int"/>
- <entry key="major.number" default="00" operation="=" pattern="00" type="int"/>
- <entry key="build.number" value="00" operation="=" type="int"/>
- </propertyfile>
- </target>
- <target name="inc.major" if="inc.major">
- <property name="no.increment.minor" value="true" />
- <property name="no.increment.revision" value="true" />
- <propertyfile file="${version.file}">
- <entry key="minor.number" value="00" operation="=" pattern="00" type="int"/>
- <entry key="major.number" default="00" operation="+" pattern="00" type="int"/>
- <entry key="build.number" value="00" operation="=" pattern="00" type="int"/>
- </propertyfile>
- <load.version.info/>
- </target>
- <target name="inc.minor" depends="inc.major,inc.minor.properties">
- <property name="no.increment.revision" value="true"/>
- <load.version.info/>
- </target>
- <target name="inc.revision" depends="inc.major,inc.revision.properties">
- <load.version.info/>
- </target>
- <macrodef name="load.version.info">
- <sequential>
- <property file="${version.file}"/>
- <checksum file="${version.file}" property="sha1.number" algorithm="SHA" format="CHECKSUM"/>
- <echo>Version: ${major.number}.${minor.number}.${build.number}</echo>
- <echo>SHA1: ${sha1.number}</echo>
- </sequential>
- </macrodef>
- <target name="compile" depends="inc.revision" description="Compile Task"/>
- <target name="dist" depends="inc.minor, compile" description="Dest Task"/>
- </project>
- <target name="checkout">
- <echo>Checking out revision ${param_SubProjectSvnREV} of project: ${param_SubProjectSvnName}</echo>
- <svn username="${svnant.repository.user}" password="${svnant.repository.passwd}">
- <checkout url="${svnant.latest.url}/${param_SubProjectSvnName}/" revision="${param_SubProjectSvnREV}" destPath="${all.projects.dir}/${param_SubProjectDirName}" />
- <info target="${all.projects.dir}/${param_SubProjectDirName}" ></info>
- </svn>
- <propertyfile file="${all.projects.dir}/${param_SubProjectDirName}/build_info.properties" comment="Modify build numbers in a properties file.">
- <entry key="build.number" type="int" operation="+" value="1" pattern="00"/><!--increment it here -->
- <entry key="build.revision" type="string" value="${svn.info.rev}"/>
- <entry key="build.major.number" default="01"/><!-- can do some logic here to increase the values, or write value from somewhere else-->
- <entry key="build.minor.number" default="01"/><!-- can do some logic here to increase the values, or write value from somewhere else-->
- </propertyfile>
- </target>
- <target name="compile" depends="checkout">
- <property file="${all.projects.dir}/${param_SubProjectDirName}/build_info.properties" />
- <mkdir dir="${release.name}/${param_SubProjectDirName}/${build.major.number}.${build.minor.number}.${build.number}" />
- <!-- compile it to the new folder, an so on... -->
- <!-- after all, if the build wass successfull, commit the file 'build_info.properties' back to repository -->
- </target>
- <entry key="build.major.number" value="${global.release.major}"></entry>
- <entry key="build.minor.number" value="${global.release.minor}"></entry>
- <entry key="build.major.number" type="int" operation="+" default="1" pattern="00"/>
- <target name="increase.micro" if ="microNotEquals9">
- <propertyfile file="build.properties">
- <entry key="micro.number" default="0" operation="+" pattern="0" type="int"/>
- </propertyfile>
- </target>
- <target name="increase.minor" if = "microEquals9andMinorNotEquals9">
- <propertyfile file="build.properties">
- <entry key="minor.number" default="0" operation="+" pattern="0" type="int"/>
- <entry key="micro.number" value="0" operation="=" pattern="0" type="int"/>
- </propertyfile>
- </target>
- <target name="increase.major" if = "microAndMinorEquals9" >
- <propertyfile file="build.properties">
- <entry key="major.number" default="0" operation="+" pattern="0" type="int"/>
- <entry key="minor.number" value="0" operation="=" pattern="0" type="int"/>
- <entry key="micro.number" value="0" operation="=" pattern="0" type="int"/>
- </propertyfile>
- </target>
- <condition property="minorEquals9">
- <equals arg1="${minor.number}" arg2="9"/>
- </condition>
- <condition property="microEquals9andMinorNotEquals9">
- <and>
- <equals arg1="${micro.number}" arg2="9"/>
- <not><equals arg1="${minor.number}" arg2="9"/></not>
- </and>
- </condition>
- <condition property="microAndMinorEquals9">
- <and>
- <equals arg1="${micro.number}" arg2="9"/>
- <equals arg1="${minor.number}" arg2="9"/>
- </and>
- </condition>
- <condition property="microNotEquals9">
- <not><equals arg1="${micro.number}" arg2="9"/></not>
- </condition>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement