diff options
Diffstat (limited to 'build.xml')
-rw-r--r-- | build.xml | 65 |
1 files changed, 56 insertions, 9 deletions
@@ -154,6 +154,8 @@ PROPERTIES <!-- Loads custom properties definitions --> <property file="${basedir}/build.properties"/> + <!-- Generating version number --> + <property file="${basedir}/build.number"/> <!-- Additional command line arguments for scalac. They are added to all build targets --> <property name="scalac.args" value=""/> @@ -211,7 +213,30 @@ INITIALISATION <exec osfamily="windows" vmlauncher="false" executable="pull-binary-libs.sh" failifexecutionfails="true" /> </target> - <target name="init" depends="init.starr"> + <!-- Determines OSGi string + maven extension. --> + <target name="init.hasbuildnum"> + <condition property="version.hasbuildnum"> + <not><equals arg1="${version.bnum}" arg2="0"/></not> + </condition> + </target> + <target name="init.build.snapshot" unless="build.release"> + <property name="maven.version.suffix" value="-SNAPSHOT"/> + </target> + <target name="init.build.release" if="build.release" depends="init.hasbuildnum, init.build.snapshot"> + <property name="maven.version.suffix" value=""/> + </target> + <target name="init.build.nopatch.release" unless="version.hasbuildnum" depends="init.hasbuildnum"> + <property name="version.suffix" value=""/> + </target> + <!-- funny thing, ant is. Can only specify *one* property in if check. Guaranteed that both are true here, + since properties are immutable. --> + <target name="init.build.patch.release" if="version.hasbuildnum" depends="init.build.nopatch.release"> + <property name="version.suffix" value="-${version.bnum}"/> + </target> + + <target name="init.build.suffix.done" depends="init.build.release, init.build.patch.release"/> + + <target name="init" depends="init.starr, init.build.suffix.done"> <!-- scalac.args.optimise is selectively overridden in certain antcall tasks. --> <property name="scalac.args.optimise" value=""/> <!-- scalac.args.quickonly are added to quick.* targets but not others (particularly, locker.) @@ -231,20 +256,28 @@ INITIALISATION <os family="windows"/> </condition> - <exec osfamily="unix" executable="tools/get-scala-revision" outputproperty="git.describe" failifexecutionfails="false" /> - <exec osfamily="windows" executable="tools/get-scala-revision.bat" outputproperty="git.describe" failifexecutionfails="false" /> + <exec osfamily="unix" executable="tools/get-scala-commit-sha" outputproperty="git.commit.sha" failifexecutionfails="false" /> + <exec osfamily="windows" executable="tools/get-scala-commit-sha.bat" outputproperty="git.commit.sha" failifexecutionfails="false" /> + <exec osfamily="unix" executable="tools/get-scala-commit-date" outputproperty="git.commit.date" failifexecutionfails="false" /> + <exec osfamily="windows" executable="tools/get-scala-commit-date.bat" outputproperty="git.commit.date" failifexecutionfails="false" /> + <exec osfamily="unix" executable="tools/get-scala-commit-drift" outputproperty="git.commit.drift" failifexecutionfails="false" /> + <exec osfamily="windows" executable="tools/get-scala-commit-drift.bat" outputproperty="git.commit.drift" failifexecutionfails="false" /> <!-- some default in case something went wrong getting the revision --> <property name="git.describe" value="-unknown-"/> <property name="init.avail" value="yes"/> - <!-- Generating version number --> - <property file="${basedir}/build.number"/> - <!-- As of git move, we set the internal version number based on how far from tags we are, which includes a version tag. we keep - major/minor etc. for the maven deploy. --> + <!-- We use the git describe to determine the OSGi modifier for our build. --> + <property + name="maven.version.number" + value="${version.major}.${version.minor}.${version.patch}${version.suffix}${maven.version.suffix}"/> <property name="version.number" - value="${git.describe}"/> + value="${maven.version.number}-${git.commit.date}-${git.commit.drift}-${git.commit.sha}"/> + <property + name="osgi.version.number" + value="${version.major}.${version.minor}.${version.patch}.v${git.commit.date}${version.suffix}-${git.commit.sha}"/> + <!-- Local libs (developer use.) --> <mkdir dir="${lib-extra.dir}"/> @@ -274,7 +307,9 @@ INITIALISATION <echo message=" java args: ${env.ANT_OPTS} ${jvm.opts}" /> <echo message=" javac args: ${javac.args}" /> <echo message=" scalac args: ${scalac.args}" /> - <echo message=" build number: ${version.number}" /> + <echo message=" maven version: ${maven.version.number}"/> + <echo message=" OSGi version: ${osgi.version.number}" /> + <echo message="canonical version: ${version.number}" /> <!-- Define tasks that can be run with Starr --> <path id="starr.classpath"> @@ -341,6 +376,8 @@ LOCAL REFERENCE BUILD (LOCKER) </scalacfork> <propertyfile file="${build-locker.dir}/classes/library/library.properties"> <entry key="version.number" value="${version.number}"/> + <entry key="maven.version.number" value="${maven.version.number}"/> + <entry key="osgi.version.number" value="${osgi.version.number}"/> <entry key="copyright.string" value="${copyright.string}"/> </propertyfile> <copy todir="${build-locker.dir}/classes/library"> @@ -380,6 +417,8 @@ LOCAL REFERENCE BUILD (LOCKER) </scalacfork> <propertyfile file="${build-locker.dir}/classes/compiler/compiler.properties"> <entry key="version.number" value="${version.number}"/> + <entry key="maven.version.number" value="${maven.version.number}"/> + <entry key="osgi.version.number" value="${osgi.version.number}"/> <entry key="copyright.string" value="${copyright.string}"/> </propertyfile> <copy todir="${build-locker.dir}/classes/compiler"> @@ -536,6 +575,8 @@ QUICK BUILD (QUICK) </scalacfork> <propertyfile file="${build-quick.dir}/classes/library/library.properties"> <entry key="version.number" value="${version.number}"/> + <entry key="maven.version.number" value="${maven.version.number}"/> + <entry key="osgi.version.number" value="${osgi.version.number}"/> <entry key="copyright.string" value="${copyright.string}"/> </propertyfile> <copy todir="${build-quick.dir}/classes/library"> @@ -595,6 +636,8 @@ QUICK BUILD (QUICK) </scalacfork> <propertyfile file="${build-quick.dir}/classes/compiler/compiler.properties"> <entry key="version.number" value="${version.number}"/> + <entry key="maven.version.number" value="${maven.version.number}"/> + <entry key="osgi.version.number" value="${osgi.version.number}"/> <entry key="copyright.string" value="${copyright.string}"/> </propertyfile> <copy todir="${build-quick.dir}/classes/compiler"> @@ -1069,6 +1112,8 @@ BOOTSTRAPPING BUILD (STRAP) </scalacfork> <propertyfile file="${build-strap.dir}/classes/library/library.properties"> <entry key="version.number" value="${version.number}"/> + <entry key="maven.version.number" value="${maven.version.number}"/> + <entry key="osgi.version.number" value="${osgi.version.number}"/> <entry key="copyright.string" value="${copyright.string}"/> </propertyfile> <copy todir="${build-strap.dir}/classes/library"> @@ -1108,6 +1153,8 @@ BOOTSTRAPPING BUILD (STRAP) </scalacfork> <propertyfile file="${build-strap.dir}/classes/compiler/compiler.properties"> <entry key="version.number" value="${version.number}"/> + <entry key="maven.version.number" value="${maven.version.number}"/> + <entry key="osgi.version.number" value="${osgi.version.number}"/> <entry key="copyright.string" value="${copyright.string}"/> </propertyfile> <copy todir="${build-strap.dir}/classes/compiler"> |