Skip to content

Commit

Permalink
fix(core): look for emcc instead of emcc.py
Browse files Browse the repository at this point in the history
`emcc.py` is not marked as executable in emcripten's git repo so the
build failed when trying to locatge emscripten. However, it turns out
that `emcc` is marked as executable, so we use that instead.
  • Loading branch information
ermshiperete committed Aug 20, 2024
1 parent 5bf42c5 commit 88657c0
Show file tree
Hide file tree
Showing 5 changed files with 24 additions and 24 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.build.win.in
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[binaries]
c = ['python.exe', '$EMSCRIPTEN_BASE/emcc.py']
cpp = ['python.exe', '$EMSCRIPTEN_BASE/em++.py']
ar = ['python.exe', '$EMSCRIPTEN_BASE/emar.py']
c = ['python.exe', '$EMSCRIPTEN_BASE/emcc']
cpp = ['python.exe', '$EMSCRIPTEN_BASE/em++']
ar = ['python.exe', '$EMSCRIPTEN_BASE/emar']

[properties]
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
24 changes: 12 additions & 12 deletions resources/locate_emscripten.inc.sh
Original file line number Diff line number Diff line change
Expand Up @@ -2,30 +2,30 @@
# 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() {
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`
[[ -z $EMCC ]] && builder_die "locate_emscripten: Could not locate emscripten (emcc) 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 but it is not executable"
[[ -x $EMCC ]] || builder_die "locate_emscripten: Variable EMCC ($EMCC) does not point to a valid executable emcc"
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 && ! -x ${EMSCRIPTEN_BASE}/emcc ]] && builder_die "locate_emscripten: Variable EMSCRIPTEN_BASE ($EMSCRIPTEN_BASE) contains emcc but it is not executable"
[[ -x ${EMSCRIPTEN_BASE}/emcc ]] || builder_die "locate_emscripten: Variable EMSCRIPTEN_BASE ($EMSCRIPTEN_BASE) does not point to emcc's folder"
}

0 comments on commit 88657c0

Please sign in to comment.