Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix(core): look for emcc instead of emcc.py #12235

Merged
merged 1 commit into from
Aug 20, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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"
}
Loading