<project name="Antlr3JavaScriptRuntime" basedir=".." default="build"> <description> Build procedure and task automation for the ANTLR JavaScript target. </description> <property name="build.dir" value="${basedir}/build" /> <property name="out.dir" value="${build.dir}/out" /> <property name="lib.dir" value="${basedir}/lib" /> <property name="doc.dir" value="${basedir}/doc" /> <property name="test.dir" value="${basedir}/tests" /> <property name="src.dir" value="${basedir}/src" /> <property name="third.dir" value="${basedir}/third" /> <property file="${build.dir}/antlr3.properties" /> <taskdef file="${third.dir}/antcontrib.properties" classpath="${third.dir}/ant-contrib-1.0b3.jar" /> <!-- ******* --> <!-- LIBRARY --> <!-- ******* --> <target name="build" depends="-init" description="Build ANTLR JavaScript runtime library."> <antcall target="-make-debug" /> <antcall target="-make-min" /> <!--<antcall target="-make-docs" />--> <antcall target="-del-build" /> </target> <!-- Make uncompressed JS runtime files --> <target name="-make-debug"> <!-- no file name suffix for debug files --> <property name="debugormin" value="" /> <antcall target="-make-packages" inheritall="true" /> </target> <!-- Make compressed JS files --> <target name="-make-min"> <property name="debugormin" value="-min" /> <antcall target="-make-packages" inheritall="true" /> </target> <!-- Make each package defined in atlr3.list --> <target name="-make-packages"> <property name="pkg" value="" /> <foreach list="${antlr3.list}" target="-make-package" param="pkg" inheritall="true" /> </target> <!-- Create a package --> <target name="-make-package"> <var name="package" value="${pkg}" /> <property name="dest" value="${lib.dir}/antlr3-${package}${debugormin}.js" /> <propertycopy property="list" from="antlr3.${package}.list" override="true" /> <propertyregex property="list" input="${list}" regexp=" +" replace="" override="true" /> <concat destfile="${dest}"> <filelist dir="${src.dir}" files="${list}" /> </concat> <if> <equals arg1="${debugormin}" arg2="-min" /> <then> <antcall target="-compress" inheritall="true" /> </then> </if> <antcall target="-add-license" inheritall="true" /> </target> <!-- Compress JavaScript using Closure Compiler --> <target name="-compress"> <java fork="true" jar="${third.dir}/compiler.jar"> <arg line="--js" /> <arg value="${dest}" /> <arg line="--js_output_file" /> <arg line="${dest}.tmp" /> </java> <move file="${dest}.tmp" tofile="${dest}" /> </target> <!-- insert required legaleze at the top of a file --> <target name="-add-license"> <property name="tmp-file" value="${dest}.tmp" /> <move file="${dest}" tofile="${tmp-file}" /> <concat destfile="${dest}"> <header file="${build.dir}/${antlr3.license}" /> <fileset file="${tmp-file}" /> </concat> <delete file="${tmp-file}" /> </target> <!-- delete build directory --> <target name="-del-build"> <delete dir="${out.dir}" /> </target> <!-- ***** --> <!-- TESTS --> <!-- ***** --> <target name="compile-tests" depends="build" description="Compile all test grammars."> <foreach target="-compile-test-class" param="testdirectory" inheritall="true"> <path> <dirset dir="${test.dir}" includes="*" excludes="README" /> </path> </foreach> </target> <target name="-compile-test-class" > <foreach target="-compile-single-test" param="grammar" inheritall="true"> <path> <fileset dir="${testdirectory}" includes="*.g" excludes="*__.g" /> </path> </foreach> </target> <target name="-compile-single-test"> <!-- turn on antlr tracing if necessary --> <var name="g" value="${grammar}" /> <loadfile property="g-contents" srcfile="${g}" /> <var name="opt" value="" /> <property name="trace-key" value="// @@ANTLR Tool Options@@: -trace" /> <if> <contains string="${g-contents}" substring="${trace-key}" /> <then> <var name="opt" value="-trace" /> </then> </if> <java dir="${testdirectory}" jar="${antlr3.tool}" fork="yes"> <arg line="${opt}" /> <arg line="${g}" /> </java> </target> <!-- **** --> <!-- DOCS --> <!-- **** --> <target name="make-docs" description="Generate jsdoc API documentation." depends="-init"> <property name="jsdoc.dir" value="${third.dir}/jsdoc-toolkit" /> <property name="docs.dir" value="${lib.dir}/docs" /> <mkdir dir="${docs.dir}" /> <java jar="${jsdoc.dir}/jsrun.jar" fork="yes"> <arg line="${jsdoc.dir}/app/run.js ${src.dir} -r=10 -t=${jsdoc.dir}/templates/jsdoc -d=${docs.dir}" /> </java> </target> <target name="-init"> <!-- clear build dir --> <delete dir="${out.dir}" quiet="true" /> <mkdir dir="${out.dir}" /> </target> </project>