From 6690bf1d7378d299a81b4c534decdd45a5b4da95 Mon Sep 17 00:00:00 2001 From: Turo Lamminen Date: Fri, 24 Oct 2014 18:33:58 +0300 Subject: [PATCH 1/2] First attempt at emscripten --- CMakeLists.txt | 8 + cmake-scripts/FindSDL2.cmake | 2 + emconfig.sh | 11 + emscripten/openomf.html | 1310 ++++++++++++++++++++++++++++++++++ src/main.c | 20 + 5 files changed, 1351 insertions(+) create mode 100755 emconfig.sh create mode 100644 emscripten/openomf.html diff --git a/CMakeLists.txt b/CMakeLists.txt index 290632c70..11f4f4b39 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -304,6 +304,14 @@ set(CORELIBS ${ENET_LIBRARY} ) +IF (EMSCRIPTEN) + +set (CMAKE_EXE_LINKER_FLAGS + "--preload-file ../resources@resources -s TOTAL_MEMORY=67108864 -s ALLOW_MEMORY_GROWTH=1" +) + +ENDIF() + # Shadowdive IF(USE_SUBMODULES) set(CORELIBS ${CORELIBS} shadowdive) diff --git a/cmake-scripts/FindSDL2.cmake b/cmake-scripts/FindSDL2.cmake index 6c99c427c..1d3af0e3e 100644 --- a/cmake-scripts/FindSDL2.cmake +++ b/cmake-scripts/FindSDL2.cmake @@ -1,5 +1,7 @@ +IF (NOT EMSCRIPTEN) FIND_PACKAGE(Threads) +ENDIF () SET(SDL2_SEARCH_PATHS /usr/local/ diff --git a/emconfig.sh b/emconfig.sh new file mode 100755 index 000000000..ac83411f7 --- /dev/null +++ b/emconfig.sh @@ -0,0 +1,11 @@ +#!/bin/sh -x +EMSHIT=$(realpath emshit) +emcmake cmake . -Bemscripten \ + -DZLIB_INCLUDE_DIR=$EMSHIT -DZLIB_LIBRARY=$EMSHIT/libz.a \ + -DPNG_PNG_INCLUDE_DIR=$EMSHIT -DPNG_LIBRARY=$EMSHIT/libpng.a \ + -DSDL2_INCLUDE_DIR=$EMSHIT -DSDL2_LIBRARY=$EMSHIT/libSDL2.a \ + -DENET_INCLUDE_DIR=$EMSHIT -DENET_LIBRARY=$EMSHIT/libenet.a \ + -DCONFUSE_INCLUDE_DIR=$EMSHIT/confuse -DCONFUSE_LIBRARY=$EMSHIT/confuse/libconfuse.a \ + -DLIBINTL_INCLUDE_DIR=$EMSHIT -DLIBINTL_LIB_FOUND=1 -DLIBINTL_LIBRARIES="" \ + -DOPENAL_LIBRARY="" \ + -DVERBOSE=1 diff --git a/emscripten/openomf.html b/emscripten/openomf.html new file mode 100644 index 000000000..5b90fe24f --- /dev/null +++ b/emscripten/openomf.html @@ -0,0 +1,1310 @@ + + + + + + Emscripten-Generated Code + + + + + image/svg+xml + + +
+
Downloading...
+ + + Resize canvas + Lock/hide mouse pointer     + + + + +
+ +
+ + +
+ +
+ + + + + + diff --git a/src/main.c b/src/main.c index b28b047f3..3c6ed7ce7 100644 --- a/src/main.c +++ b/src/main.c @@ -243,3 +243,23 @@ int main(int argc, char *argv[]) { pm_free(); return ret; } + + +#ifdef __EMSCRIPTEN__ + + +#include + + +char * dgettext (const char * domainname, const char * msgid) { + return (char *) ""; +} + + +char * bindtextdomain (const char * domainname, const char * dirname) { + return (char *) ""; +} + + +#endif // __EMSCRIPTEN__ + From 65e7de0d7620c2db3ec463cdaedc5bf085b5ae48 Mon Sep 17 00:00:00 2001 From: Turo Lamminen Date: Sat, 9 May 2015 22:53:22 +0300 Subject: [PATCH 2/2] Fix strcasecmp on emscripten --- src/audio/music.c | 2 +- src/audio/sources/dumb_source.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/audio/music.c b/src/audio/music.c index 9838b1bb2..df4054ba1 100644 --- a/src/audio/music.c +++ b/src/audio/music.c @@ -1,6 +1,6 @@ #include #include -#ifdef __linux__ +#if defined(__linux__) || defined(EMSCRIPTEN) #include // strcasecmp #endif // __linux__ #include "resources/pathmanager.h" diff --git a/src/audio/sources/dumb_source.c b/src/audio/sources/dumb_source.c index 8bafa7ce0..067b57c8b 100644 --- a/src/audio/sources/dumb_source.c +++ b/src/audio/sources/dumb_source.c @@ -2,7 +2,7 @@ #include #include -#ifdef __linux__ +#if defined(__linux__) || defined(EMSCRIPTEN) #include // strcasecmp #endif // __linux__ #include