|
|
<?xml version="1.0" ?>
|
|
|
|
|
|
<project name="libphonenumber-javascript" default="compile">
|
|
|
<property name="closure-compiler.dir"
|
|
|
value="${basedir}/../../closure-compiler" />
|
|
|
<property name="closure-compiler.jar"
|
|
|
value="${closure-compiler.dir}/bazel-bin/compiler_unshaded_deploy.jar" />
|
|
|
<property name="closure-library.dir"
|
|
|
value="${basedir}/../../closure-library" />
|
|
|
<property name="closure-linter.dir"
|
|
|
value="${basedir}/../../closure-linter" />
|
|
|
<property name="python-gflags.dir"
|
|
|
value="${basedir}/../../python-gflags" />
|
|
|
|
|
|
<macrodef name="closure-compile">
|
|
|
<attribute name="entrypoint" />
|
|
|
<attribute name="outputfile" />
|
|
|
<attribute name="compilationlevel" default="ADVANCED_OPTIMIZATIONS" />
|
|
|
<attribute name="outputwrapper" default="(function(){%output%})();" />
|
|
|
<element name="extraflags" optional="yes" />
|
|
|
<sequential>
|
|
|
<exec executable="java" failonerror="true" logError="true">
|
|
|
<arg value="-jar" />
|
|
|
<arg value="${closure-compiler.jar}" />
|
|
|
<arg line='--entry_point="@{entrypoint}"' />
|
|
|
<arg line='--js_output_file="@{outputfile}"' />
|
|
|
<arg line='--js="${closure-library.dir}/closure/goog/**.js"' />
|
|
|
<arg line='--js="${closure-library.dir}/third_party/closure/goog/**.js"' />
|
|
|
<arg line="--output_wrapper=@{outputwrapper}" />
|
|
|
<arg line="--compilation_level=@{compilationlevel}" />
|
|
|
<arg line="--warning_level=VERBOSE" />
|
|
|
<arg line="--jscomp_error=accessControls" />
|
|
|
<arg line="--jscomp_error=checkDebuggerStatement" />
|
|
|
<arg line="--jscomp_error=checkRegExp" />
|
|
|
<arg line="--jscomp_error=checkTypes" />
|
|
|
<arg line="--jscomp_error=checkVars" />
|
|
|
<arg line="--jscomp_error=const" />
|
|
|
<arg line="--jscomp_error=constantProperty" />
|
|
|
<arg line="--jscomp_error=duplicate" />
|
|
|
<arg line="--jscomp_error=duplicateMessage" />
|
|
|
<arg line="--jscomp_error=es5Strict" />
|
|
|
<arg line="--jscomp_error=externsValidation" />
|
|
|
<arg line="--jscomp_error=extraRequire" />
|
|
|
<arg line="--jscomp_error=globalThis" />
|
|
|
<arg line="--jscomp_error=invalidCasts" />
|
|
|
<arg line="--jscomp_error=misplacedTypeAnnotation" />
|
|
|
<arg line="--jscomp_error=missingProperties" />
|
|
|
<arg line="--jscomp_error=missingRequire" />
|
|
|
<arg line="--jscomp_error=nonStandardJsDocs" />
|
|
|
<arg line="--jscomp_error=strictModuleDepCheck" />
|
|
|
<arg line="--jscomp_error=suspiciousCode" />
|
|
|
<arg line="--jscomp_error=typeInvalidation" />
|
|
|
<arg line="--jscomp_error=undefinedNames" />
|
|
|
<arg line="--jscomp_error=undefinedVars" />
|
|
|
<arg line="--jscomp_error=unknownDefines" />
|
|
|
<arg line="--jscomp_error=uselessCode" />
|
|
|
<arg line="--jscomp_error=visibility" />
|
|
|
<extraflags />
|
|
|
</exec>
|
|
|
</sequential>
|
|
|
</macrodef>
|
|
|
|
|
|
<macrodef name="gjslint">
|
|
|
<attribute name="inputfile" />
|
|
|
<sequential>
|
|
|
<exec executable="python" failonerror="false" logError="true">
|
|
|
<env key="PYTHONPATH"
|
|
|
value="${closure-linter.dir}:${python-gflags.dir}"/>
|
|
|
<arg value="${closure-linter.dir}/closure_linter/gjslint.py" />
|
|
|
<arg line='--strict' />
|
|
|
<arg line='"@{inputfile}"' />
|
|
|
</exec>
|
|
|
</sequential>
|
|
|
</macrodef>
|
|
|
|
|
|
<condition property="os.iswindows">
|
|
|
<os family="windows" />
|
|
|
</condition>
|
|
|
<condition property="os.isunix">
|
|
|
<os family="unix" />
|
|
|
</condition>
|
|
|
<target name="nul" if="os.iswindows">
|
|
|
<property name="null.device" value="NUL" />
|
|
|
</target>
|
|
|
<target name="devnull" if="os.isunix">
|
|
|
<property name="null.device" value="/dev/null" />
|
|
|
</target>
|
|
|
<target name="setnulldevice" depends="nul,devnull" />
|
|
|
|
|
|
<target name="clean" description="deletes all generated files">
|
|
|
<delete file="i18n/phonenumbers/demo-compiled.js" />
|
|
|
</target>
|
|
|
|
|
|
<target name="compile-demo"
|
|
|
description="generates demo-compiled.js">
|
|
|
<closure-compile entrypoint="goog:i18n.phonenumbers.demo"
|
|
|
outputfile="i18n/phonenumbers/demo-compiled.js">
|
|
|
<extraflags>
|
|
|
<arg line='--js="i18n/phonenumbers/**.js"' />
|
|
|
<arg line='--js="!i18n/phonenumbers/demo-compiled.js"' />
|
|
|
<arg line='--js="!i18n/phonenumbers/metadatafortesting.js"' />
|
|
|
<arg line='--js="!i18n/phonenumbers/metadatalite.js"' />
|
|
|
<arg line='--js="!i18n/phonenumbers/regioncodefortesting.js"' />
|
|
|
</extraflags>
|
|
|
</closure-compile>
|
|
|
</target>
|
|
|
|
|
|
<target name="compile-tests" depends="setnulldevice">
|
|
|
<closure-compile entrypoint="goog:i18n.phonenumbers.AsYouTypeFormatterTest"
|
|
|
outputfile="${null.device}">
|
|
|
<extraflags>
|
|
|
<arg line='--js="i18n/phonenumbers/**.js"' />
|
|
|
<arg line='--js="!i18n/phonenumbers/demo-compiled.js"' />
|
|
|
<arg line='--js="!i18n/phonenumbers/metadata.js"' />
|
|
|
<arg line='--js="!i18n/phonenumbers/metadatalite.js"' />
|
|
|
</extraflags>
|
|
|
</closure-compile>
|
|
|
<closure-compile entrypoint="goog:i18n.phonenumbers.PhoneNumberUtilTest"
|
|
|
outputfile="${null.device}">
|
|
|
<extraflags>
|
|
|
<arg line='--js="i18n/phonenumbers/**.js"' />
|
|
|
<arg line='--js="!i18n/phonenumbers/demo-compiled.js"' />
|
|
|
<arg line='--js="!i18n/phonenumbers/metadata.js"' />
|
|
|
<arg line='--js="!i18n/phonenumbers/metadatalite.js"' />
|
|
|
</extraflags>
|
|
|
</closure-compile>
|
|
|
<closure-compile entrypoint="goog:i18n.phonenumbers.ShortNumberInfoTest"
|
|
|
outputfile="${null.device}">
|
|
|
<extraflags>
|
|
|
<arg line='--js="i18n/phonenumbers/**.js"' />
|
|
|
<arg line='--js="!i18n/phonenumbers/demo-compiled.js"' />
|
|
|
<arg line='--js="!i18n/phonenumbers/metadata.js"' />
|
|
|
<arg line='--js="!i18n/phonenumbers/metadatalite.js"' />
|
|
|
</extraflags>
|
|
|
</closure-compile>
|
|
|
</target>
|
|
|
|
|
|
<target name="compile" depends="compile-demo,compile-tests" />
|
|
|
|
|
|
<target name="lint" description="lints all javascript files">
|
|
|
<gjslint inputfile="i18n/phonenumbers/asyoutypeformatter*.js" />
|
|
|
<gjslint inputfile="i18n/phonenumbers/demo.js" />
|
|
|
<gjslint inputfile="i18n/phonenumbers/phonenumberutil*.js" />
|
|
|
<gjslint inputfile="i18n/phonenumbers/shortnumberinfo*.js" />
|
|
|
</target>
|
|
|
|
|
|
</project>
|