|
16 | 16 |
|
17 | 17 | PLATFORM_PROJECT_RELEASE_TARGET = bin/em/$(BIN_NAME)/index.html
|
18 | 18 | PLATFORM_PROJECT_DEBUG_TARGET = bin/em/$(BIN_NAME)/index.html
|
| 19 | +OUTPUT_DIR_RELEASE = $(dir $(PLATFORM_PROJECT_RELEASE_TARGET)) |
| 20 | +OUTPUT_DIR_DEBUG = $(dir $(PLATFORM_PROJECT_DEBUG_TARGET)) |
19 | 21 | BYTECODECORE=1
|
20 | 22 | PLATFORM_CORELIB_DEBUG_TARGET = $(OF_CORE_LIB_PATH)/libopenFrameworksDebug.o
|
21 | 23 | PLATFORM_CORELIB_RELEASE_TARGET = $(OF_CORE_LIB_PATH)/libopenFrameworks.o
|
@@ -65,13 +67,15 @@ PLATFORM_REQUIRED_ADDONS = ofxEmscripten
|
65 | 67 |
|
66 | 68 | ifdef EMSCRIPTEN_PTHREADS
|
67 | 69 | PLATFORM_PTHREAD = -s USE_PTHREADS=1
|
| 70 | + CFLAG_PLATFORM_PTHREAD = -pthread -matomics -mbulk-memory |
68 | 71 | else
|
69 | 72 | PLATFORM_PTHREAD = -s USE_PTHREADS=0
|
| 73 | + CFLAG_PLATFORM_PTHREAD = -matomics -mbulk-memory |
70 | 74 | endif
|
71 | 75 |
|
72 | 76 | # Code Generation Option Flags (http://gcc.gnu.org/onlinedocs/gcc/Code-Gen-Options.html)
|
73 |
| -PLATFORM_CFLAGS = -std=c17 -fPIC $(PLATFORM_PTHREAD) |
74 |
| -PLATFORM_CXXFLAGS = -Wall -std=c++17 -fPIC -Wno-warn-absolute-paths $(PLATFORM_PTHREAD) |
| 77 | +PLATFORM_CFLAGS = -std=c17 -fPIC $(CFLAG_PLATFORM_PTHREAD) |
| 78 | +PLATFORM_CXXFLAGS = -Wall -std=c++17 -fPIC -Wno-warn-absolute-paths $(CFLAG_PLATFORM_PTHREAD) |
75 | 79 |
|
76 | 80 | ################################################################################
|
77 | 81 | # PLATFORM LDFLAGS
|
@@ -99,25 +103,41 @@ ifdef USE_CCACHE
|
99 | 103 | endif
|
100 | 104 | endif
|
101 | 105 |
|
102 |
| -PLATFORM_LDFLAGS = --preload-file bin/data@data --emrun --bind --profiling-funcs -s USE_WEBGPU=1 -s NO_EXIT_RUNTIME=1 |
103 |
| -PLATFORM_LDFLAGS += -s ALLOW_MEMORY_GROWTH=1 -s MAX_WEBGL_VERSION=2 -s WEBGL2_BACKWARDS_COMPATIBILITY_EMULATION=1 -s FULL_ES2 -s FULL_ES3=1 |
104 |
| -PLATFORM_LDFLAGS += -s AUTO_NATIVE_LIBRARIES=1 -s AUTO_JS_LIBRARIES=1 -s EVAL_CTORS=1 -s ERROR_ON_UNDEFINED_SYMBOLS=0 |
| 106 | +PLATFORM_LDFLAGS += -s EMBIND_AOT=1 |
| 107 | +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 |
| 110 | +PLATFORM_LDFLAGS += -s AUTO_NATIVE_LIBRARIES=1 -s AUTO_JS_LIBRARIES=1 |
| 111 | +PLATFORM_LDFLAGS += -s EVAL_CTORS=1 -s ERROR_ON_UNDEFINED_SYMBOLS=0 |
105 | 112 | PLATFORM_LDFLAGS += $(PLATFORM_PTHREAD)
|
106 |
| -PLATFORM_LDFLAGS += -lGL -lhtml5 |
| 113 | +PLATFORM_LDFLAGS += -lGL |
| 114 | +PLATFORM_LDFLAGS += -lhtml5 |
| 115 | +PLATFORM_LDFLAGS += -s MINIFY_HTML=0 |
| 116 | +PLATFORM_LDFLAGS += -s DYNAMIC_EXECUTION=0 -s NO_DYNAMIC_EXECUTION=1 |
| 117 | +# PLATFORM_LDFLAGS += -s SINGLE_FILE=1 |
| 118 | +PLATFORM_LDFLAGS += -s MODULARIZE=1 |
| 119 | + |
107 | 120 | # PLATFORM_LDFLAGS += -s WASM_WORKERS=1 -s ENVIRONMENT="web,worker"
|
108 | 121 | # PLATFORM_LDFLAGS += -s USE_GLFW=3 -lglfw
|
109 |
| -PLATFORM_LDFLAGS += --js-library $(OF_ADDONS_PATH)/ofxEmscripten/libs/html5video/lib/emscripten/library_html5video.js |
110 |
| -PLATFORM_LDFLAGS += --js-library $(OF_ADDONS_PATH)/ofxEmscripten/libs/html5audio/lib/emscripten/library_html5audio.js |
| 122 | +# PLATFORM_LDFLAGS += --js-library $(OF_ADDONS_PATH)/ofxEmscripten/libs/html5video/lib/emscripten/library_html5video.js |
| 123 | +# PLATFORM_LDFLAGS += --js-library $(OF_ADDONS_PATH)/ofxEmscripten/libs/html5audio/lib/emscripten/library_html5audio.js |
111 | 124 |
|
112 | 125 | ifdef PROJECT_EMSCRIPTEN_TEMPLATE
|
113 |
| - PLATFORM_LDFLAGS += --shell-file $(PROJECT_EMSCRIPTEN_TEMPLATE) |
114 |
| -# else |
115 |
| -# PLATFORM_LDFLAGS += --shell-file $(OF_LIBS_PATH)/openFrameworksCompiled/project/emscripten/template.html |
| 126 | + PLATFORM_LDFLAGS += --shell-file $(PROJECT_EMSCRIPTEN_TEMPLATE) |
| 127 | +else |
| 128 | + PLATFORM_LDFLAGS += --shell-file $(OF_LIBS_PATH)/openFrameworksCompiled/project/emscripten/template.html |
116 | 129 | endif
|
117 | 130 |
|
118 |
| -PLATFORM_OPTIMIZATION_LDFLAGS_RELEASE = -O3 -s TOTAL_MEMORY=$(PLATFORM_EMSCRIPTEN_TOTAL_MEMORY) -s WASM=1 -fPIC |
| 131 | +EMSCRIPTEN_JS = $(OF_LIBS_PATH)/openFrameworksCompiled/project/emscripten/app.js |
| 132 | +EMSCRIPTEN_CSS = $(OF_LIBS_PATH)/openFrameworksCompiled/project/emscripten/style.css |
| 133 | +OUTPUT_DIR = output |
| 134 | + |
| 135 | + |
119 | 136 |
|
120 |
| -PLATFORM_OPTIMIZATION_LDFLAGS_DEBUG = -O1 -g -s ALLOW_MEMORY_GROWTH=1 -s TOTAL_MEMORY=134217728 -s WASM=1 -fPIC -s VERBOSE=1 -s GL_ASSERTIONS=1 |
| 137 | + |
| 138 | +PLATFORM_OPTIMIZATION_LDFLAGS_RELEASE = -O3 -s TOTAL_MEMORY=$(PLATFORM_EMSCRIPTEN_TOTAL_MEMORY) -s WASM=1 -fPIC -gsource-map |
| 139 | + |
| 140 | +PLATFORM_OPTIMIZATION_LDFLAGS_DEBUG = -O1 -g -s ALLOW_MEMORY_GROWTH=1 -s TOTAL_MEMORY=134217728 -s WASM=1 -fPIC -s VERBOSE=1 -s GL_ASSERTIONS=1 -gsource-map |
121 | 141 |
|
122 | 142 | ################################################################################
|
123 | 143 | # PLATFORM OPTIMIZATION CFLAGS
|
@@ -296,8 +316,23 @@ PLATFORM_LIBRARY_SEARCH_PATHS =
|
296 | 316 | ################################################################################
|
297 | 317 | #PLATFORM_CXX=
|
298 | 318 |
|
| 319 | +BUILD_TYPE ?= release |
| 320 | + |
299 | 321 | afterplatform: $(TARGET_NAME)
|
300 | 322 | @echo
|
| 323 | + @echo "Copying assets based on build type ($(BUILD_TYPE))..." |
| 324 | + @if [ "$(BUILD_TYPE)" = "debug" ]; then \ |
| 325 | + echo "Copying app.js and style.css to debug directory..."; \ |
| 326 | + mkdir -p bin/em/$(BIN_NAME)/debug; \ |
| 327 | + cp $(EMSCRIPTEN_JS) $(OUTPUT_DIR_DEBUG) || echo "Failed to copy app.js"; \ |
| 328 | + cp $(EMSCRIPTEN_CSS) $(OUTPUT_DIR_DEBUG) || echo "Failed to copy style.css"; \ |
| 329 | + else \ |
| 330 | + echo "Copying app.js and style.css to release directory..."; \ |
| 331 | + mkdir -p bin/em/$(BIN_NAME)/release; \ |
| 332 | + cp $(EMSCRIPTEN_JS) $(OUTPUT_DIR_RELEASE) || echo "Failed to copy app.js"; \ |
| 333 | + cp $(EMSCRIPTEN_CSS) $(OUTPUT_DIR_RELEASE) || echo "Failed to copy style.css"; \ |
| 334 | + fi |
| 335 | + @echo "Assets copied successfully." |
301 | 336 | @echo " compiling done"
|
302 | 337 | @echo " to launch the application on the default browser, run:"
|
303 | 338 | @echo
|
|
0 commit comments