diff options
Diffstat (limited to 'libre/closure-compiler/build.xml')
-rw-r--r-- | libre/closure-compiler/build.xml | 320 |
1 files changed, 320 insertions, 0 deletions
diff --git a/libre/closure-compiler/build.xml b/libre/closure-compiler/build.xml new file mode 100644 index 000000000..9c351ad10 --- /dev/null +++ b/libre/closure-compiler/build.xml @@ -0,0 +1,320 @@ +<!-- + Copyright 2009 Google Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> +<project name="compiler" basedir="." default="jar"> + + <!-- + Use -Dtest.class to change what tests are run on the command-line. + i.e., -Dtest.class=CommandLineRunnerTest will run just that test class. + --> + <property name="test.class" value="*Test"/> + + <!-- Use -Dtest.method in conjunction with the one-test rule. --> + <property name="test.method" value=""/> + + <!-- + Use -Dtest.fork to specify whether or not to fork the process. + Some machines run better with forking turned off. + --> + <property name="test.fork" value="true"/> + + <!-- Force java 7 --> + <property name="ant.build.javac.source" value="1.7" /> + <property name="ant.build.javac.target" value="1.7" /> + + <!-- define other variables --> + <property name="javac.debug" value="on" /> + <property name="src.dir" value="${basedir}/src" /> + <property name="gen.dir" value="${basedir}/gen" /> + <property name="test.dir" value="${basedir}/test" /> + <property name="externs.dir" value="${basedir}/externs" /> + <!-- To workaround Ant limitation on overriding properties set on the + command-line, define a unique property to allow "build.dir" to + be change without forcing the build of Rhino to the same directory. + --> + <property name="closure.build.dir" value="${basedir}/build" /> + <property name="build.dir" value="${closure.build.dir}" /> + <property name="buildlib.dir" value="${build.dir}/lib" /> + <property name="classes.dir" value="${build.dir}/classes" /> + <property name="testClasses.dir" value="${build.dir}/test" /> + <property name="javadoc.dir" value="${build.dir}/javadoc" /> + <property name="lib.dir" value="${basedir}/lib" /> + <property name="tools.dir" value="${basedir}/tools" /> + <property name="compiler-jarfile" + value="${build.dir}/${ant.project.name}.jar" /> + <property name="linter-jarfile" + value="${build.dir}/linter.jar" /> + + <!-- The following server is used to deploy releases to maven central via Sonatypes + publishing service which runs on oss.sonatype.org. + + You will need to have an account on sonatype.org to push releases. You can + override these values if you want to deploy to a different repository + --> + <property name="maven-repository-url" value="https://oss.sonatype.org/service/local/staging/deploy/maven2/" /> + <property name="maven-repository-id" value="sonatype-nexus-staging" /> + + <!-- proto compiler used to generate java classes from .proto files --> + <property name="protoc.executable" value="protoc"/> + + <property file="build.properties" /> + + <!-- gather release version --> + <target name="relversion"> + <exec outputproperty="build.relVersion" + executable="echo" + failonerror="false" + failifexecutionfails="false" + dir="."> + <arg value="1.0-SNAPSHOT" /> + </exec> + </target> + + <target name="protobuf-gen"> + <fileset dir="${src.dir}" id="proto.classpath"> + <include name="**/*.proto"/> + </fileset> + <pathconvert property="protofiles" pathsep=" " refid="proto.classpath"/> + <echo message="${protoc.executable} -I ${src.dir} --java_out=${gen.dir} ${protofiles}"/> + <exec executable="${protoc.executable}" searchpath="true"> + <arg line="-I ${src.dir}"/> + <arg line="--java_out=${gen.dir}"/> + <arg line="${protofiles}"/> + </exec> + </target> + + <!-- set the classpath for the project --> + <!-- this includes the generated source class files --> + <!-- and every jar in the /lib directory --> + + <path id="srcclasspath.path"> + <pathelement location="${classes.dir}" /> + <fileset dir="${lib.dir}"> + <include name="args4j.jar"/> + <include name="guava.jar"/> + <include name="gson.jar"/> + <include name="jsinterop.jar"/> + <include name="jsr305.jar"/> + <include name="protobuf-java.jar"/> + </fileset> + </path> + + <path id="allclasspath.path"> + <pathelement location="${classes.dir}" /> + <fileset dir="${lib.dir}"> + <include name="*.jar"/> + </fileset> + </path> + + <target name="clean" description="delete generated files"> + <delete dir="${build.dir}" /> + </target> + + <target name="compile" + description="compile the source code" + depends="relversion"> + <mkdir dir="${classes.dir}" /> + <javac srcdir="${gen.dir}" + destdir="${classes.dir}" + debug="${javac.debug}" + deprecation="on" + includeantruntime="false" + encoding="utf-8"> + <classpath refid="srcclasspath.path" /> + <compilerarg value="-Xlint:unchecked"/> + </javac> + <javac srcdir="${src.dir}" + destdir="${classes.dir}" + excludes="**/debugger/**,**/gwt/**,**/super/**,**/refactoring/**,**/testing/**,**/webservice/**" + debug="${javac.debug}" + deprecation="on" + includeantruntime="true" + encoding="utf-8"> + <classpath refid="srcclasspath.path" /> + <compilerarg value="-Xlint:unchecked"/> + </javac> + + <!-- Move Messages.properties where ScriptRuntime.java expects it. --> + <copy file="${src.dir}/com/google/javascript/rhino/Messages.properties" + todir="${classes.dir}/com/google/javascript/rhino/" /> + + <!-- Move ParserConfig.properties where ParserRunner.java expects it. --> + <copy file="${src.dir}/com/google/javascript/jscomp/parsing/ParserConfig.properties" + todir="${classes.dir}/com/google/javascript/jscomp/parsing" /> + + <propertyfile + file="${classes.dir}/com/google/javascript/jscomp/parsing/ParserConfig.properties" + comment="Parser properties"> + <entry key="compiler.date" type="date" value="now"/> + <entry key="compiler.version" value="${build.relVersion}"/> + </propertyfile> + + <!-- Move the runtime libraries where the compiler expects them. --> + <mkdir dir="${classes.dir}/com/google/javascript/jscomp/js" /> + <copy todir="${classes.dir}/com/google/javascript/jscomp/js"> + <fileset dir="${src.dir}/com/google/javascript/jscomp/js" /> + </copy> + + <!-- Zip the externs and move them to the classes folder --> + <zip destfile="${classes.dir}/externs.zip" basedir="${externs.dir}" includes="**/*.js" /> + </target> + + <target name="jar" + depends="compile" + description="package compiler as an executable jar"> + <jar destfile="${compiler-jarfile}" update="true"> + <fileset dir="${classes.dir}" /> + <zipfileset src="${lib.dir}/args4j.jar"/> + <zipfileset src="${lib.dir}/guava.jar"/> + <zipfileset src="${lib.dir}/gson.jar"/> + <zipfileset src="${lib.dir}/jsr305.jar"/> + <zipfileset src="${lib.dir}/protobuf-java.jar"/> + + <manifest> + <attribute name="Main-Class" + value="com.google.javascript.jscomp.CommandLineRunner" /> + </manifest> + </jar> + </target> + + <target name="linter" + depends="compile" + description="package linter as an executable jar"> + <jar destfile="${linter-jarfile}" update="true"> + <fileset dir="${classes.dir}" /> + <zipfileset src="${lib.dir}/args4j.jar"/> + <zipfileset src="${lib.dir}/guava.jar"/> + <zipfileset src="${lib.dir}/gson.jar"/> + <zipfileset src="${lib.dir}/jsr305.jar"/> + <zipfileset src="${lib.dir}/protobuf-java.jar"/> + + <manifest> + <attribute name="Main-Class" + value="com.google.javascript.jscomp.Linter" /> + </manifest> + </jar> + </target> + + <target name="compile-tests" + depends="compile" + description="compile the JUnit tests"> + <mkdir dir="${testClasses.dir}" /> + <javac srcdir="${src.dir}" + destdir="${testClasses.dir}" + excludes="**/debugger/**,**/gwt/**,**/super/**" + debug="on" + deprecation="on" + includeantruntime="false" + encoding="utf-8"> + <classpath refid="allclasspath.path" /> + <compilerarg value="-Xlint:unchecked"/> + </javac> + <javac srcdir="${test.dir}" + destdir="${testClasses.dir}" + excludes=".svn,.git,**/debugger/**,**/gwt/**" + debug="on" + deprecation="on" + includeantruntime="false" + encoding="utf-8"> + <classpath refid="allclasspath.path" /> + <compilerarg value="-Xlint:unchecked"/> + </javac> + </target> + + <target name="all-classes-jar" + depends="compile,compile-tests" + description="package the compiler and its tests into one jar"> + <jar destfile="${compiler-jarfile}" update="true"> + <fileset dir="${testClasses.dir}" /> + <zipgroupfileset dir="${lib.dir}" includes="*.jar"/> + </jar> + </target> + + <target name="test" + depends="compile-tests" + description="Compile and execute the JUnit tests."> + <mkdir dir="build/testoutput"/> + <junit printsummary="on" fork="${test.fork}" + forkmode="once" showoutput="true" + dir="${basedir}" + failureproperty="junit.failure"> + <classpath refid="allclasspath.path" /> + <classpath> + <pathelement location="${build.dir}/test" /> + </classpath> + <batchtest todir="build/testoutput"> + <formatter type="brief" usefile="false" /> + <formatter type="xml" /> + <fileset dir="${build.dir}/test"> + <include name="**/${test.class}.class" /> + </fileset> + </batchtest> + </junit> + <junitreport> + <fileset dir="build/testoutput" includes="*.xml"/> + <report todir="build/testoutput"/> + </junitreport> + <fail if="junit.failure" + message="Unit tests failed. See build/testoutput/index.html" /> + </target> + + <target name="one-test" + depends="compile-tests" + description="Compile and execute one JUnit test + specified with -Dtest.class and -Dtest.method."> + <mkdir dir="build/testoutput"/> + <junit printsummary="on" fork="${test.fork}" + forkmode="once" showoutput="true" + dir="${basedir}" + failureproperty="junit.failure"> + <classpath refid="allclasspath.path" /> + <classpath> + <pathelement location="${build.dir}/test" /> + </classpath> + <test todir="build/testoutput" name="${test.class}" methods="${test.method}"> + <formatter type="brief" usefile="false" /> + <formatter type="xml" /> + </test> + </junit> + <junitreport> + <fileset dir="build/testoutput" includes="*.xml"/> + <report todir="build/testoutput"/> + </junitreport> + <fail if="junit.failure" + message="Unit tests failed. See build/testoutput/index.html" /> + </target> + + <target name="javadoc" + description="generate Javadoc"> + <mkdir dir="${javadoc.dir}" /> + <javadoc + destdir="${javadoc.dir}" + author="false" + protected="true" + windowtitle="Closure Compiler" + additionalparam=" -notimestamp " + encoding="utf-8"> + <fileset dir="${basedir}" defaultexcludes="yes"> + <include name="src/**/*.java"/> + <include name="gen/**/*.java"/> + <exclude name="**/debugger/**"/> + <exclude name="**/gwt/**"/> + <exclude name="**/super/**"/> + <exclude name="**/testing/**"/> + </fileset> + <classpath refid="allclasspath.path" /> + </javadoc> + </target> +</project> |