aboutsummaryrefslogtreecommitdiff
path: root/cmake/platforms/emscripten.cmake
diff options
context:
space:
mode:
Diffstat (limited to 'cmake/platforms/emscripten.cmake')
-rw-r--r--cmake/platforms/emscripten.cmake47
1 files changed, 47 insertions, 0 deletions
diff --git a/cmake/platforms/emscripten.cmake b/cmake/platforms/emscripten.cmake
new file mode 100644
index 0000000..d6b5cd2
--- /dev/null
+++ b/cmake/platforms/emscripten.cmake
@@ -0,0 +1,47 @@
+set(platform_common_sources emcc.c)
+set(platform_gui_libs)
+set(platform_libs)
+set(CMAKE_EXECUTABLE_SUFFIX ".js")
+
+set(emcc_export_list
+ # Event handlers for mouse and keyboard input
+ _mouseup
+ _mousedown
+ _mousemove
+ _key
+ # Callback when the program activates timing
+ _timer_callback
+ # Callback from button presses in the UI outside the canvas
+ _command
+ # Game-saving and game-loading functions
+ _get_save_file
+ _free_save_file
+ _load_game
+ # Callbacks to return values from dialog boxes
+ _dlg_return_sval
+ _dlg_return_ival
+ # Callbacks when the resizing controls are used
+ _resize_puzzle
+ _restore_puzzle_size
+ # Main program, run at initialisation time
+ _main)
+
+list(TRANSFORM emcc_export_list PREPEND \")
+list(TRANSFORM emcc_export_list APPEND \")
+string(JOIN "," emcc_export_string ${emcc_export_list})
+set(CMAKE_C_LINK_FLAGS "-s ASM_JS=1 -s EXPORTED_FUNCTIONS='[${emcc_export_string}]'")
+message("link=${CMAKE_C_LINK_EXECUTABLE}")
+
+set(build_cli_programs FALSE)
+
+function(get_platform_puzzle_extra_source_files OUTVAR NAME)
+ set(${OUTVAR} PARENT_SCOPE)
+endfunction()
+
+function(set_platform_puzzle_target_properties NAME TARGET)
+ em_link_pre_js(${TARGET} ${CMAKE_SOURCE_DIR}/emccpre.js)
+ em_link_js_library(${TARGET} ${CMAKE_SOURCE_DIR}/emcclib.js)
+endfunction()
+
+function(build_platform_extras)
+endfunction()