diff --git a/CMakeLists.txt b/CMakeLists.txt index ee4ab7831..3a23c26d2 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -59,6 +59,45 @@ if(IOS) include(cmake/XcodeHelper.cmake) endif() +if(EMSCRIPTEN) + # Web build (wasmga.me): no threads, so no cross-origin isolation is + # needed; libraries come from STK_WASM_PREFIX (see build.sh). + set(CMAKE_PREFIX_PATH "${STK_WASM_PREFIX}") + set(P "${STK_WASM_PREFIX}") + set(JPEG_INCLUDE_DIR "${P}/include") + set(JPEG_LIBRARY "${P}/lib/libjpeg.a") + set(PNG_PNG_INCLUDE_DIR "${P}/include") + set(PNG_LIBRARY "${P}/lib/libpng16.a") + set(ZLIB_INCLUDE_DIR "${P}/include") + set(ZLIB_LIBRARY "${P}/lib/libz.a") + set(FREETYPE_INCLUDE_DIRS "${P}/include/freetype2") + set(FREETYPE_LIBRARY "${P}/lib/libfreetype.a") + set(HARFBUZZ_INCLUDEDIR "${P}/include/harfbuzz") + set(HARFBUZZ_LIBRARY "${P}/lib/libharfbuzz.a") + set(CURL_INCLUDE_DIR "${P}/include") + set(CURL_LIBRARY "${P}/lib/libcurl.a") + set(OPENSSL_INCLUDE_DIR "${P}/include") + set(OPENSSL_CRYPTO_LIBRARY "${P}/lib/libcrypto.a") + set(OGGVORBIS_OGG_INCLUDE_DIR "${P}/include") + set(OGGVORBIS_VORBIS_INCLUDE_DIR "${P}/include") + set(OGGVORBIS_OGG_LIBRARY "${P}/lib/libogg.a") + set(OGGVORBIS_VORBISFILE_LIBRARY "${P}/lib/libvorbisfile.a") + set(OGGVORBIS_VORBIS_LIBRARY "${P}/lib/libvorbis.a") + set(USE_WIIUSE 0) + set(USE_DNS_C 1) + # Emscripten has no separate pthread library; the stubs are in libc. + set(PTHREAD_LIBRARY "-lc") + set(USE_SQLITE3 OFF) + set(USE_GLES2 1) + set(NO_SHADERC on) + set(BUILD_RECORDER OFF) + add_definitions(-DNO_IRR_COMPILE_WITH_X11_ -DNO_IRR_COMPILE_WITH_WAYLAND_DEVICE_ -DDISABLE_RPC) + set(WEB_FLAGS "-sUSE_SDL=2 -fwasm-exceptions -sSUPPORT_LONGJMP=wasm") + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${WEB_FLAGS}") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${WEB_FLAGS}") + set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${WEB_FLAGS} -L${P}/lib -lopenal -sENVIRONMENT=web -sMIN_WEBGL_VERSION=2 -sMAX_WEBGL_VERSION=2 -sFULL_ES3 -sALLOW_MEMORY_GROWTH -sINITIAL_MEMORY=512MB -sMAXIMUM_MEMORY=4GB -sSTACK_SIZE=8MB -sINVOKE_RUN=0 -sEXIT_RUNTIME=0 -sEXPORTED_RUNTIME_METHODS=FS,callMain,ccall,cwrap,UTF8ToString -sEXPORTED_FUNCTIONS=_main -sWASM_BIGINT -sMODULARIZE=0") +endif() + if(APPLE AND NOT IOS) if(${CMAKE_SYSTEM_PROCESSOR} STREQUAL "arm") set(ARCHFLAGS "arm64") @@ -960,3 +999,8 @@ if(MINGW) install(DIRECTORY ${CMAKE_BINARY_DIR}/bin/ DESTINATION ${STK_INSTALL_BINARY_DIR} FILES_MATCHING PATTERN "*.dll") endif() + +if(EMSCRIPTEN) + # Static libraries link in order: vorbisfile needs vorbis and ogg after it. + target_link_libraries(supertuxkart "${STK_WASM_PREFIX}/lib/libvorbis.a" "${STK_WASM_PREFIX}/lib/libogg.a") +endif() diff --git a/data/gui/screens/options/options_display.stkgui b/data/gui/screens/options/options_display.stkgui index dfa3ae762..63af8f18d 100644 --- a/data/gui/screens/options/options_display.stkgui +++ b/data/gui/screens/options/options_display.stkgui @@ -31,7 +31,7 @@ -