Permalink
Browse files

merge upstream

  • Loading branch information...
2 parents f7830e0 + 4d9e4e4 commit 882bee32a0cdbe048e862e6eeb93172b7b5105de Kyle Maxwell committed Aug 6, 2010
View
@@ -60,20 +60,19 @@ sleep).
In theory, building is as simple as
- $ ant
+ $ sbt clean update package-dist
but there are some pre-requisites. You need:
- java 1.6
-- ant 1.7
+- sbt 0.7.4
- thrift 0.2.0
In addition, the tests require a local mysql instance to be running, and for `DB_USERNAME` and
-`DB_PASSWORD` env vars to contain login info for it. You can skip the tests if you want:
+`DB_PASSWORD` env vars to contain login info for it. You can skip the tests if you want (but you
+should feel a pang of guilt):
- $ ant -Dskip.test=1
-
-There should be support for building with sbt "soon".
+ $ NO_TESTS=1 sbt package-dist
# Running
View
@@ -1,71 +0,0 @@
-<project xmlns:ivy="antlib:org.apache.ivy.ant">
-
- <!-- defaults for all projects -->
- <property name="source.dir" value="${basedir}/src/main" />
- <property name="test.source.dir" value="${basedir}/src/test" />
- <property name="target.dir" value="${basedir}/target" />
-
- <property environment="env" />
-
- <property name="ivy.install.version" value="2.1.0-rc2" />
- <property name="ivy.jar.dir" value="${user.home}/.ivy2" />
- <property name="ivy.jar.file" value="${ivy.jar.dir}/ivy-${ivy.install.version}.jar" />
- <property name="jsch.install.version" value="0.1.29" />
- <property name="jsch.jar.file" value="${ivy.jar.dir}/jsch-${jsch.install.version}.jar" />
-
- <!--
- download ivy from the web site so that it can be used without being
- installed. if the file has already been downloaded, we use a rename
- trick to avoid hitting the website again. (that would be annoying
- when building offline.)
- -->
- <target name="download-ivy" unless="skip.download">
- <mkdir dir="${ivy.jar.dir}"/>
- <condition property="ivy.url" value="file:${ivy.jar.file}">
- <available file="${ivy.jar.file}" />
- </condition>
- <property name="ivy.url" value="http://repo1.maven.org/maven2/org/apache/ivy/ivy/${ivy.install.version}/ivy-${ivy.install.version}.jar" />
- <get src="${ivy.url}" dest="${ivy.jar.file}.download" usetimestamp="true" />
- <move file="${ivy.jar.file}.download" tofile="${ivy.jar.file}" />
-
- <condition property="jsch.url" value="file:${jsch.jar.file}">
- <available file="${jsch.jar.file}" />
- </condition>
- <property name="jsch.url" value="http://repo1.maven.org/maven2/jsch/jsch/${jsch.install.version}/jsch-${jsch.install.version}.jar" />
- <get src="${jsch.url}" dest="${jsch.jar.file}.download" usetimestamp="true" />
- <move file="${jsch.jar.file}.download" tofile="${jsch.jar.file}" />
- </target>
-
- <!-- import ivy's ant tasks -->
- <target name="install-ivy" depends="download-ivy">
- <path id="ivy.lib.path">
- <fileset dir="${ivy.jar.dir}" includes="ivy-${ivy.install.version}.jar jsch-${jsch.install.version}.jar"/>
- </path>
- <taskdef resource="org/apache/ivy/ant/antlib.xml" uri="antlib:org.apache.ivy.ant" classpathref="ivy.lib.path" />
- </target>
-
- <!-- define filename-friendly names for the OS variants -->
- <condition property="os.libsname" value="osx">
- <os name="Mac OS X" />
- </condition>
- <condition property="os.jni.ext" value="jnilib">
- <os name="Mac OS X" />
- </condition>
- <condition property="os.libsname" value="linux">
- <os name="Linux" />
- </condition>
- <condition property="os.jni.ext" value="so">
- <os name="Linux" />
- </condition>
-
- <!-- where to look for the ivy config -->
- <property name="ivy.dep.file" value="${basedir}/ivy/ivy.xml" />
- <property name="ivy.settings.file" value="${basedir}/ivy/ivysettings.xml" />
-
- <import file="clean.xml" />
- <import file="prepare.xml" />
- <import file="compile.xml" />
- <import file="test.xml" />
- <import file="docs.xml" />
- <import file="package.xml" />
-</project>
View
@@ -1,20 +0,0 @@
-<project xmlns:ivy="antlib:org.apache.ivy.ant">
-
- <target name="clean" depends="init" description="erase built files and targets">
- <delete dir="${target.dir}" />
- <delete dir="${dist.dir}" />
- <!-- i dont think this is really a good idea: -->
- <!-- delete dir="${ivy.jar.dir}/cache/${ivy.organisation}" /-->
- </target>
-
- <target name="clean-ivy" depends="prepare" description="erase ivy cache of downloaded packages">
- <ivy:cleancache />
- </target>
-
- <target name="clean-jni" depends="prepare" description="clean out any built jni targets" if="build.jni">
- <ant dir="src/main/jni" target="clean" />
- </target>
-
- <target name="distclean" depends="clean, clean-jni, clean-ivy" />
-
-</project>
View
@@ -1,226 +0,0 @@
-<project xmlns:ivy="antlib:org.apache.ivy.ant">
-
- <property name="thrift.source.dir" value="${source.dir}/thrift" />
- <property name="thrift.target.dir" value="${target.dir}/gen-java" />
-
-
- <!-- generate thrift stubs if necessary -->
-
- <macrodef name="generate-thrift">
- <sequential>
- <pathconvert property="thrift.gen.path">
- <path location="${ivy.extra.thriftpackage}" />
- <unpackagemapper from="${basedir}/*" to="${thrift.target.dir}/*" />
- </pathconvert>
- <mkdir dir="${thrift.target.dir}" />
- <property name="thrift.bin" value="thrift" />
- <apply executable="${thrift.bin}" dest="${thrift.gen.path}" failonerror="true"
- skipemptyfilesets="true" verbose="true">
- <arg value="--gen" />
- <arg value="java" />
- <arg value="--gen" />
- <arg value="rb" />
- <arg value="-o" />
- <arg value="${target.dir}" />
- <arg value="" />
- <fileset dir="${thrift.source.dir}" includes="**/*.thrift" />
- <mergemapper from="*.thrift" to="${target.dir}/thrift-run" />
- </apply>
- <touch file="${target.dir}/thrift-run" />
- </sequential>
- </macrodef>
-
- <macrodef name="compile-generated-thrift">
- <sequential>
- <javac srcdir="${thrift.target.dir}" destdir="${target.dir}/classes" deprecation="on">
- <classpath>
- <path refid="deps.path" />
- </classpath>
- <include name="**/*.java" />
- </javac>
- </sequential>
- </macrodef>
-
- <target name="compile-thrift" if="build.thrift">
- <generate-thrift />
- <compile-generated-thrift />
- </target>
-
-
- <!-- if there's any jni, compile it -->
-
- <target name="check-jni-source" if="build.jni">
- <!-- tricksy. remove any target files if any non-target files are newer. -->
- <dependset>
- <srcfileset dir="src/main/jni" excludes="**/target/*.${os.jni.ext} **/target/*.jar" />
- <targetfileset dir="src/main/jni" includes="**/target/*.${os.jni.ext} **/target/*.jar" />
- </dependset>
- <!-- and then only set build.jni.ok if those targets are "older" than build.xml (ie missing) -->
- <uptodate property="build.jni.ok" targetfile="src/main/jni/build.xml">
- <srcfiles dir="src/main/jni" includes="**/target/*.${os.jni.ext} **/target/*.jar" />
- </uptodate>
- </target>
-
- <target name="compile-jni" depends="check-jni-source" if="build.jni.ok">
- <ant dir="src/main/jni" target="compile" inheritAll="false" />
- </target>
-
- <target name="install-jni" depends="compile-jni" if="build.jni">
- <copy todir="${dist.dir}" flatten="true">
- <fileset dir="src/main/jni" includes="**/target/*.${os.jni.ext}" />
- <fileset dir="src/main/jni" includes="**/target/*.jar" />
- </copy>
- </target>
-
- <!-- compile old-skool java -->
-
- <target name="compile-java" if="build.java">
- <javac srcdir="${source.dir}/java" destdir="${target.dir}/classes" deprecation="on">
- <classpath>
- <path refid="deps.path" />
- </classpath>
- <include name="**/*.java" />
- </javac>
- </target>
-
-
- <!-- compile scala -->
-
- <target name="compile-scala" if="build.scala">
- <scalac srcdir="${source.dir}/scala" destdir="${target.dir}/classes" force="changed" deprecation="on" unchecked="on">
- <classpath>
- <path refid="deps.path" />
- </classpath>
- <include name="**/*.scala" />
- </scalac>
- </target>
-
-
- <!-- create properties file with build info -->
-
- <condition property="use.git" value="yes">
- <available file=".git" />
- </condition>
-
- <condition property="use.hg" value="yes">
- <available file=".hg" />
- </condition>
-
- <condition property="use.svn" value="yes">
- <available file=".svn" />
- </condition>
-
- <target name="find-git-revision" if="use.git">
- <!-- ask git for the current "head" commit-id, for memoizing inside the built jar -->
- <exec outputproperty="revision" executable="git" failifexecutionfails="false">
- <arg value="rev-parse" />
- <arg value="HEAD" />
- </exec>
- <exec executable="git" failifexecutionfails="false">
- <arg value="rev-parse" />
- <arg value="HEAD" />
- <redirector outputproperty="revision-short">
- <outputfilterchain>
- <tokenfilter>
- <filetokenizer />
- <replaceregex pattern="(.{8}).*" replace="\1"/>
- </tokenfilter>
- </outputfilterchain>
- </redirector>
- </exec>
- </target>
-
- <target name="find-hg-revision" if="use.hg">
- <!-- ask hg for the current "tip" commit-id, for memoizing inside the built jar -->
- <exec outputproperty="revision" executable="hg" failifexecutionfails="false">
- <arg value="tip" />
- <arg value="--template" />
- <arg value="{node}" />
- </exec>
- <exec executable="hg" failifexecutionfails="false">
- <arg value="tip" />
- <arg value="--template" />
- <arg value="{node}" />
- <redirector outputproperty="revision-short">
- <outputfilterchain>
- <tokenfilter>
- <filetokenizer />
- <replaceregex pattern="(.{8}).*" replace="\1"/>
- </tokenfilter>
- </outputfilterchain>
- </redirector>
- </exec>
- </target>
-
- <target name="find-svn-revision" if="use.svn">
- <!-- ask svnversion for the revisions in the working copy, for memoizing inside the built jar -->
- <exec outputproperty="revision" executable="svnversion" failifexecutionfails="false"/>
- <exec outputproperty="revision-short" executable="svnversion" failifexecutionfails="false"/>
- </target>
-
- <target name="find-revision" depends="find-git-revision, find-hg-revision, find-svn-revision" />
-
- <target name="write-build-info" depends="init, find-revision" if="ivy.extra.buildpackage">
- <tstamp>
- <format property="build.timestamp.time" pattern="yyyyMMdd-HHmmss" />
- <format property="build.timestamp.date" pattern="yyyyMMdd" />
- </tstamp>
- <pathconvert property="build.properties.path">
- <path location="${ivy.extra.buildpackage}" />
- <unpackagemapper from="${basedir}/*" to="${target.dir}/classes/*" />
- </pathconvert>
- <propertyfile file="${build.properties.path}/build.properties">
- <entry key="name" value="${ivy.module}" />
- <entry key="version" value="${ivy.revision}" />
- <entry key="build_name" value="${build.timestamp.time}" />
- <entry key="build_revision" value="${revision}" />
- </propertyfile>
- </target>
-
-
- <!-- copy resources needed by tests and jar -->
-
- <target name="copy-resources">
- <copy todir="${dist.dir}/libs" flatten="true">
- <path refid="deps.path" />
- </copy>
- <copy todir="${target.dir}/test-classes/" failonerror="false">
- <fileset dir="${test.source.dir}/resources" />
- </copy>
- <copy todir="${target.dir}/classes/" overwrite="true" failonerror="false">
- <fileset dir="${source.dir}/resources" />
- </copy>
- </target>
-
- <target name="copy-config" if="copy.config">
- <copy todir="${dist.dir}/config">
- <fileset dir="${basedir}/config" />
- </copy>
- </target>
-
- <target name="copy-extra-config" if="config.extra">
- <copy todir="${dist.dir}/config">
- <fileset dir="${config.extra}" />
- </copy>
- </target>
-
- <target name="copy-extra-libs" if="libs.extra">
- <copy todir="${dist.dir}/libs">
- <path refid="libs.extra" />
- </copy>
- </target>
-
- <target name="copy-extra-dist" if="dist.extra">
- <copy todir="${dist.dir}">
- <path refid="dist.extra" />
- </copy>
- </target>
-
- <target name="copy-extra" depends="copy-resources, copy-config, copy-extra-config, copy-extra-libs, copy-extra-dist" />
-
-
- <target name="compile" depends="prepare, find-source, compile-thrift, check-jni-source, compile-jni,
- install-jni, compile-java, compile-scala, write-build-info, copy-extra"
- description="compile java and scala code" />
-
-</project>
View
@@ -1,35 +0,0 @@
-<project xmlns:ivy="antlib:org.apache.ivy.ant">
-
- <target name="vscaladoc" depends="prepare" unless="skip.docs">
- <delete dir="${docs.target.dir}/scaladoc" />
- <mkdir dir="${docs.target.dir}/scaladoc" />
- <pathconvert property="doc.sources" pathsep=" ">
- <fileset dir="${source.dir}" includes="**/*.scala" />
- </pathconvert>
- <path id="docs.path">
- <path refid="bootstrap.path" />
- <pathelement location="${target.dir}/classes" />
- </path>
- <echo message="Building vscaladoc..." />
- <java classname="org.scala_tools.vscaladoc.Main" fork="true" failonerror="true">
- <classpath>
- <path refid="bootstrap.path" />
- </classpath>
- <arg value="-classpath" />
- <arg pathref="docs.path" />
- <arg value="-d" />
- <arg value="${docs.target.dir}/scaladoc" />
- <arg value="-sourcepath" />
- <arg value="${source.dir}/scala" />
- <arg value="-windowtitle" />
- <arg value="${ivy.module} ${ivy.revision}" />
- <arg value="-doctitle" />
- <arg value="${ivy.module} ${ivy.revision}" />
- <arg value="-linksource" />
- <arg line="${doc.sources}" />
- </java>
- </target>
-
- <target name="docs" depends="prepare,vscaladoc" unless="skip.docs" description="build source documentation" />
-
-</project>
Oops, something went wrong.

0 comments on commit 882bee3

Please sign in to comment.