diff options
-rw-r--r-- | .gitlab-ci.yml | 13 | ||||
-rw-r--r-- | meson.build | 40 | ||||
-rw-r--r-- | meson/suppressions/meson.build | 7 |
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 |