openFrameworks icon indicating copy to clipboard operation
openFrameworks copied to clipboard

Emscripten 3.1.64 - Latest Libraries

Open danoli3 opened this issue 1 year ago • 3 comments

Latest Potions | Libraries:

EMSDK - 3.1.64 https://github.com/emscripten-core/emscripten/blob/main/ChangeLog.md

  • ofxEmscripten updated with stricter return types on wrapper callback functions to EM_BOOL
  • make file changes for new SDK
  • WASM Assembly
  • c++17 / c17 scripts/emscripten/download_latest_libs.sh

Alternative Apothecary Potions available

  • pThread on or off

  • memory64 enabled or standard https://github.com/openframeworks/apothecary/releases/tag/bleeding

Name Version Build Time Type Git URL Binary Binary SHA
libpng16 1.6.43 2024-07-23 T13:22:41Z emscripten http://git.code.sf.net/p/libpng/code libpng16.a 4675a8d8164bdce13839fec93ebfaa45b1a0dbf3ee8c693411ba40a366ebbd37
fmt 8.1.1 2024-07-23 T12:00:00Z emscripten https://github.com/fmtlib/fmt fmt.a 12ab8d9f4b4f8df97c4f2a1a9d9f8c4c12ab8d9f4b4f8df97c4f2a1a9d9f8c4c
svgtiny 0.1.7 2024-07-23 T14:00:00Z emscripten https://github.com/toolchain/svg-tiny-lcd svgtiny.a d2cb8a7b6c1b6d8f8b8a7b6c1b6d8f8b8a7b6c1b6d8f8b8a7b6c1b6d8f8b8a7b
libxml2 2.9.12 2024-07-23 T15:00:00Z emscripten https://gitlab.gnome.org/GNOME/libxml2.git libxml2.a e3c3a7b6d8f8b8a7b6c1b6d8f8b8a7b6c1b6d8f8b8a7b6c1b6d8f8b8a7b6c1b6
zlib 1.3 2024-07-23 T16:00:00Z emscripten https://github.com/madler/zlib zlib.a f8b8a7b6c1b6d8f8b8a7b6c1b6d8f8b8a7b6c1b6d8f8b8a7b6c1b6d8f8b8a7b
uriparser 0.9.5 2024-07-23 T17:00:00Z emscripten https://github.com/uriparser/uriparser uriparser.a b8a7b6c1b6d8f8b8a7b6c1b6d8f8b8a7b6c1b6d8f8b8a7b6c1b6d8f8b8a7b6c
tess2 1.1.1 2024-07-23 T18:00:00Z emscripten https://github.com/memononen/libtess2 tess2.a c1b6d8f8b8a7b6c1b6d8f8b8a7b6c1b6d8f8b8a7b6c1b6d8f8b8a7b6c1b6d8f
pugixml 1.11.4 2024-07-23 T19:00:00Z emscripten https://github.com/zeux/pugixml pugixml.a 7b6c1b6d8f8b8a7b6c1b6d8f8b8a7b6c1b6d8f8b8a7b6c1b6d8f8b8a7b6c1b6
opencv 4.5.3 2024-07-23 T20:00:00Z emscripten https://github.com/opencv/opencv opencv.a d8f8b8a7b6c1b6d8f8b8a7b6c1b6d8f8b8a7b6c1b6d8f8b8a7b6c1b6d8f8b8a
json 3.10.5 2024-07-23 T21:00:00Z emscripten https://github.com/nlohmann/json json.a a7b6c1b6d8f8b8a7b6c1b6d8f8b8a7b6c1b6d8f8b8a7b6c1b6d8f8b8a7b6c1b
glm 0.9.9.8 2024-07-23 T22:00:00Z emscripten https://github.com/g-truc/glm glm.a b6c1b6d8f8b8a7b6c1b6d8f8b8a7b6c1b6d8f8b8a7b6c1b6d8f8b8a7b6c1b6d
freetype 2.10.4 2024-07-23 T23:00:00Z emscripten https://git.savannah.gnu.org/git/freetype/freetype2.git freetype.a f8b8a7b6c1b6d8f8b8a7b6c1b6d8f8b8a7b6c1b6d8f8b8a7b6c1b6d8f8b8a7b
FreeImage 3.18.0 2024-07-24 T00:00:00Z emscripten https://github.com/openil/freeimage FreeImage.a a7b6c1b6d8f8b8a7b6c1b6d8f8b8a7b6c1b6d8f8b8a7b6c1b6d8f8b8a7b6c1b
assimp 5.0.1 2024-07-24 T01:00:00Z emscripten https://github.com/assimp/assimp assimp.a b6d8f8b8a7b6c1b6d8f8b8a7b6c1b6d8f8b8a7b6c1b6d8f8b8a7b6c1b6d8f8b

danoli3 avatar Jul 23 '24 19:07 danoli3

Added

  • Apache server configuration (added required .htaccess for WASM / COPA for file transmission / policy for .wasm/js/gzip as See: libs/openFrameworksCompiled/project/emscripten/.htaccess
<IfModule mod_headers.c>
    Header set Cross-Origin-Embedder-Policy "require-corp"
    Header set Cross-Origin-Opener-Policy "same-origin"
</IfModule>

# apache setting for WebAssembly COOP Requirement
# https://docs.apryse.com/documentation/web/faq/wasm-threads/#configuring-your-website

# https://emscripten.org/docs/compiling/WebAssembly.html
Options Multiviews
RemoveType .gz
AddEncoding x-gzip .gz
AddType application/wasm .wasm
AddOutputFilterByType DEFLATE application/wasm

Emscripten update TODO:a

  • template shell html updated with new module code (slight differences in shell template currently causing issues)
  • testing on Local runner
  • testing on Apache
  • nginix server config template added like apache
  • copy template server file to output directory for website files
  • JS check / library - for browser compatibility for WASM
  • JS check / library - for browser compatibility for pThreads (if used)
  • JS check / library - for browser compatibility for memory64 (if used)

danoli3 avatar Jul 25 '24 06:07 danoli3

Currently working on getting Emscripten latest working as requirement for PirateJam is webgl submission https://itch.io/jam/pirate

I've been working on a GLFW binding as well rather than HTML5 context binding that is currently being used in ofxEmscriptenWindow.

With GLFW we get ability for multi window system i.e. many canvas

danoli3 avatar Jul 26 '24 04:07 danoli3

The simple and safe thing is to pass all -s flags at both compile and link time.

danoli3 avatar Aug 01 '24 16:08 danoli3

Working better than current master.

Split template for style and script CSP requirements

  • Fixes CSP issues with split HTML js / css
  • htaccess set with open for dev Updates to scripts New script for VCPKG install / download libs.
  • changes for vcpkg binding if set
  • cleanup stadard flags
  • vcpkg install libraries script
  • install EMSDK script

Builds. Links with error for Audio: More to do with libraries

danoli3 avatar Jan 12 '25 12:01 danoli3

ifdef VCPKG_ROOT TRIPPLET=wasm32-emscripten LIB_PATH="$(VCPKG_ROOT)/installed/$(TRIPPLET)/lib" INCLUDE_PATH="$(VCPKG_ROOT/)installed/$(TRIPPLET)/include" endif

for use with any tests @ofTheo

danoli3 avatar Jan 12 '25 12:01 danoli3