Skip to content

Commit e1a694d

Browse files
committed
cmake: add emscripten specific flags
1 parent 4105084 commit e1a694d

1 file changed

Lines changed: 19 additions & 0 deletions

File tree

CMakeLists.txt

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -191,11 +191,30 @@ target_sources(infinisim PUBLIC
191191
list(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()
194212
find_package(SDL2 CONFIG QUIET)
195213
if(NOT TARGET SDL2::SDL2)
196214
find_package(SDL2 MODULE REQUIRED)
197215
endif()
198216
target_link_libraries(infinisim PRIVATE SDL2::SDL2)
217+
endif()
199218

200219
# Get the latest abbreviated commit hash of the working branch
201220
execute_process(

0 commit comments

Comments
 (0)