Skip to content
Open
Show file tree
Hide file tree
Changes from 3 commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
name: conan-package
name: package

on:
push:
Expand All @@ -10,11 +10,12 @@ on:
- 'conanfile.py'
- 'conandata.yml'
- 'CMakeLists.txt'
- '.github/workflows/conan-package.yml'
- '.github/workflows/package.yml'
branches:
- main
- master
- 'CURA-*'
- 'NP-*'
- 'PP-*'
- '[0-9].[0-9]*'
- '[0-9].[0-9][0-9]*'
Expand All @@ -25,4 +26,13 @@ on:
jobs:
conan-package:
uses: ultimaker/cura-workflows/.github/workflows/conan-package.yml@main
with:
platform_wasm: true
secrets: inherit

npm-package:
needs: [ conan-package ]
uses: ultimaker/cura-workflows/.github/workflows/npm-package.yml@main
with:
package_version_full: ${{ needs.conan-package.outputs.package_version_full }}
secrets: inherit
20 changes: 18 additions & 2 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,11 @@ if (WITH_PYTHON_BINDINGS)
message(STATUS "Configuring pyUvula version: ${PYUVULA_VERSION}")
endif ()

option(WITH_JS_BINDINGS "Build with JavaScript/Emscripten bindings: `UvulaJS`" OFF)
if (WITH_JS_BINDINGS)
message(STATUS "Configuring UvulaJS with Emscripten bindings")
endif ()

if (NOT DEFINED UVULA_VERSION)
message(FATAL_ERROR "UVULA_VERSION is not defined!")
endif ()
Expand Down Expand Up @@ -51,8 +56,14 @@ target_compile_definitions(libuvula
UVULA_VERSION="${UVULA_VERSION}"
)

use_threads(libuvula)
enable_sanitizers(libuvula)
if(NOT EMSCRIPTEN)
use_threads(libuvula)
endif()
if(EMSCRIPTEN)
# Skip sanitizers and threading for Emscripten builds to avoid shared memory issues
else()
enable_sanitizers(libuvula)
endif()
if (${EXTENSIVE_WARNINGS})
set_project_warnings(libuvula)
endif ()
Expand All @@ -62,6 +73,11 @@ if (WITH_PYTHON_BINDINGS)
add_subdirectory(pyUvula)
endif ()

# --- Setup JavaScript/Emscripten bindings ---
if (WITH_JS_BINDINGS)
add_subdirectory(UvulaJS)
endif ()

# --- Setup command line interface (for testing purposes) ---
if (WITH_CLI)
add_subdirectory(cli)
Expand Down
16 changes: 16 additions & 0 deletions UvulaJS/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
add_executable(uvula_js UvulaJS.cpp)
target_link_options(uvula_js
PUBLIC
"SHELL:-s USE_ES6_IMPORT_META=1"
"SHELL:-s FORCE_FILESYSTEM=1"
"SHELL:-s EXPORT_NAME=uvula"
"SHELL:-s MODULARIZE=1"
"SHELL:-s EXPORT_ES6=1"
"SHELL:-s SINGLE_FILE=1"
"SHELL:-s ALLOW_MEMORY_GROWTH=1"
"SHELL:-s ERROR_ON_UNDEFINED_SYMBOLS=0"
"SHELL:--bind"
"SHELL:-l embind"
"SHELL: --emit-tsd uvula_js.d.ts"
)
target_link_libraries(uvula_js PUBLIC libuvula)
Loading
Loading