summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.gitlab-ci.yml13
-rw-r--r--meson.build40
-rw-r--r--meson/suppressions/meson.build7
3 files changed, 56 insertions, 4 deletions
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 9af7b6b..573e1b2 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -124,6 +124,19 @@ win_rel:
- ninja -C build test
+wasm_dbg:
+ image: lv2plugin/debian-wasm
+ script:
+ - meson setup build --cross-file=/usr/share/meson/cross/wasm.ini -Dbuildtype=debug -Dstrict=true -Dwerror=true -Ddefault_library=static
+ - ninja -C build test
+
+wasm_rel:
+ image: lv2plugin/debian-wasm
+ script:
+ - meson setup build --cross-file=/usr/share/meson/cross/wasm.ini -Dbuildtype=release -Dstrict=true -Dwerror=true -Ddefault_library=static
+ - ninja -C build test
+
+
pages:
script:
- mkdir -p .public
diff --git a/meson.build b/meson.build
index 62314c2..e6f17b4 100644
--- a/meson.build
+++ b/meson.build
@@ -80,14 +80,44 @@ if get_option('default_library') == 'static'
add_project_arguments(['-DZIX_STATIC'], language: ['c'])
endif
+# Set any additional arguments required for building libraries or programs
+library_c_args = ['-DZIX_INTERNAL']
+library_link_args = []
+program_c_args = []
+program_link_args = []
+if cc.get_id() == 'emscripten'
+ wasm_c_args = [
+ '-matomics',
+ '-mbulk-memory',
+ '-pthread',
+ ]
+
+ wasm_link_args = [
+ '-matomics',
+ '-mbulk-memory',
+ '-pthread',
+ ['-s', 'ENVIRONMENT=node,worker'],
+ ]
+
+ library_c_args += wasm_c_args
+ program_c_args += wasm_c_args
+ library_link_args += wasm_link_args
+ program_link_args += wasm_link_args
+ program_link_args += [
+ ['-s', 'EXIT_RUNTIME'],
+ ['-s', 'PROXY_TO_PTHREAD'],
+ ]
+endif
+
# Build shared and/or static library
libzix = library(
meson.project_name() + library_suffix,
sources,
- c_args: ['-DZIX_INTERNAL'],
+ c_args: library_c_args,
gnu_symbol_visibility: 'hidden',
include_directories: include_dirs,
install: true,
+ link_args: library_link_args,
version: meson.project_version())
# Declare dependency for internal meson dependants
@@ -144,8 +174,10 @@ if not get_option('tests').disabled()
test(test,
executable(test,
sources,
+ c_args: program_c_args,
dependencies: [zix_dep],
- include_directories: include_dirs),
+ include_directories: include_dirs,
+ link_args: program_link_args),
timeout: 120)
endforeach
@@ -157,8 +189,10 @@ if not get_option('tests').disabled()
test(test,
executable(test,
sources,
+ c_args: program_c_args,
dependencies: [zix_dep, thread_dep],
- include_directories: include_dirs),
+ include_directories: include_dirs,
+ link_args: program_link_args),
timeout: 120)
endforeach
endif
diff --git a/meson/suppressions/meson.build b/meson/suppressions/meson.build
index 1ffc1a0..2f96751 100644
--- a/meson/suppressions/meson.build
+++ b/meson/suppressions/meson.build
@@ -15,7 +15,7 @@ if is_variable('cc')
c_suppressions = []
if get_option('strict')
- if cc.get_id() == 'clang'
+ if cc.get_id() in ['clang', 'emscripten']
c_suppressions += [
'-Wno-bad-function-cast',
'-Wno-c11-extensions', # Glib
@@ -63,6 +63,11 @@ if is_variable('cc')
c_suppressions += [
'-Wno-nullability-extension',
]
+ elif cc.get_id() == 'emscripten'
+ c_suppressions += [
+ '-Wno-format',
+ '-Wno-nullability-extension',
+ ]
elif cc.get_id() == 'msvc'
c_suppressions += [
'/wd4706', # assignment within conditional expression