Mercurial
diff third_party/emsdk/emsdk_env.sh @ 179:8d17f6e6e290
[ThirdParty] Added emsdk bazel rules that can be supported by bazel 9.0.0
| author | MrJuneJune <me@mrjunejune.com> |
|---|---|
| date | Thu, 22 Jan 2026 21:23:17 -0800 |
| parents | |
| children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/third_party/emsdk/emsdk_env.sh Thu Jan 22 21:23:17 2026 -0800 @@ -0,0 +1,73 @@ +# This script is sourced by the user and uses +# their shell. +# +# This script tries to find its location but +# this does not work in every shell. +# +# It is known to work in bash, zsh and ksh +# +# Do not execute this script without sourcing, +# because it won't have any effect then. +# That is, always run this script with +# +# . /path/to/emsdk_env.sh +# +# or +# +# source /path/to/emsdk_env.sh +# +# instead of just plainly running with +# +# ./emsdk_env.sh +# +# which won't have any effect. + +CURRENT_SCRIPT= +DIR="." + +# use shell specific method to get the path +# to the current file being source'd. +# +# To add a shell, add another conditional below, +# then add tests to scripts/test_source_env.sh + +if [ -n "${BASH_SOURCE-}" ]; then + CURRENT_SCRIPT="$BASH_SOURCE" +elif [ -n "${ZSH_VERSION-}" ]; then + CURRENT_SCRIPT="${(%):-%x}" +elif [ -n "${KSH_VERSION-}" ]; then + CURRENT_SCRIPT=${.sh.file} +fi + +if [ -n "${CURRENT_SCRIPT-}" ]; then + DIR=$(dirname "$CURRENT_SCRIPT") + if [ -h "$CURRENT_SCRIPT" ]; then + # Now work out actual DIR since this is part of a symlink. + # Since we can't be sure that readlink or realpath + # are available, use tools more likely to be installed. + # (This will still fail if sed is not available.) + SYMDIR=$(dirname "$(ls -l "$CURRENT_SCRIPT" | sed -n "s/.*-> //p")") + if [ -z "$SYMDIR" ]; then + SYMDIR="." + fi + FULLDIR="$DIR/$SYMDIR" + DIR=$(cd "$FULLDIR" > /dev/null 2>&1; /bin/pwd) + unset SYMDIR + unset FULLDIR + fi +fi +unset CURRENT_SCRIPT + +if [ ! -f "$DIR/emsdk.py" ]; then + echo "Error: unable to determine 'emsdk' directory. Perhaps you are using a shell or" 1>&2 + echo " environment that this script does not support." 1>&2 + echo 1>&2 + echo "A possible solution is to source this script while in the 'emsdk' directory." 1>&2 + echo 1>&2 + unset DIR + return +fi + +# Force emsdk to use bash syntax so that this works in windows + bash too +eval `EMSDK_BASH=1 "$DIR/emsdk" construct_env` +unset DIR