Skip to content

Commit c8019eb

Browse files
committed
Emscripten Fixes
1 parent c1f69f0 commit c8019eb

File tree

3 files changed

+66
-24
lines changed

3 files changed

+66
-24
lines changed

libs/openFrameworksCompiled/project/emscripten/app.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -101,7 +101,7 @@ document.addEventListener('DOMContentLoaded', () => {
101101
};
102102

103103
Module.setStatus("Downloading...");
104-
window.onerror = () => {
104+
window.onerror = (text) => {
105105
const total = Module.totalDependencies || 1; // Default to avoid division by zero
106106
const left = text.match(/(\d+)\/(\d+)/);
107107
if (!left) {

libs/openFrameworksCompiled/project/emscripten/config.emscripten.default.mk

+31-23
Original file line numberDiff line numberDiff line change
@@ -65,17 +65,17 @@ PLATFORM_REQUIRED_ADDONS = ofxEmscripten
6565
# Note: Leave a leading space when adding list items with the += operator
6666
################################################################################
6767

68-
ifdef EMSCRIPTEN_PTHREADS
69-
PLATFORM_PTHREAD = -s USE_PTHREADS=1
70-
CFLAG_PLATFORM_PTHREAD = -pthread -matomics -mbulk-memory
71-
else
72-
PLATFORM_PTHREAD = -s USE_PTHREADS=0
73-
CFLAG_PLATFORM_PTHREAD = -matomics -mbulk-memory
74-
endif
68+
# ifdef EMSCRIPTEN_PTHREADS
69+
PLATFORM_PTHREAD = #-s USE_PTHREADS=1
70+
CFLAG_PLATFORM_PTHREAD = #-pthread -matomics -mbulk-memory
71+
# else
72+
# PLATFORM_PTHREAD = -s USE_PTHREADS=0
73+
# CFLAG_PLATFORM_PTHREAD = -matomics -mbulk-memory
74+
# endif
7575

7676
# Code Generation Option Flags (http://gcc.gnu.org/onlinedocs/gcc/Code-Gen-Options.html)
77-
PLATFORM_CFLAGS = -std=c17 -fPIC $(CFLAG_PLATFORM_PTHREAD) -s ASSERTIONS=2
78-
PLATFORM_CXXFLAGS = -Wall -std=c++17 -fPIC -Wno-warn-absolute-paths $(CFLAG_PLATFORM_PTHREAD) -s ASSERTIONS=2
77+
PLATFORM_CFLAGS = -std=c17 -fPIC $(CFLAG_PLATFORM_PTHREAD) -s ASSERTIONS=2 #-sMEMORY64=1
78+
PLATFORM_CXXFLAGS = -Wall -std=c++17 -fPIC -Wno-warn-absolute-paths $(CFLAG_PLATFORM_PTHREAD) -s ASSERTIONS=2 #-sMEMORY64=1
7979

8080
################################################################################
8181
# PLATFORM LDFLAGS
@@ -103,23 +103,31 @@ ifdef USE_CCACHE
103103
endif
104104
endif
105105

106-
PLATFORM_LDFLAGS += -s EMBIND_AOT=1
106+
#PLATFORM_LDFLAGS += -s EMBIND_AOT=1
107107
PLATFORM_LDFLAGS = --preload-file bin/data@data --emrun --bind --profiling-funcs
108-
PLATFORM_LDFLAGS += -s USE_WEBGPU=1 -s NO_EXIT_RUNTIME=1
109-
PLATFORM_LDFLAGS += -s ALLOW_MEMORY_GROWTH=1 -s MAX_WEBGL_VERSION=2 -s WEBGL2_BACKWARDS_COMPATIBILITY_EMULATION=1 -s FULL_ES2
108+
PLATFORM_LDFLAGS += -s USE_WEBGPU=1
109+
PLATFORM_LDFLAGS += -s MAX_WEBGL_VERSION=2 -s WEBGL2_BACKWARDS_COMPATIBILITY_EMULATION=1 -s FULL_ES2
110110
PLATFORM_LDFLAGS += -s AUTO_NATIVE_LIBRARIES=1 -s AUTO_JS_LIBRARIES=1
111-
PLATFORM_LDFLAGS += -s EVAL_CTORS=1 -s ERROR_ON_UNDEFINED_SYMBOLS=1
111+
#PLATFORM_LDFLAGS += -s EVAL_CTORS=1 -s ERROR_ON_UNDEFINED_SYMBOLS=1
112112
PLATFORM_LDFLAGS += -s ASSERTIONS=2
113113
PLATFORM_LDFLAGS += -s GL_ASSERTIONS=1
114114
PLATFORM_LDFLAGS += -s VERBOSE=1
115-
PLATFORM_LDFLAGS += -sEXPORTED_FUNCTIONS='["_main", "_malloc", "_free"]'
115+
#PLATFORM_LDFLAGS += -sEXPORTED_FUNCTIONS='["_main", "_malloc", "_free"]'
116+
# PLATFORM_LDFLAGS += -sEXPORTED_FUNCTIONS=all
116117
PLATFORM_LDFLAGS += $(PLATFORM_PTHREAD)
117-
PLATFORM_LDFLAGS += -lGL
118-
PLATFORM_LDFLAGS += -lhtml5
118+
# PLATFORM_LDFLAGS += -lGL
119+
# PLATFORM_LDFLAGS += -lhtml5
119120
PLATFORM_LDFLAGS += -s MINIFY_HTML=0
120-
PLATFORM_LDFLAGS += -s DYNAMIC_EXECUTION=0 -s NO_DYNAMIC_EXECUTION=1
121+
PLATFORM_LDFLAGS += -s MAIN_MODULE=1 \
122+
-s ASSERTIONS=2 \
123+
-s EXPORT_ALL=1 \
124+
-s MODULARIZE=1 \
125+
-s NO_DYNAMIC_EXECUTION=1
126+
PLATFORM_LDFLAGS += -s ALLOW_MEMORY_GROWTH=1
127+
PLATFORM_LDFLAGS += -sLOAD_SOURCE_MAP=1 -sABORT_ON_WASM_EXCEPTIONS=1
128+
PLATFORM_LDFLAGS += -s DYNAMIC_EXECUTION=0 -s EMBIND_AOT=1
121129
# PLATFORM_LDFLAGS += -s SINGLE_FILE=1
122-
PLATFORM_LDFLAGS += -s MODULARIZE=1
130+
#PLATFORM_LDFLAGS += -s MODULARIZE=1
123131

124132
# PLATFORM_LDFLAGS += -s WASM_WORKERS=1 -s ENVIRONMENT="web,worker"
125133
# PLATFORM_LDFLAGS += -s USE_GLFW=3 -lglfw
@@ -165,11 +173,11 @@ PLATFORM_OPTIMIZATION_CFLAGS_RELEASE = -O3
165173
# DEBUG Debugging options (http://gcc.gnu.org/onlinedocs/gcc/Debugging-Options.html)
166174
PLATFORM_OPTIMIZATION_CFLAGS_DEBUG = -O1 -g
167175

168-
ifdef EMSCRIPTEN_MEMORY64
169-
PLATFORM_CFLAGS += -s MEMORY64
170-
PLATFORM_CXXFLAGS += -s MEMORY64
171-
PLATFORM_LDFLAGS += -s MEMORY64
172-
endif
176+
# ifdef EMSCRIPTEN_MEMORY64
177+
# PLATFORM_CFLAGS += -s MEMORY64
178+
# PLATFORM_CXXFLAGS += -s MEMORY64
179+
# PLATFORM_LDFLAGS += -s MEMORY64 -mwasm64
180+
# endif
173181

174182

175183
################################################################################
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
#!/bin/bash
2+
3+
# Set script directory
4+
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
5+
cd $SCRIPT_DIR
6+
7+
# Files to hash
8+
FILES=("index.js" "app.js")
9+
OUTPUT_HTACCESS=".htaccess"
10+
11+
# Generate CSP header
12+
CSP_HEADER="Content-Security-Policy: script-src 'self'"
13+
14+
# Generate hashes for each file
15+
for FILE in "${FILES[@]}"; do
16+
if [ -f "$FILE" ]; then
17+
# Compute SHA-256 hash and convert to base64
18+
HASH=$(sha256sum "$FILE" | awk '{print $1}' | xxd -r -p | base64)
19+
CSP_HEADER="$CSP_HEADER 'sha256-$HASH'"
20+
echo "HASH: $FILE - [$CSP_HEADER]"
21+
else
22+
echo "Warning: $FILE not found!"
23+
fi
24+
done
25+
26+
# Sanitize existing .htaccess
27+
if grep -q "Content-Security-Policy:" "$OUTPUT_HTACCESS"; then
28+
echo "Existing CSP header found. Removing it..."
29+
sed -i.bak '/Content-Security-Policy:/d' "$OUTPUT_HTACCESS"
30+
fi
31+
32+
# Append new CSP header
33+
echo -e "\n# Automatically generated CSP header\n$CSP_HEADER;" >> "$OUTPUT_HTACCESS"
34+
echo "CSP header added to $OUTPUT_HTACCESS."

0 commit comments

Comments
 (0)