#! /bin/sh # Copyright (C) 2012 The Libphonenumber Authors # # 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. # Author: Fredrik Roubert # Compiles the Javascript implementation of libphonenumber, using the Google # Closure Compiler. # # The environment variable CLASSPATH is used to provide the location of the # Closure Compiler JAR (compiler.jar), and the environment variable CLOSUREPATH # is used to provide the root directory of the Closure library source files. If # the defaults don't work for your system, override them on the command line, # for example like this: # # CLASSPATH=/opt/closure-compiler/compiler.jar ./compile.sh : ${CLASSPATH:='/usr/local/share/closure-compiler/compiler.jar'} : ${CLOSUREPATH:='../../closure-library/closure/goog'} # If CLASSPATH was set by this script, it needs to be exported to make it # visible to the JVM. export CLASSPATH SRCPATH='i18n/phonenumbers' function jscomp { java com.google.javascript.jscomp.CommandLineRunner \ --jscomp_warning=deprecated \ --jscomp_warning=missingProperties \ --js $CLOSUREPATH/base.js \ --js $CLOSUREPATH/array/array.js \ --js $CLOSUREPATH/asserts/asserts.js \ --js $CLOSUREPATH/debug/error.js \ --js $CLOSUREPATH/object/object.js \ --js $CLOSUREPATH/proto2/descriptor.js \ --js $CLOSUREPATH/proto2/fielddescriptor.js \ --js $CLOSUREPATH/proto2/lazydeserializer.js \ --js $CLOSUREPATH/proto2/message.js \ --js $CLOSUREPATH/proto2/pbliteserializer.js \ --js $CLOSUREPATH/proto2/serializer.js \ --js $CLOSUREPATH/proto2/util.js \ --js $CLOSUREPATH/string/string.js \ --js $CLOSUREPATH/string/stringbuffer.js \ "$@" } echo 'Compiling with regular metadata...' jscomp \ --js $SRCPATH/asyoutypeformatter.js \ --js $SRCPATH/metadata.js \ --js $SRCPATH/phonemetadata.pb.js \ --js $SRCPATH/phonenumber.pb.js \ --js $SRCPATH/phonenumberutil.js \ --js_output_file=libphonenumber-compiled.js \ --output_manifest=libphonenumber-compiled.MF echo 'Compiling with lite metadata...' jscomp \ --js $SRCPATH/asyoutypeformatter.js \ --js $SRCPATH/metadatalite.js \ --js $SRCPATH/phonemetadata.pb.js \ --js $SRCPATH/phonenumber.pb.js \ --js $SRCPATH/phonenumberutil.js \ --js_output_file=libphonenumber-lite-compiled.js \ --output_manifest=libphonenumber-lite-compiled.MF echo 'Compiling with metadata for testing...' jscomp \ --js $SRCPATH/asyoutypeformatter.js \ --js $SRCPATH/metadatafortesting.js \ --js $SRCPATH/phonemetadata.pb.js \ --js $SRCPATH/phonenumber.pb.js \ --js $SRCPATH/phonenumberutil.js \ --js_output_file=libphonenumber-testing-compiled.js \ --output_manifest=libphonenumber-testing-compiled.MF echo 'Done.'