diff options
author | Iulian Dragos <jaguarul@gmail.com> | 2007-11-22 17:16:07 +0000 |
---|---|---|
committer | Iulian Dragos <jaguarul@gmail.com> | 2007-11-22 17:16:07 +0000 |
commit | aab21c2dc81e5ba7bce33f87ff96fd5b398f1bf9 (patch) | |
tree | 036a0dc5894384e521fb7d0720d84eb2d3dc74f0 | |
parent | cbc9b3c3baaa762af450df11c8cad36111458d96 (diff) | |
download | scala-aab21c2dc81e5ba7bce33f87ff96fd5b398f1bf9.tar.gz scala-aab21c2dc81e5ba7bce33f87ff96fd5b398f1bf9.tar.bz2 scala-aab21c2dc81e5ba7bce33f87ff96fd5b398f1bf9.zip |
Added android-library target in the build file,...
Added android-library target in the build file, and special ScalaObect
which has no @remote attribute (no RMI on android).
-rw-r--r-- | build.xml | 209 | ||||
-rw-r--r-- | src/android-library/scala/ScalaObject.scala | 22 |
2 files changed, 229 insertions, 2 deletions
@@ -50,11 +50,13 @@ PROPERTIES <property name="locker.dir" value="${build.dir}/locker"/> <property name="quick.dir" value="${build.dir}/quick"/> <property name="strap.dir" value="${build.dir}/strap"/> + <property name="optimised.dir" value="${build.dir}/optimised"/> <property name="api-lib.dir" value="${build.dir}/api-library"/> <property name="api-comp.dir" value="${build.dir}/api-compiler"/> <property name="tooldocs.dir" value="${build.dir}/tooldocs"/> <property name="examples.dir" value="${build.dir}/examples"/> <property name="cldc.dir" value="${build.dir}/cldc"/> + <property name="android.dir" value="${build.dir}/android"/> <property name="msil.dir" value="${build.dir}/msil"/> <property name="mono.dir" value="${src.dir}/mono"/> <!-- Sets location and structure of the distribution --> @@ -574,7 +576,7 @@ BUILD QUICK-TEST LAYER /> <!-- Build partest --> <mkdir dir="${quick.dir}/lib/partest"/> - <starr + <locker srcdir="${src.dir}/partest" destdir="${quick.dir}/lib/partest" addparams="${nsc.params}" @@ -584,7 +586,7 @@ BUILD QUICK-TEST LAYER <pathelement location="${quick.dir}/lib/compiler"/> <pathelement location="${quick.dir}/lib/actors"/> </classpath> - </starr> + </locker> <echo file="${quick.dir}/lib/partest/${par.prop.name}" message="version.number=${version.number}${line.separator}" @@ -799,6 +801,78 @@ CLDC </target> <!-- =========================================================================== +ANDROID +============================================================================ --> + + <target name="android.sources" + description="Create the source directory for Android library" + > + <mkdir dir="${android.dir}/src"/> + + <copy todir="${android.dir}/src"> + <fileset dir="${src.dir}/library" includes="**/*.scala, **/*.java"> + <not> + <present targetdir="${src.dir}/android-library"/> + </not> + </fileset> + </copy> + + <copy todir="${android.dir}/src"> + <fileset dir="${src.dir}/android-library"> + <include name="**/*.scala"/> + <include name="**/*.java"/> + </fileset> + </copy> + </target> + + <target name="android.lib" + depends="setup.quick, android.sources" + description="Builds the Scala library for Android"> + <fail message="Android home is not set or could not find android.jar in ${android.home}"> + <condition><not> + <available file="${android.home}/android.jar"/> + </not></condition> + </fail> + + <mkdir dir="${android.dir}"/> + <echo message="android.home=${android.home}"/> + + <quick + srcdir="${android.dir}/src" + destdir="${android.dir}" + usepredefs="no" + addparams="${nsc.params}" + extdirs="" + scalacdebugging="${nsc.log-files}" + > + <bootclasspath> + <pathelement location="${android.home}/android.jar"/> + <pathelement location="${quick.dir}/lib/library"/> + </bootclasspath> + <include name="scala/Predef.scala"/> + </quick> + + <quick + srcdir="${android.dir}/src" + destdir="${android.dir}" + extdirs="" + addparams="${nsc.params}" + scalacdebugging="${nsc.log-files}" + > + <bootclasspath> + <pathelement location="${android.home}/android.jar"/> + <pathelement location="${quick.dir}/lib/library"/> + </bootclasspath> + <classpath> + <pathelement location="${android.dir}"/> + </classpath> + <include name="**/*.scala"/> + <exclude name="scala/Predef.scala"/> + <excludesfile name="${nsc.excludes}" if="excludes.avail"/> + </quick> + </target> + +<!-- =========================================================================== MSIL ============================================================================ --> @@ -917,6 +991,137 @@ MSIL </target> <!-- =========================================================================== +OPTIMIZE +============================================================================ --> + <target name="optimised" depends="build.optimised" + description="Build the compiler with optimizations on."/> + + <!-- Build the bootstrap layer --> + <target name="build.optimised" depends="setup.quick"> + <stopwatch name="timer.optimised"/> + <!-- Build library --> + <mkdir dir="${optimised.dir}/lib/library"/> + <javac + srcdir="${src.dir}/library" + destdir="${optimised.dir}/lib/library" + source="1.4" target="1.4" deprecation="yes" + classpath="${optimised.dir}/lib/library" + includes="**/*.java"/> + <quick + srcdir="${src.dir}/library" + destdir="${optimised.dir}/lib/library" + usepredefs="no" addparams="${nsc.params}" + deprecation="yes" unchecked="yes" + optimise="yes" + classpath="${optimised.dir}/lib/library" + includes="scala/Predef.scala"/> + <quick + srcdir="${src.dir}/library" + destdir="${optimised.dir}/lib/library" + addparams="${nsc.params}" + optimise="yes" + deprecation="yes" unchecked="yes" + classpath="${optimised.dir}/lib/library"> + <include name="**/*.scala"/> + <exclude name="scala/Predef.scala"/> + <exclude name="scala/dbc/**"/> + <exclude name="scala/actors/**"/> + <excludesfile name="${nsc.excludes.file}" if="excludes.avail"/> + </quick> + <echo + file="${optimised.dir}/lib/library/${lib.prop.name}" + message="version.number=${version.number}${line.separator}" + append="false" + /> + <echo + file="${optimised.dir}/lib/library/${lib.prop.name}" + message="copyright.string=${copyright.string}${line.separator}" + append="true" + /> + <!-- Build compiler --> + <mkdir dir="${optimised.dir}/lib/compiler"/> + <quick + srcdir="${src.dir}" + destdir="${optimised.dir}/lib/compiler" + optimise="yes" + addparams="${nsc.params}"> + <classpath> + <pathelement location="${optimised.dir}/lib/library"/> + <pathelement location="${optimised.dir}/lib/compiler"/> + <pathelement location="${fjbg.jar}"/> + <pathelement location="${msil.jar}"/> + <pathelement location="${ant.jar}"/> + <pathelement location="${jline.jar}"/> + </classpath> + <include name="compiler/**/*.scala"/> + <include name="library/scala/List.scala"/> + <excludesfile name="${nsc.excludes.file}" if="excludes.avail"/> + </quick> + <echo + file="${optimised.dir}/lib/compiler/${comp.prop.name}" + message="version.number=${version.number}${line.separator}" + append="false" + /> + <echo + file="${optimised.dir}/lib/compiler/${comp.prop.name}" + message="copyright.string=${copyright.string}${line.separator}" + append="true" + /> + <!-- Timing the build --> + <stopwatch name="timer.strap" action="total"/> + <!-- Copy support files to build folder and links external libraries--> + <build.support build.dir="${optimised.dir}"/> + <build.links build.dir="${optimised.dir}"/> + <!-- Build executable files --> + <taskdef + name="straptool" + classname="scala.tools.ant.ScalaTool" + classpathref="quick.classpath"/> + <mkdir dir="${optimised.dir}/bin"/> + <straptool + file="${optimised.dir}/bin/${scala.exec.name}" + version="${version.number}" + copyright="${copyright.string}" + name="Scala code runner" + class="scala.tools.nsc.MainGenericRunner" + javaFlags="${java.flags}"/> + <straptool + file="${optimised.dir}/bin/${scalac.exec.name}" + name="Scala compiler" + class="scala.tools.nsc.Main" + version="${version.number}" + copyright="${copyright.string}" + javaFlags="${java.flags}"/> + <straptool + file="${optimised.dir}/bin/${scaladoc.exec.name}" + name="Scala doc generator" + class="scala.tools.nsc.Main" + toolflags="-Ydoc" + version="${version.number}" + copyright="${copyright.string}" + javaFlags="${java.flags}"/> + <straptool + file="${optimised.dir}/bin/${fsc.exec.name}" + name="Fast Scala compiler" + class="scala.tools.nsc.CompileClient" + version="${version.number}" + copyright="${copyright.string}"/> + <chmod perm="ugo+rx" + file="${optimised.dir}/bin/${scalac.exec.name}"/> + <chmod perm="ugo+rx" + file="${optimised.dir}/bin/${scala.exec.name}"/> + <chmod perm="ugo+rx" + file="${optimised.dir}/bin/${scaladoc.exec.name}"/> + <chmod perm="ugo+rx" + file="${optimised.dir}/bin/${fsc.exec.name}"/> + <fixcrlf + srcdir="${optimised.dir}/bin" + eol="dos" + includes="**/*.bat"/> + </target> + + +<!-- =========================================================================== TEST ============================================================================ --> diff --git a/src/android-library/scala/ScalaObject.scala b/src/android-library/scala/ScalaObject.scala new file mode 100644 index 0000000000..17777b8561 --- /dev/null +++ b/src/android-library/scala/ScalaObject.scala @@ -0,0 +1,22 @@ +/* __ *\ +** ________ ___ / / ___ Scala API ** +** / __/ __// _ | / / / _ | (c) 2002-2007, LAMP/EPFL ** +** __\ \/ /__/ __ |/ /__/ __ | http://scala-lang.org/ ** +** /____/\___/_/ |_/____/_/ | | ** +** |/ ** +\* */ + +// $Id: ScalaObject.scala 10059 2007-02-20 16:37:44Z michelou $ + + +package scala + + +trait ScalaObject extends AnyRef { + + /** This method is needed for optimizing pattern matching expressions + * which match on constructors of case classes. + */ + def $tag(): Int = 0 + +} |