2 # Copyright (c) 2012 The Chromium Authors. All rights reserved.
3 # Use of this source code is governed by a BSD-style license that can be
4 # found in the LICENSE file.
6 OPTIMIZATION_LEVEL
="ADVANCED_OPTIMIZATIONS"
11 l
) EXTRA_FLAGS
="$EXTRA_FLAGS -f --define=google.cf.installer.Prompt.\
12 DEFAULT_IMPLEMENTATION_URL='${OPTARG}cf-xd-install-impl.js'";;
13 d
) OPTIMIZATION_LEVEL
="SIMPLE_OPTIMIZATIONS"
14 EXTRA_FLAGS
="$EXTRA_FLAGS -f --formatting=PRETTY_PRINT";;
15 [?
]) echo >&2 "Usage: $0 [-l //host.com/path/to/scripts/dir/] [-p] [-d]"
16 echo >&2 " -l <URL> The path under which the generated"
17 echo >&2 " scripts will be deployed."
18 echo >&2 " -d Disable obfuscating optimizations."
26 CLOSURE_LIBRARY_DIR
=$DEPS_DIR/closure_library
27 CLOSURE_BUILDER
=$CLOSURE_LIBRARY_DIR/closure
/bin
/build
/closurebuilder.py
28 CLOSURE_COMPILER_ZIP
=$DEPS_DIR/compiler-latest.
zip
29 CLOSURE_COMPILER_JAR_ZIP_RELATIVE
=compiler.jar
30 CLOSURE_COMPILER_JAR
=$DEPS_DIR/$CLOSURE_COMPILER_JAR_ZIP_RELATIVE
32 # TODO(palmer): Convert the svn checkout to HTTPS with the broken SVN
33 # clients are finally gone. As of 24 July 2012, that should be pretty soon.
36 { [[ -e $CLOSURE_LIBRARY_DIR ]] || \
37 svn checkout http
://closure-library.googlecode.com
/svn
/trunk
/ \
38 $CLOSURE_LIBRARY_DIR; } && \
39 { [[ -e $CLOSURE_COMPILER_JAR ]] ||
40 { wget https
://closure-compiler.googlecode.com
/files
/compiler-latest.
zip \
41 -O $CLOSURE_COMPILER_ZIP && \
42 unzip -d $DEPS_DIR $CLOSURE_COMPILER_ZIP \
43 $CLOSURE_COMPILER_JAR_ZIP_RELATIVE >/dev
/null
; }; } &&
45 --root=$CLOSURE_LIBRARY_DIR --root=src
/common
/ \
46 --root=src
/implementation
/ \
47 --namespace="google.cf.installer.CrossDomainInstall" \
48 --output_mode=compiled
--compiler_jar=$CLOSURE_COMPILER_JAR \
50 -f "--compilation_level=$OPTIMIZATION_LEVEL" \
51 -f "--output_wrapper='(function (scope){ %output% })(window)'" \
52 -f "--externs=src/common/cf-interactiondelegate-externs.js" \
53 --output_file=out
/cf-xd-install-impl.js
&& \
55 --root=src
/miniclosure
/ --root=src
/common
/ \
57 --namespace="google.cf.installer.CFInstall" \
58 --output_mode=compiled
--compiler_jar=$CLOSURE_COMPILER_JAR \
60 -f "--compilation_level=$OPTIMIZATION_LEVEL" \
61 -f "--output_wrapper='(function (scope){ %output% })(window)'" \
62 -f "--externs=src/stub/cf-activex-externs.js" \
63 -f "--externs=src/common/cf-interactiondelegate-externs.js" \
64 --output_file=out
/CFInstall.min.js