summaryrefslogtreecommitdiff
path: root/build.xml
diff options
context:
space:
mode:
authorPaul Phillips <paulp@improving.org>2012-03-18 10:42:20 -0700
committerPaul Phillips <paulp@improving.org>2012-03-18 10:42:20 -0700
commit513232f251f1e1ce89adbde53fa1ccec67bda24d (patch)
tree7792247e953f37dc6c05fe64baeb0841811f31cd /build.xml
parentf90efea9600cd9bd39537b256e371a093aa994cd (diff)
parentb3efb3d493605d1c7e106e5f0a697b52ebb3d97c (diff)
downloadscala-513232f251f1e1ce89adbde53fa1ccec67bda24d.tar.gz
scala-513232f251f1e1ce89adbde53fa1ccec67bda24d.tar.bz2
scala-513232f251f1e1ce89adbde53fa1ccec67bda24d.zip
Merge remote-tracking branches 'axel22/feature/checkinit-transient' and 'jsuereth/mirrored-seq-extractors' into develop
Diffstat (limited to 'build.xml')
-rw-r--r--build.xml89
1 files changed, 69 insertions, 20 deletions
diff --git a/build.xml b/build.xml
index f0fd36da5a..53bd9c3011 100644
--- a/build.xml
+++ b/build.xml
@@ -166,6 +166,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=""/>
@@ -236,7 +238,30 @@ INITIALISATION
</touch>
</target>
- <target name="init" depends="init.jars">
+ <!-- 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.jars, 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.)
@@ -255,22 +280,30 @@ INITIALISATION
<condition property="os.win">
<os family="windows"/>
</condition>
-
- <!-- Generating version string -->
- <exec osfamily="unix" executable="tools/get-scala-revision" outputproperty="version.number" failifexecutionfails="false" />
- <exec osfamily="windows" executable="tools/get-scala-revision.bat" outputproperty="version.number" 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-"/>
+
+ <!-- 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="${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}"/>
<!-- some default in case something went wrong getting the revision -->
<property name="version.number" value="-unknown-"/>
<property name="init.avail" value="yes"/>
- <!-- And print-out what we are building -->
- <echo message=" build time: ${time.human}" />
- <echo message=" java version: ${java.vm.name} ${java.version}" />
- <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}" />
-
<!-- Local libs (developer use.) -->
<mkdir dir="${lib-extra.dir}"/>
@@ -293,7 +326,17 @@ INITIALISATION
<path refid="lib.extra"/>
</path>
- <!-- Define tasks that can be run with Starr -->
+ <!-- And print-out what we are building -->
+ <echo message=" build time: ${time.human}" />
+ <echo message=" java version: ${java.vm.name} ${java.version}" />
+ <echo message=" java args: ${env.ANT_OPTS} ${jvm.opts}" />
+ <echo message=" javac args: ${javac.args}" />
+ <echo message=" scalac args: ${scalac.args}" />
+ <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">
<pathelement location="${lib.starr.jar}"/>
<pathelement location="${comp.starr.jar}"/>
@@ -358,6 +401,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">
@@ -397,6 +442,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">
@@ -628,6 +675,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">
@@ -687,6 +736,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">
@@ -1169,6 +1220,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">
@@ -1208,6 +1261,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">
@@ -2077,12 +2132,6 @@ FORWARDED TARGETS FOR NIGHTLY BUILDS
<ant antfile="${src.dir}/build/pack.xml" target="pack-all.done" inheritall="yes" inheritrefs="yes"/>
</target>
- <target name="nightly.checkinit">
- <antcall target="nightly-nopt">
- <param name="scalac.args.optimise" value="-Xcheckinit"/>
- </antcall>
- </target>
-
<target name="nightly.checkall">
<antcall target="nightly-nopt">
<param name="partest.scalacopts" value="-Ycheck:all"/>