| <?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> |