Home | History | Annotate | Download | only in cfinstall
      1 #!/bin/sh
      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.
      5 
      6 OPTIMIZATION_LEVEL="ADVANCED_OPTIMIZATIONS"
      7 EXTRA_FLAGS=""
      8 
      9 while getopts l:d o
     10 do case "$o" in
     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."
     19           exit 1;;
     20   esac
     21 done
     22 
     23 DEPS_DIR=deps
     24 OUT_DIR=out
     25 SRC_DIR=src
     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
     31 
     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.
     34 mkdir -p $DEPS_DIR &&
     35 mkdir -p $OUT_DIR &&
     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; }; } &&
     44 $CLOSURE_BUILDER \
     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 \
     49   $EXTRA_FLAGS \
     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 && \
     54 $CLOSURE_BUILDER \
     55   --root=src/miniclosure/ --root=src/common/ \
     56   --root=src/stub/ \
     57   --namespace="google.cf.installer.CFInstall" \
     58   --output_mode=compiled --compiler_jar=$CLOSURE_COMPILER_JAR \
     59   $EXTRA_FLAGS \
     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
     65