3 <project name="libphonenumber-javascript" default="compile">
4 <property name="closure-compiler.dir"
5 value="${basedir}/../../closure-compiler" />
6 <property name="closure-compiler.jar"
7 value="${closure-compiler.dir}/build/compiler.jar" />
8 <property name="closure-library.dir"
9 value="${basedir}/../../closure-library" />
10 <property name="closure-linter.dir"
11 value="${basedir}/../../closure-linter" />
12 <property name="python-gflags.dir"
13 value="${basedir}/../../python-gflags" />
15 <macrodef name="closure-compile">
16 <attribute name="inputfile" />
17 <attribute name="outputfile" />
18 <attribute name="compilationlevel" default="ADVANCED_OPTIMIZATIONS" />
19 <attribute name="outputmode" default="compiled" />
20 <attribute name="outputwrapper" default="(function(){%output%})();" />
21 <element name="extraflags" optional="yes" />
23 <exec executable="python" failonerror="true" logError="true">
24 <arg value="${closure-library.dir}/closure/bin/calcdeps.py" />
25 <arg line='-i "@{inputfile}"' />
26 <arg line='--output_file "@{outputfile}"' />
27 <arg line='-p "${closure-library.dir}"' />
28 <arg line="-o @{outputmode}" />
29 <arg line='-c "${closure-compiler.jar}"' />
30 <arg line='-f "--output_wrapper=@{outputwrapper}"' />
31 <arg line='-f "--compilation_level=@{compilationlevel}"' />
32 <arg line='-f "--warning_level=VERBOSE"' />
33 <arg line='-f "--jscomp_error=accessControls"' />
34 <arg line='-f "--jscomp_error=ambiguousFunctionDecl"' />
35 <arg line='-f "--jscomp_error=checkDebuggerStatement"' />
36 <arg line='-f "--jscomp_error=checkRegExp"' />
37 <arg line='-f "--jscomp_error=checkTypes"' />
38 <arg line='-f "--jscomp_error=checkVars"' />
39 <arg line='-f "--jscomp_error=const"' />
40 <arg line='-f "--jscomp_error=constantProperty"' />
41 <arg line='-f "--jscomp_error=deprecated"' />
42 <arg line='-f "--jscomp_error=duplicate"' />
43 <arg line='-f "--jscomp_error=duplicateMessage"' />
44 <arg line='-f "--jscomp_error=es5Strict"' />
45 <arg line='-f "--jscomp_error=externsValidation"' />
46 <arg line='-f "--jscomp_error=fileoverviewTags"' />
47 <arg line='-f "--jscomp_error=globalThis"' />
48 <arg line='-f "--jscomp_error=internetExplorerChecks"' />
49 <arg line='-f "--jscomp_error=invalidCasts"' />
50 <arg line='-f "--jscomp_error=misplacedTypeAnnotation"' />
51 <arg line='-f "--jscomp_error=missingProperties"' />
52 <arg line='-f "--jscomp_error=nonStandardJsDocs"' />
53 <arg line='-f "--jscomp_error=strictModuleDepCheck"' />
54 <arg line='-f "--jscomp_error=suspiciousCode"' />
55 <arg line='-f "--jscomp_error=typeInvalidation"' />
56 <arg line='-f "--jscomp_error=undefinedNames"' />
57 <arg line='-f "--jscomp_error=undefinedVars"' />
58 <arg line='-f "--jscomp_error=unknownDefines"' />
59 <arg line='-f "--jscomp_error=uselessCode"' />
60 <arg line='-f "--jscomp_error=visibility"' />
66 <macrodef name="gjslint">
67 <attribute name="inputfile" />
69 <exec executable="python" failonerror="false" logError="true">
71 value="${closure-linter.dir}:${python-gflags.dir}"/>
72 <arg value="${closure-linter.dir}/closure_linter/gjslint.py" />
73 <arg line='--strict' />
74 <arg line='"@{inputfile}"' />
79 <condition property="os.iswindows">
80 <os family="windows" />
82 <condition property="os.isunix">
85 <target name="nul" if="os.iswindows">
86 <property name="null.device" value="NUL" />
88 <target name="devnull" if="os.isunix">
89 <property name="null.device" value="/dev/null" />
91 <target name="setnulldevice" depends="nul,devnull" />
93 <target name="clean" description="deletes all generated files">
94 <delete file="i18n/phonenumbers/demo-compiled.js" />
97 <target name="compile-demo"
98 description="generates demo-compiled.js">
99 <closure-compile inputfile="i18n/phonenumbers/demo.js"
100 outputfile="i18n/phonenumbers/demo-compiled.js">
102 <arg line='-p "i18n/phonenumbers"' />
103 <arg line='-e "i18n/phonenumbers/metadatafortesting.js"' />
104 <arg line='-e "i18n/phonenumbers/metadatalite.js"' />
105 <arg line='-e "i18n/phonenumbers/regioncodefortesting.js"' />
110 <target name="compile-tests" depends="setnulldevice">
111 <closure-compile inputfile="i18n/phonenumbers/asyoutypeformatter_test.js"
112 outputfile="${null.device}">
114 <arg line='-p "i18n/phonenumbers"' />
115 <arg line='-e "i18n/phonenumbers/metadata.js"' />
116 <arg line='-e "i18n/phonenumbers/metadatalite.js"' />
119 <closure-compile inputfile="i18n/phonenumbers/phonenumberutil_test.js"
120 outputfile="${null.device}">
122 <arg line='-p "i18n/phonenumbers"' />
123 <arg line='-e "i18n/phonenumbers/metadata.js"' />
124 <arg line='-e "i18n/phonenumbers/metadatalite.js"' />
129 <target name="compile" depends="compile-demo,compile-tests" />
131 <target name="lint" description="lints all javascript files">
132 <gjslint inputfile="i18n/phonenumbers/asyoutypeformatter*.js" />
133 <gjslint inputfile="i18n/phonenumbers/demo.js" />
134 <gjslint inputfile="i18n/phonenumbers/phonenumberutil*.js" />