@@ -191,11 +191,30 @@ target_sources(infinisim PUBLIC
191191list (APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR} /cmake" )
192192# Special case for SDL2 dependency, goal is to find a config that exports SDL2::SDL2 target
193193# libsdl2-dev has a `sdl2-config.cmake` that doesn't export this, but vcpkg does..
194+ if (${CMAKE_SYSTEM_NAME} MATCHES "Emscripten" )
195+ # emcmake cmake -S . -B _build_em
196+ set (USE_FLAGS "-s USE_PTHREADS=1 -pthread" )
197+ set (USE_FLAGS "${USE_FLAGS} -s USE_SDL=2" )
198+ set (USE_FLAGS "${USE_FLAGS} -fwasm-exceptions" )
199+ set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${USE_FLAGS} " )
200+ set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${USE_FLAGS} " )
201+ set (CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${USE_FLAGS} " )
202+ set (CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -s PTHREAD_POOL_SIZE=4 -s PROXY_TO_PTHREAD=1" )
203+ set (CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -s INITIAL_MEMORY=30736384" ) # 30MB memory
204+ #set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -s ALLOW_MEMORY_GROWTH=1")
205+ #set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -s ABORTING_MALLOC=0")
206+ set (CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -s EXPORTED_RUNTIME_METHODS=[\" printErr\" ]" )
207+ set (CMAKE_EXECUTABLE_SUFFIX .html)
208+ target_include_directories (infinisim PRIVATE ${SDL2_INCLUDE_DIRS} )
209+ target_link_libraries (infinisim PRIVATE ${SDL2_LIBRARIES} )
210+ #set_target_properties(infinisim PROPERTIES LINK_FLAGS "--shell-file ${PROJECT_SOURCE_DIR}/lvgl_shell.html")
211+ else ()
194212find_package (SDL2 CONFIG QUIET )
195213if (NOT TARGET SDL2::SDL2)
196214 find_package (SDL2 MODULE REQUIRED )
197215endif ()
198216target_link_libraries (infinisim PRIVATE SDL2::SDL2 )
217+ endif ()
199218
200219# Get the latest abbreviated commit hash of the working branch
201220execute_process (
0 commit comments