include(FetchContent)
set(NOX11 ON CACHE BOOL "" FORCE)
set(NOEGL ON CACHE BOOL "" FORCE)
set(STATICLIB ON CACHE BOOL "" FORCE)
set(NO_INIT_CONSTRUCTOR ON CACHE BOOL "" FORCE)
FetchContent_Declare(gl4es GIT_REPOSITORY https://github.com/ptitSeb/gl4es.git GIT_TAG a025615bc79ac43ec911dced8fe5b8eb45a0b72d)
FetchContent_MakeAvailable(gl4es)
set_target_properties(GL PROPERTIES ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib")
file(GLOB_RECURSE CTW_ENGINE CONFIGURE_DEPENDS "${CMAKE_SOURCE_DIR}/port/src/*.cpp")
file(GLOB CTW_GAME CONFIGURE_DEPENDS "${CMAKE_SOURCE_DIR}/port/game/*.cpp")
list(REMOVE_ITEM CTW_GAME "${CMAKE_SOURCE_DIR}/port/game/main.cpp")
add_executable(ctw_web ${CTW_ENGINE} ${CTW_GAME} "${CMAKE_SOURCE_DIR}/web/main.cpp" "${CMAKE_SOURCE_DIR}/web/checkpoint.cpp" "${CMAKE_SOURCE_DIR}/web/checkpoint_game.cpp" "${CMAKE_SOURCE_DIR}/web/checkpoint_weapons.cpp")
target_compile_features(ctw_web PRIVATE cxx_std_17)
target_include_directories(ctw_web BEFORE PRIVATE "${CMAKE_SOURCE_DIR}/web/include" "${gl4es_SOURCE_DIR}/include")
target_include_directories(ctw_web PRIVATE port/src port/game port/third_party/stb port/third_party/minimp3)
target_compile_options(ctw_web PRIVATE -sUSE_SDL=2)
target_link_libraries(ctw_web PRIVATE GL)
target_link_options(ctw_web PRIVATE -sUSE_SDL=2 -sFULL_ES2=1 -sALLOW_MEMORY_GROWTH=1 -sMAXIMUM_MEMORY=2147483648 -sSTACK_SIZE=8388608 -sFORCE_FILESYSTEM=1 -sMODULARIZE=1 -sEXPORT_ES6=1 -sEXPORT_NAME=createCTW -sENVIRONMENT=web -sNO_EXIT_RUNTIME=1 "-sEXPORTED_FUNCTIONS=['_ctw_start','_ctw_smoke','_ctw_touch','_ctw_resize','_ctw_save','_ctw_resume','_ctw_intro','_ctw_mobile_visible','_ctw_mute','_ctw_mission','_ctw_mission_press','_ctw_observe','_ctw_world','_ctw_mission_pointer']" "-sEXPORTED_RUNTIME_METHODS=['FS','ccall']")
set_target_properties(ctw_web PROPERTIES OUTPUT_NAME ctw SUFFIX ".mjs" RUNTIME_OUTPUT_DIRECTORY "${CMAKE_SOURCE_DIR}/dist")
foreach(asset index.html app.mjs files.mjs touch.mjs mobile-assets.mjs mobile-controls.mjs screen.mjs saves.mjs style.css)
 configure_file("${CMAKE_SOURCE_DIR}/web/${asset}" "${CMAKE_SOURCE_DIR}/dist/${asset}" COPYONLY)
endforeach()
