diff --git a/.github/workflows/manual-web-examples.yml b/.github/workflows/manual-web-examples.yml index c00771a8d8e..f5312b11e59 100644 --- a/.github/workflows/manual-web-examples.yml +++ b/.github/workflows/manual-web-examples.yml @@ -32,7 +32,7 @@ jobs: steps: - uses: actions/checkout@v4 - name: Docker Step - run: docker run -di --name emscripten -v $PWD:/src emscripten/emsdk:3.1.50 bash + run: docker run -di --name emscripten -v $PWD:/src emscripten/emsdk:6.0.6 bash - name: Download libs run: ./scripts/dev/download_libs.sh -p emscripten - name: Install dependencies diff --git a/.github/workflows/of.yml b/.github/workflows/of.yml index 94959abac38..300156523ab 100644 --- a/.github/workflows/of.yml +++ b/.github/workflows/of.yml @@ -32,7 +32,7 @@ jobs: steps: - uses: actions/checkout@v6 - name: Docker Step - run: "docker run -di --name emscripten -v $PWD:/src emscripten/emsdk:5.0.7 bash" + run: "docker run -di --name emscripten -v $PWD:/src emscripten/emsdk:6.0.6 bash" # - name: Determine Release # id: vars # shell: bash diff --git a/libs/openFrameworksCompiled/project/emscripten/CMakeList.txt b/libs/openFrameworksCompiled/project/emscripten/CMakeList.txt index afe05f82268..f87ff3ed641 100644 --- a/libs/openFrameworksCompiled/project/emscripten/CMakeList.txt +++ b/libs/openFrameworksCompiled/project/emscripten/CMakeList.txt @@ -101,8 +101,11 @@ ifdef USE_CCACHE endif #PLATFORM_LDFLAGS += -s EMBIND_AOT=1 -PLATFORM_LDFLAGS = --preload-file bin/data@data --emrun --bind --profiling-funcs -PLATFORM_LDFLAGS += -s MAX_WEBGL_VERSION=2 -s WEBGL2_BACKWARDS_COMPATIBILITY_EMULATION=1 -s FULL_ES2 +PLATFORM_LDFLAGS = --emrun --bind --profiling-funcs +ifneq ($(strip $(wildcard bin/data/*)),) + PLATFORM_LDFLAGS += --preload-file bin/data@data +endif +PLATFORM_LDFLAGS += -s MAX_WEBGL_VERSION=2 -s WEBGL2_BACKWARDS_COMPATIBILITY_EMULATION=1 -s FULL_ES3 PLATFORM_LDFLAGS += -s AUTO_NATIVE_LIBRARIES=1 PLATFORM_LDFLAGS += -s AUTO_JS_LIBRARIES=1 diff --git a/libs/openFrameworksCompiled/project/emscripten/config.emscripten.default.mk b/libs/openFrameworksCompiled/project/emscripten/config.emscripten.default.mk index 47c5bbb7c0a..1c633c942da 100644 --- a/libs/openFrameworksCompiled/project/emscripten/config.emscripten.default.mk +++ b/libs/openFrameworksCompiled/project/emscripten/config.emscripten.default.mk @@ -119,9 +119,12 @@ ifdef USE_CCACHE endif #PLATFORM_LDFLAGS += -s EMBIND_AOT=1 -PLATFORM_LDFLAGS = --preload-file bin/data@data --emrun --bind --profiling-funcs +PLATFORM_LDFLAGS = --emrun --bind --profiling-funcs +ifneq ($(strip $(wildcard bin/data/*)),) + PLATFORM_LDFLAGS += --preload-file bin/data@data +endif PLATFORM_LDFLAGS += --use-port=emdawnwebgpu -PLATFORM_LDFLAGS += -s MAX_WEBGL_VERSION=2 -s WEBGL2_BACKWARDS_COMPATIBILITY_EMULATION=1 -s FULL_ES2 +PLATFORM_LDFLAGS += -s MAX_WEBGL_VERSION=2 -s WEBGL2_BACKWARDS_COMPATIBILITY_EMULATION=1 -s FULL_ES3 PLATFORM_LDFLAGS += -s AUTO_NATIVE_LIBRARIES=1 PLATFORM_LDFLAGS += -s AUTO_JS_LIBRARIES=1 diff --git a/scripts/emscripten/install_emscripten.sh b/scripts/emscripten/install_emscripten.sh index 339a4e9107e..3fd6950d5d8 100755 --- a/scripts/emscripten/install_emscripten.sh +++ b/scripts/emscripten/install_emscripten.sh @@ -2,7 +2,7 @@ SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" cd $SCRIPT_DIR -VERSION=5.0.7 +VERSION=6.0.6 CHECKOUT=$1 @@ -17,14 +17,13 @@ install_emscripten_source() { echo "if any issues with python - make sure to add python paths to bash environment Variables:" python -m pip install --upgrade pip setuptools virtualenv - ./emsdk install latest - ./emsdk activate latest --permanent - ./emsdk_env.sh - # ./emsdk install ${VERSION} + ./emsdk install "${VERSION}" + ./emsdk activate "${VERSION}" --permanent + source ./emsdk_env.sh else echo "Emscripten SDK found at $EMSDK" - source "$EMSDK/emsdk_env" + source "$EMSDK/emsdk_env.sh" fi } @@ -32,7 +31,7 @@ install_emscripten_package() { if [[ "$OSTYPE" == "darwin"* ]]; then # macOS echo "Detected macOS. Checking for Emscripten..." - if ! command_exists emcc; then + if ! command -v emcc >/dev/null 2>&1; then echo "Emscripten not found. Installing via Homebrew..." brew install emscripten else @@ -45,7 +44,7 @@ install_emscripten_package() { elif [[ "$OSTYPE" == "linux-gnu"* ]]; then # Linux echo "Detected Linux. Checking for Emscripten..." - if ! command_exists emcc; then + if ! command -v emcc >/dev/null 2>&1; then echo "Emscripten not found. Installing via apt..." sudo apt update sudo apt install -y emscripten @@ -56,7 +55,7 @@ install_emscripten_package() { elif [[ "$OSTYPE" == "cygwin" || "$OSTYPE" == "msys" || "$OSTYPE" == "win32" ]]; then # Windows (assuming Git Bash or similar) echo "Detected Windows. Checking for Emscripten..." - if ! command_exists emcc; then + if ! command -v emcc >/dev/null 2>&1; then echo "Emscripten not found. Installing via winget..." winget install -e --id emscripten.emsdk else @@ -75,5 +74,3 @@ else echo "Installing Emscripten from Source" install_emscripten_source fi - - diff --git a/scripts/templates/emscripten/src/main.cpp b/scripts/templates/emscripten/src/main.cpp index 9990a26206a..cfcb6b0bd66 100644 --- a/scripts/templates/emscripten/src/main.cpp +++ b/scripts/templates/emscripten/src/main.cpp @@ -7,10 +7,16 @@ //======================================================================== int main( ){ +#if defined(__EMSCRIPTEN_MAJOR__) + printf("emscripten:v%d.%d.%d\n", __EMSCRIPTEN_MAJOR__, __EMSCRIPTEN_MINOR__, __EMSCRIPTEN_TINY__); +#elif defined(__EMSCRIPTEN_major__) printf("emscripten:v%d.%d.%d\n", __EMSCRIPTEN_major__, __EMSCRIPTEN_minor__, __EMSCRIPTEN_tiny__); +#else + printf("emscripten:unknown version\n"); +#endif //Use ofGLFWWindowSettings for more options like multi-monitor fullscreen - ofGLWindowSettings settings; + tofGLWindowSettings settings; settings.setSize(1024, 768); settings.windowMode = OF_WINDOW; //can also be OF_FULLSCREEN