Update emsdk to 5.0.4 (#9921)

- Bumped GITHUB_EMSDK_VERSION to 5.0.4 in build scripts and docs.
- Fixed a compilation error in web/filament-js/jsbindings.cpp where stricter
  pointer binding rules in Emscripten 5.0.4 caused a build failure when
  returning a raw pointer wrapped in `emscripten::val`. Changed the lambda
  to return the raw pointer directly, leveraging Embind's `allow_raw_pointers()`.
This commit is contained in:
Powei Feng
2026-04-22 09:18:24 -07:00
committed by GitHub
parent dea71a278c
commit 05dde7e2cf
4 changed files with 5 additions and 10 deletions

View File

@@ -408,7 +408,7 @@ same version that our continuous builds use.
```shell
cd <your chosen parent folder for the emscripten SDK>
curl -L https://github.com/emscripten-core/emsdk/archive/refs/tags/3.1.60.zip > emsdk.zip
curl -L https://github.com/emscripten-core/emsdk/archive/refs/tags/5.0.4.zip > emsdk.zip
unzip emsdk.zip ; mv emsdk-* emsdk ; cd emsdk
python ./emsdk.py install latest
python ./emsdk.py activate latest

View File

@@ -11,7 +11,7 @@ if [ -d "./emsdk" ]; then
fi
# Install emscripten.
EMSDK_VERSION=${GITHUB_EMSDK_VERSION-3.1.60}
EMSDK_VERSION=${GITHUB_EMSDK_VERSION-5.0.4}
curl -L https://github.com/emscripten-core/emsdk/archive/refs/tags/${EMSDK_VERSION}.zip > emsdk.zip
unzip emsdk.zip ; mv emsdk-* emsdk ; cd emsdk
./emsdk install latest

View File

@@ -4,6 +4,6 @@ GITHUB_NINJA_VERSION=1.10.2
GITHUB_MESA_VERSION=24.2.1
GITHUB_LLVM_VERSION=17
GITHUB_NDK_VERSION=29.0.14206865
GITHUB_EMSDK_VERSION=3.1.60
GITHUB_EMSDK_VERSION=5.0.4
GITHUB_VULKANSDK_VERSION=1.4.321.0
GITHUB_GLTF_SAMPLE_ASSETS_COMMIT=d441dfdb87413ff412c620849a649d61789a470f

View File

@@ -1861,14 +1861,9 @@ class_<KtxInfo>("KtxInfo")
class_<MeshReader::MaterialRegistry>("MeshReader$MaterialRegistry")
.constructor<>()
.function("size", &MeshReader::MaterialRegistry::numRegistered)
.function("get", EMBIND_LAMBDA(val, (MeshReader::MaterialRegistry* self, std::string k), {
.function("get", EMBIND_LAMBDA(filament::MaterialInstance*, (MeshReader::MaterialRegistry* self, std::string k), {
const utils::CString name(k.c_str(), k.size());
auto i = self->getMaterialInstance(name);
if (i == nullptr) {
return val::undefined();
} else {
return val(i);
}
return self->getMaterialInstance(name);
}), allow_raw_pointers())
.function("set", EMBIND_LAMBDA(void, (MeshReader::MaterialRegistry* self, std::string k, filament::MaterialInstance* v), {
const utils::CString name(k.c_str(), k.size());