go-libwebp

Experimental translation from libwebp to Go source.
Log | Files | Refs | README | LICENSE

compile_js.sh (2679B)


      1 #!/bin/bash
      2 # Copyright (c) 2021, Google Inc. All rights reserved.
      3 #
      4 # Redistribution and use in source and binary forms, with or without
      5 # modification, are permitted provided that the following conditions are
      6 # met:
      7 #
      8 #   * Redistributions of source code must retain the above copyright
      9 #     notice, this list of conditions and the following disclaimer.
     10 #
     11 #   * Redistributions in binary form must reproduce the above copyright
     12 #     notice, this list of conditions and the following disclaimer in
     13 #     the documentation and/or other materials provided with the
     14 #     distribution.
     15 #
     16 #   * Neither the name of Google nor the names of its contributors may
     17 #     be used to endorse or promote products derived from this software
     18 #     without specific prior written permission.
     19 #
     20 # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
     21 # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
     22 # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
     23 # A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
     24 # HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
     25 # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
     26 # LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
     27 # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
     28 # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
     29 # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
     30 # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
     31 
     32 set -ex
     33 
     34 readonly WORKSPACE="${WORKSPACE:-"$(mktemp -d -t webp.js.XXX)"}"
     35 readonly BUILD_DIR="${WORKSPACE}/webp_js/"
     36 readonly LIBWEBP_ROOT="$(realpath "$(dirname "$0")/..")"
     37 
     38 # shellcheck source=infra/common.sh
     39 source "${LIBWEBP_ROOT}/infra/common.sh"
     40 
     41 usage() {
     42   cat << EOF
     43 Usage: $(basename "$0")
     44 Environment variables:
     45 WORKSPACE directory where the build is done
     46 EMSDK_DIR directory where emsdk is installed
     47 EOF
     48 }
     49 
     50 [[ -d "${EMSDK_DIR:?Not defined}" ]] \
     51   || (log_err "${EMSDK_DIR} is not a valid directory." && exit 1)
     52 
     53 # shellcheck source=/opt/emsdk/emsdk_env.sh
     54 source "${EMSDK_DIR}/emsdk_env.sh"
     55 
     56 readonly EMSCRIPTEN=${EMSCRIPTEN:-"${EMSDK}/upstream/emscripten"}
     57 readonly \
     58   EMSCRIPTEN_CMAKE_FILE="${EMSCRIPTEN}/cmake/Modules/Platform/Emscripten.cmake"
     59 make_build_dir "${BUILD_DIR}"
     60 
     61 pushd "${BUILD_DIR}"
     62 opts=("-GUnix Makefiles" "-DWEBP_BUILD_WEBP_JS=ON")
     63 if [[ -z "$(command -v emcmake)" ]]; then
     64   opts+=("-DCMAKE_TOOLCHAIN_FILE=${EMSCRIPTEN_CMAKE_FILE}")
     65   cmake \
     66     "${opts[@]}" \
     67     "${LIBWEBP_ROOT}"
     68   make -j
     69 else
     70   emcmake cmake \
     71     "${opts[@]}" \
     72     "${LIBWEBP_ROOT}"
     73   emmake make -j
     74 fi
     75 popd