#!/bin/sh
# Copyright 2020 The Emscripten Authors.  All rights reserved.
# Emscripten is available under two separate licenses, the MIT license and the
# University of Illinois/NCSA Open Source License.  Both these licenses can be
# found in the LICENSE file.
#
# Entry point for running python scripts on UNIX systems.
#
# Automatically generated by `create_entry_points.py`; DO NOT EDIT.
#
# To make modifications to this file, edit `tools/maint/run_python_compiler.sh` and
# then run `tools/maint/create_entry_points.py`

# python -E will not ignore _PYTHON_SYSCONFIGDATA_NAME an internal
# of cpython used in cross compilation via setup.py.
unset _PYTHON_SYSCONFIGDATA_NAME

_EM_PY=$EMSDK_PYTHON

if [ -z "$_EM_PY" ]; then
  _EM_PY=$(command -v python3 2> /dev/null)
fi

if [ -z "$_EM_PY" ]; then
  _EM_PY=$(command -v python 2> /dev/null)
fi

if [ -z "$_EM_PY" ]; then
  echo 'unable to find python in $PATH'
  exit 1
fi

if [ -z "$_EMCC_CCACHE" ]; then
  exec "$_EM_PY" -E "$0.py" "$@"
else
  unset _EMCC_CCACHE
  exec ccache "$0" "$@"
fi
