1
0
Fork 0
mirror of https://github.com/k4zmu2a/SpaceCadetPinball.git synced 2025-09-06 16:30:14 +02:00

initial wip emscripten port

This commit is contained in:
Alula 2021-09-28 14:03:06 +02:00
parent 22ce8ac538
commit d63e081b7a
WARNING! Although there is a key with this ID in the database it does not verify this commit! This commit is SUSPICIOUS.
GPG key ID: 3E00485503A1D8BA
13 changed files with 270418 additions and 181 deletions

View file

@ -14,8 +14,21 @@ if(WIN32)
set(SDL2_MIXER_PATH "${CMAKE_CURRENT_LIST_DIR}/Libs/SDL2_mixer")
endif()
find_package(SDL2 REQUIRED)
FIND_PACKAGE(SDL2_mixer REQUIRED)
if(${CMAKE_SYSTEM_NAME} MATCHES "Emscripten")
set(USE_FLAGS "-s USE_SDL=2 -s USE_SDL_MIXER=2")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${USE_FLAGS}")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${USE_FLAGS}")
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${USE_FLAGS}")
set(CMAKE_EXECUTABLE_SUFFIX .html)
set(SDL2_FOUND TRUE)
set(SDL2_INCLUDE_DIR "${EMSCRIPTEN_ROOT_PATH}/system/include/SDL2/")
set(SDL2_MIXER_INCLUDE_DIR "${EMSCRIPTEN_ROOT_PATH}/system/include/SDL2/")
set(SDL2_LIBRARIES "nul")
else()
find_package(SDL2 REQUIRED)
find_package(SDL2_mixer REQUIRED)
endif()
include_directories(${SDL2_INCLUDE_DIR} ${SDL2_MIXER_INCLUDE_DIR})
get_property(dirs DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} PROPERTY INCLUDE_DIRECTORIES)
@ -23,8 +36,6 @@ foreach(dir ${dirs})
message(STATUS "Include dir='${dir}'")
endforeach()
set(SOURCE_FILES
SpaceCadetPinball/control.cpp
SpaceCadetPinball/control.h
@ -164,6 +175,10 @@ set(SOURCE_FILES
SpaceCadetPinball/imstb_textedit.h
SpaceCadetPinball/imstb_rectpack.h
SpaceCadetPinball/imstb_truetype.h
SpaceCadetPinball/gm_sf2.cpp
SpaceCadetPinball/tsf.cpp
SpaceCadetPinball/tml.h
SpaceCadetPinball/tsf.h
)
add_executable(SpaceCadetPinball ${SOURCE_FILES})
@ -185,6 +200,15 @@ target_precompile_headers(SpaceCadetPinball
)
target_link_libraries(SpaceCadetPinball ${SDL2_LIBRARY} ${SDL2_MIXER_LIBRARY})
target_compile_definitions(SpaceCadetPinball PRIVATE -DMUSIC_TSF)
if(${CMAKE_SYSTEM_NAME} MATCHES "Emscripten")
target_link_libraries(SpaceCadetPinball idbfs.js)
set_target_properties(SpaceCadetPinball PROPERTIES LINK_FLAGS
"-s ALLOW_MEMORY_GROWTH=1 -s FORCE_FILESYSTEM=1 -s DEMANGLE_SUPPORT=1 \
--shell-file ${CMAKE_CURRENT_SOURCE_DIR}/SpaceCadetPinball/emscripten_shell.html \
--preload-file ${CMAKE_CURRENT_SOURCE_DIR}/game_resources@game_resources --bind")
endif()
# On Windows, copy DLL to output
if(WIN32)