From 2bd93ff9e07e86849af0412285579f360b307e5d Mon Sep 17 00:00:00 2001 From: John Alanbrook Date: Tue, 29 Apr 2025 12:43:17 -0500 Subject: [PATCH] closer to web build --- emscripten.cross | 19 +++++++++++-------- meson.build | 36 ++++++++++++++++++++++-------------- 2 files changed, 33 insertions(+), 22 deletions(-) diff --git a/emscripten.cross b/emscripten.cross index f43586b0..70713df8 100644 --- a/emscripten.cross +++ b/emscripten.cross @@ -3,17 +3,20 @@ c = 'emcc' cpp = 'em++' ar = 'emar' strip = 'emstrip' -cmake = 'emcmake' -pkg-config = 'empkg-config' +pkg-config = 'pkg-config' +exe_wrapper = 'node' [host_machine] system = 'emscripten' -cpu_family = 'wasm64' -cpu = 'wasm64' +cpu_family = 'wasm32' +cpu = 'wasm32' endian = 'little' [built-in options] -c_args = ['-pthread'] -cpp_args = ['-pthread'] -c_link_args = ['-pthread'] -cpp_link_args = ['-pthread'] \ No newline at end of file +pkg_config_path = '$EMSDK/upstream/emscripten/cache/sysroot/lib/pkgconfig' +cmake_prefix_path = '$EMSDK/upstream/emscripten/cache/sysroot' + +[properties] +needs_exe_wrapper = true +cmake_system_name = 'Emscripten' +sys_root = '@env:EMSDK@/upstream/emscripten/cache/sysroot' diff --git a/meson.build b/meson.build index be6aaa01..97ee7274 100644 --- a/meson.build +++ b/meson.build @@ -104,23 +104,19 @@ endif if host_machine.system() == 'emscripten' link += '-sUSE_WEBGPU' - # Use the Emscripten toolchain file when building with cmake subprojects: - sdl3_opts.add_cmake_defines({ - 'CMAKE_TOOLCHAIN_FILE': meson.current_source_dir() / 'Emscripten.cmake', - 'CMAKE_BUILD_TYPE': 'Release' - }) + # Use the pre-installed copy + deps += dependency('sdl3', + static : true, + method : 'pkg-config', # or 'cmake' if you prefer + required : true) +else + sdl3_proj = cmake.subproject('sdl3', options : sdl3_opts) + deps += sdl3_proj.dependency('SDL3-static') endif -sdl3_proj = cmake.subproject('sdl3', options: sdl3_opts) -deps += sdl3_proj.dependency('SDL3-static') -tracy_opts = ['fibers=true', 'on_demand=true'] quickjs_opts = [] -src += 'qjs_tracy.c' -add_project_arguments('-DTRACY_ENABLE', language:['c','cpp']) -deps += dependency('tracy', static:true, default_options:tracy_opts) - quickjs_opts += 'default_library=static' deps += dependency('quickjs', static:true, default_options:quickjs_opts) deps += dependency('qjs-layout', static:true) @@ -128,7 +124,19 @@ deps += dependency('qjs-miniz', static:true) deps += dependency('physfs', static:true) deps += dependency('threads') deps += dependency('chipmunk', static:true) -deps += dependency('enet', static:true) + +if host_machine.system() != 'emscripten' + deps += dependency('enet', static:true) + src += 'qjs_enet.c' + + src += 'qjs_tracy.c' + tracy_opts = ['fibers=true', 'on_demand=true'] + add_project_arguments('-DTRACY_ENABLE', language:['c','cpp']) + deps += dependency('tracy', static:true, default_options:tracy_opts) + + src += 'qjs_dmon.c' +endif + deps += dependency('soloud', static:true) deps += dependency('libqrencode', static:true) @@ -137,7 +145,7 @@ sources = [] src += [ 'anim.c', 'config.c', 'datastream.c','font.c','HandmadeMath.c','jsffi.c','model.c', 'render.c','simplex.c','spline.c', 'transform.c','prosperon.c', 'wildmatch.c', - 'sprite.c', 'rtree.c', 'qjs_dmon.c', 'qjs_nota.c', 'qjs_enet.c', 'qjs_soloud.c', + 'sprite.c', 'rtree.c', 'qjs_nota.c', 'qjs_soloud.c', 'qjs_qr.c', 'qjs_wota.c', 'monocypher.c', 'qjs_blob.c', 'qjs_crypto.c', 'qjs_time.c' ] # quirc src