Skip to content

Commit

Permalink
Merge pull request #12235 from keymanapp/fix/core/emcc_detect
Browse files Browse the repository at this point in the history
fix(core): look for `emcc` instead of `emcc.py`
  • Loading branch information
ermshiperete authored Aug 20, 2024
2 parents bfad108 + ab3722e commit a98ee70
Show file tree
Hide file tree
Showing 6 changed files with 33 additions and 27 deletions.
6 changes: 3 additions & 3 deletions core/wasm.build.linux.in
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
[binaries]
c = ['$EMSCRIPTEN_BASE/emcc.py']
cpp = ['$EMSCRIPTEN_BASE/em++.py']
ar = ['$EMSCRIPTEN_BASE/emar.py']
c = ['$EMSCRIPTEN_BASE/emcc']
cpp = ['$EMSCRIPTEN_BASE/em++']
ar = ['$EMSCRIPTEN_BASE/emar']
6 changes: 3 additions & 3 deletions core/wasm.build.mac.in
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
[binaries]
c = ['$EMSCRIPTEN_BASE/emcc.py']
cpp = ['$EMSCRIPTEN_BASE/em++.py']
ar = ['$EMSCRIPTEN_BASE/emar.py']
c = ['$EMSCRIPTEN_BASE/emcc']
cpp = ['$EMSCRIPTEN_BASE/em++']
ar = ['$EMSCRIPTEN_BASE/emar']
6 changes: 3 additions & 3 deletions core/wasm.defs.build
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
[binaries]
c = ['emcc.py']
cpp = ['em++.py']
ar = ['emar.py']
c = ['emcc']
cpp = ['em++']
ar = ['emar']
exe_wrapper = 'node'

[properties]
Expand Down
6 changes: 3 additions & 3 deletions developer/src/kmcmplib/wasm.build.linux.in
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
[binaries]
c = ['$EMSCRIPTEN_BASE/emcc.py']
cpp = ['$EMSCRIPTEN_BASE/em++.py']
ar = ['$EMSCRIPTEN_BASE/emar.py']
c = ['$EMSCRIPTEN_BASE/emcc']
cpp = ['$EMSCRIPTEN_BASE/em++']
ar = ['$EMSCRIPTEN_BASE/emar']
6 changes: 3 additions & 3 deletions developer/src/kmcmplib/wasm.build.mac.in
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
[binaries]
c = ['$EMSCRIPTEN_BASE/emcc.py']
cpp = ['$EMSCRIPTEN_BASE/em++.py']
ar = ['$EMSCRIPTEN_BASE/emar.py']
c = ['$EMSCRIPTEN_BASE/emcc']
cpp = ['$EMSCRIPTEN_BASE/em++']
ar = ['$EMSCRIPTEN_BASE/emar']
30 changes: 18 additions & 12 deletions resources/locate_emscripten.inc.sh
Original file line number Diff line number Diff line change
Expand Up @@ -2,30 +2,36 @@
# no hashbang for .inc.sh

#
# We don't want to rely on emcc.py being on the path, because Emscripten puts far
# We don't want to rely on emcc being on the path, because Emscripten puts far
# too many things onto the path (in particular for us, node).
#
# The following comment suggests that we don't need emcc.py on the path.
# The following comment suggests that we don't need emcc on the path.
# https://github.com/emscripten-core/emscripten/issues/4848#issuecomment-1097357775
#
# So we try and locate emcc.py in common locations ourselves. The search pattern
# So we try and locate emcc in common locations ourselves. The search pattern
# is:
#
# 1. Look for $EMSCRIPTEN_BASE (our primary emscripten variable), which should
# point to the folder that emcc.py is located in
# 2. Look for $EMCC which should point to the emcc.py executable
# 3. Look for emcc.py on the path
# point to the folder that emcc is located in
# 2. Look for $EMCC which should point to the emcc executable
# 3. Look for emcc on the path
#
locate_emscripten() {
local EMCC_EXECUTABLE
if [[ "${BUILDER_OS}" == "win" ]]; then
EMCC_EXECUTABLE="emcc.py"
else
EMCC_EXECUTABLE="emcc"
fi
if [[ -z ${EMSCRIPTEN_BASE+x} ]]; then
if [[ -z ${EMCC+x} ]]; then
local EMCC=`which emcc.py`
[[ -z $EMCC ]] && builder_die "locate_emscripten: Could not locate emscripten (emcc.py) on the path or with \$EMCC or \$EMSCRIPTEN_BASE"
local EMCC=$(which ${EMCC_EXECUTABLE})
[[ -z $EMCC ]] && builder_die "locate_emscripten: Could not locate emscripten (${EMCC_EXECUTABLE}) on the path or with \$EMCC or \$EMSCRIPTEN_BASE"
fi
[[ -f $EMCC && ! -x $EMCC ]] && builder_die "locate_emscripten: Variable EMCC ($EMCC) points to emcc.py but it is not executable"
[[ -x $EMCC ]] || builder_die "locate_emscripten: Variable EMCC ($EMCC) does not point to a valid executable emcc.py"
[[ -f $EMCC && ! -x $EMCC ]] && builder_die "locate_emscripten: Variable EMCC ($EMCC) points to ${EMCC_EXECUTABLE} but it is not executable"
[[ -x $EMCC ]] || builder_die "locate_emscripten: Variable EMCC ($EMCC) does not point to a valid executable ${EMCC_EXECUTABLE}"
EMSCRIPTEN_BASE="$(dirname "$EMCC")"
fi
[[ -f ${EMSCRIPTEN_BASE}/emcc.py && ! -x ${EMSCRIPTEN_BASE}/emcc.py ]] && builder_die "locate_emscripten: Variable EMSCRIPTEN_BASE ($EMSCRIPTEN_BASE) contains emcc.py but it is not executable"
[[ -x ${EMSCRIPTEN_BASE}/emcc.py ]] || builder_die "locate_emscripten: Variable EMSCRIPTEN_BASE ($EMSCRIPTEN_BASE) does not point to emcc.py's folder"
[[ -f ${EMSCRIPTEN_BASE}/${EMCC_EXECUTABLE} && ! -x ${EMSCRIPTEN_BASE}/${EMCC_EXECUTABLE} ]] && builder_die "locate_emscripten: Variable EMSCRIPTEN_BASE ($EMSCRIPTEN_BASE) contains ${EMCC_EXECUTABLE} but it is not executable"
[[ -x ${EMSCRIPTEN_BASE}/${EMCC_EXECUTABLE} ]] || builder_die "locate_emscripten: Variable EMSCRIPTEN_BASE ($EMSCRIPTEN_BASE) does not point to ${EMCC_EXECUTABLE}'s folder"
}

0 comments on commit a98ee70

Please sign in to comment.