mirror of
git://git.tartarus.org/simon/puzzles.git
synced 2025-04-21 16:05:44 -07:00
Files

This turns on "use strict" in JavaScript, which enforces declaring variables among other things, and may allow better optimisations.
66 lines
1.8 KiB
CMake
66 lines
1.8 KiB
CMake
set(platform_common_sources emcc.c)
|
|
set(platform_gui_libs)
|
|
set(platform_libs)
|
|
set(CMAKE_EXECUTABLE_SUFFIX ".js")
|
|
|
|
set(WASM ON
|
|
CACHE BOOL "Compile to WebAssembly rather than plain JavaScript")
|
|
|
|
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
|
|
# Callback when device pixel ratio changes
|
|
_rescale_puzzle
|
|
# 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 ALLOW_MEMORY_GROWTH=1 \
|
|
-s EXPORTED_FUNCTIONS='[${emcc_export_string}]' \
|
|
-s EXTRA_EXPORTED_RUNTIME_METHODS='[cwrap,callMain]' \
|
|
-s STRICT_JS=1")
|
|
if(WASM)
|
|
set(CMAKE_C_LINK_FLAGS "${CMAKE_C_LINK_FLAGS} -s WASM=1")
|
|
else()
|
|
set(CMAKE_C_LINK_FLAGS "${CMAKE_C_LINK_FLAGS} -s WASM=0")
|
|
endif()
|
|
|
|
set(build_cli_programs FALSE)
|
|
set(build_gui_programs FALSE)
|
|
|
|
function(get_platform_puzzle_extra_source_files OUTVAR NAME)
|
|
set(${OUTVAR} PARENT_SCOPE)
|
|
endfunction()
|
|
|
|
function(set_platform_gui_target_properties TARGET)
|
|
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)
|
|
em_link_post_js(${TARGET} ${CMAKE_SOURCE_DIR}/emccpost.js)
|
|
endfunction()
|
|
|
|
function(build_platform_extras)
|
|
endfunction()
|