Skip to content

Commit df00493

Browse files
committed
fix: fix some more web build errors
patch fmt so that it can be compiled with emscripten
1 parent e37d5f2 commit df00493

File tree

3 files changed

+25
-12
lines changed

3 files changed

+25
-12
lines changed

platforms/build-web.sh

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ embuilder build sdl2 harfbuzz freetype zlib sdl2_ttf vorbis mpg123 ogg libmodplu
2323

2424
export EMSCRIPTEN_SYS_ROOT="$EMSCRIPTEN_ROOT/upstream/emscripten/cache/sysroot"
2525

26-
export BUILD_DIR="build-emcc"
26+
export BUILD_DIR="build-web"
2727

2828
export CC="emcc"
2929
export CXX="em++"
@@ -36,11 +36,13 @@ export ARCH="wasm32"
3636
export CPU_ARCH="wasm32"
3737
export ENDIANESS="little"
3838

39-
export COMMON_EMSCRIPTEN_OPTIONS="'-fexceptions', '-sEXCEPTION_CATCHING_ALLOWED=[..]'"
39+
export PACKAGE_FLAGS="'-sUSE_SDL=2', '--use-port=sdl2'"
40+
41+
export COMMON_FLAGS="'-fexceptions', '-sEXCEPTION_CATCHING_ALLOWED=[..]', $PACKAGE_FLAGS"
4042

4143
# TODO see if ALLOW_MEMORY_GROWTH is needed, but if we load ttf's and music it likely is and we don't have to debug OOm crahses, that aren't handled by some thrid party library, which is painful
42-
export LINK_EMSCRIPTEN_OPTIONS="$COMMON_EMSCRIPTEN_OPTIONS, '-sEXPORT_ALL=1', '-sUSE_GLFW=3', '-sUSE_WEBGPU=1', '-sWASM=1', '-sALLOW_MEMORY_GROWTH=1', '-sNO_EXIT_RUNTIME=0', '-sASSERTIONS=1'"
43-
export COMPILE_EMSCRIPTEN_OPTIONS="$COMMON_EMSCRIPTEN_OPTIONS , '-sUSE_SDL=2'"
44+
export LINK_FLAGS="$COMMON_FLAGS, '-sEXPORT_ALL=1', '-sUSE_WEBGPU=1', '-sWASM=1', '-sALLOW_MEMORY_GROWTH=1', '-sNO_EXIT_RUNTIME=0', '-sASSERTIONS=1'"
45+
export COMPILE_FLAGS="$COMMON_FLAGS ,'-DAUDIO_PREFER_MP3'"
4446

4547
export CROSS_FILE="./platforms/crossbuild-web.ini"
4648

@@ -77,10 +79,10 @@ exe_wrapper = '$EMSDK_NODE'
7779
[built-in options]
7880
c_std = 'c11'
7981
cpp_std = 'c++23'
80-
c_args = [$COMPILE_EMSCRIPTEN_OPTIONS]
81-
c_link_args = [$LINK_EMSCRIPTEN_OPTIONS]
82-
cpp_args = [$COMPILE_EMSCRIPTEN_OPTIONS]
83-
cpp_link_args = [$LINK_EMSCRIPTEN_OPTIONS]
82+
c_args = [$COMPILE_FLAGS]
83+
cpp_args = [$COMPILE_FLAGS]
84+
c_link_args = [$LINK_FLAGS]
85+
cpp_link_args = [$LINK_FLAGS]
8486
8587
[properties]
8688
needs_exe_wrapper = true
@@ -122,9 +124,7 @@ if [ "$COMPILE_TYPE" == "complete_rebuild" ] || [ ! -e "$BUILD_DIR" ]; then
122124
"--wipe" \
123125
--cross-file "$CROSS_FILE" \
124126
"-Dbuildtype=$BUILDTYPE" \
125-
-Dcpp_args=-DAUDIO_PREFER_MP3 \
126-
-Ddefault_library=static \
127-
-Dfreetype2:zlib=disabled # TODI, since it's statically linked no duplicates are allowed, solve that
127+
-Ddefault_library=static
128128

129129
fi
130130

subprojects/fmt.wrap

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ patch_url = https://wrapdb.mesonbuild.com/v2/fmt_11.0.2-1/get_patch
88
patch_hash = 90c9e3b8e8f29713d40ca949f6f93ad115d78d7fb921064112bc6179e6427c5e
99
source_fallback_url = https://github.com/mesonbuild/wrapdb/releases/download/fmt_11.0.2-1/fmt-11.0.2.tar.gz
1010
wrapdb_version = 11.0.2-1
11-
diff_files = fmt_dependency_override.diff
11+
diff_files = fmt_dependency_override.diff, fmt_emscripten.diff
1212

1313
[provide]
1414
fmt = fmt_dep
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
diff --git a/include/fmt/base.h b/include/fmt/base.h
2+
index 6276494..869e075 100644
3+
--- a/include/fmt/base.h
4+
+++ b/include/fmt/base.h
5+
@@ -113,6 +113,8 @@
6+
// Detect consteval, C++20 constexpr extensions and std::is_constant_evaluated.
7+
#if !defined(__cpp_lib_is_constant_evaluated)
8+
# define FMT_USE_CONSTEVAL 0
9+
+#elif defined(__EMSCRIPTEN__)
10+
+# define FMT_USE_CONSTEVAL 0
11+
#elif FMT_CPLUSPLUS < 201709L
12+
# define FMT_USE_CONSTEVAL 0
13+
#elif FMT_GLIBCXX_RELEASE && FMT_GLIBCXX_RELEASE < 10

0 commit comments

Comments
 (0)