emscripten: use __attribute__(used) in code instead of EXPORTED_FUNCTIONS in cmake

This commit is contained in:
Sebastian Krzyszkowiak 2019-01-10 06:04:29 +01:00
parent 871cdf115e
commit fe9b6f5384
No known key found for this signature in database
GPG key ID: E8F235CF3BDBC3FF
2 changed files with 13 additions and 13 deletions

View file

@ -194,7 +194,7 @@ if (NOT LIBSUPERDERPY_CONFIG_INCLUDED)
set(CMAKE_EXECUTABLE_SUFFIX ".bc")
set(CMAKE_SHARED_LIBRARY_SUFFIX ".so")
set(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -s SIDE_MODULE=2 -s EXPORTED_FUNCTIONS=[\"_Gamestate_ProgressCount\",\"_Gamestate_Draw\",\"_Gamestate_Logic\",\"_Gamestate_Tick\",\"_Gamestate_Load\",\"_Gamestate_PostLoad\",\"_Gamestate_Start\",\"_Gamestate_Pause\",\"_Gamestate_Resume\",\"_Gamestate_Stop\",\"_Gamestate_Unload\",\"_Gamestate_ProcessEvent\",\"_Gamestate_Reload\"]")
set(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -s SIDE_MODULE=2")
set(EMSCRIPTEN_FLAGS --llvm-lto 1 --use-preload-plugins --pre-js "${LIBSUPERDERPY_DIR}/src/emscripten-pre-js.js" -s FULL_ES2=1 -s EMTERPRETIFY=1 -s EMTERPRETIFY_ASYNC=1 -s EMTERPRETIFY_WHITELIST=[\"_libsuperderpy_emscripten_mainloop\",\"_libsuperderpy_mainloop\",\"_MainloopTick\",\"_GamestateLoadingThread\"] -s EXPORT_ALL=1 -s EXTRA_EXPORTED_RUNTIME_METHODS=[\"Pointer_stringify\"])
set(LIBSUPERDERPY_EMSCRIPTEN_MODE "asm.js" CACHE STRING "Emscripten compilation mode (JavaScript or WebAssembly)")

View file

@ -79,17 +79,17 @@ void UnloadCurrentGamestate(struct Game* game);
// Gamestate API
extern int Gamestate_ProgressCount;
void Gamestate_Draw(struct Game* game, struct GamestateResources* data);
void Gamestate_Logic(struct Game* game, struct GamestateResources* data, double delta);
void Gamestate_Tick(struct Game* game, struct GamestateResources* data);
void* Gamestate_Load(struct Game* game, void (*progress)(struct Game*));
void Gamestate_PostLoad(struct Game* game, struct GamestateResources* data);
void Gamestate_Start(struct Game* game, struct GamestateResources* data);
void Gamestate_Pause(struct Game* game, struct GamestateResources* data);
void Gamestate_Resume(struct Game* game, struct GamestateResources* data);
void Gamestate_Stop(struct Game* game, struct GamestateResources* data);
void Gamestate_Unload(struct Game* game, struct GamestateResources* data);
void Gamestate_ProcessEvent(struct Game* game, struct GamestateResources* data, ALLEGRO_EVENT* ev);
void Gamestate_Reload(struct Game* game, struct GamestateResources* data);
__attribute__((used)) void Gamestate_Draw(struct Game* game, struct GamestateResources* data);
__attribute__((used)) void Gamestate_Logic(struct Game* game, struct GamestateResources* data, double delta);
__attribute__((used)) void Gamestate_Tick(struct Game* game, struct GamestateResources* data);
__attribute__((used)) void* Gamestate_Load(struct Game* game, void (*progress)(struct Game*));
__attribute__((used)) void Gamestate_PostLoad(struct Game* game, struct GamestateResources* data);
__attribute__((used)) void Gamestate_Start(struct Game* game, struct GamestateResources* data);
__attribute__((used)) void Gamestate_Pause(struct Game* game, struct GamestateResources* data);
__attribute__((used)) void Gamestate_Resume(struct Game* game, struct GamestateResources* data);
__attribute__((used)) void Gamestate_Stop(struct Game* game, struct GamestateResources* data);
__attribute__((used)) void Gamestate_Unload(struct Game* game, struct GamestateResources* data);
__attribute__((used)) void Gamestate_ProcessEvent(struct Game* game, struct GamestateResources* data, ALLEGRO_EVENT* ev);
__attribute__((used)) void Gamestate_Reload(struct Game* game, struct GamestateResources* data);
#endif