cmake_minimum_required(VERSION 3.25)
project(restunts_wasm_relink LANGUAGES C)
if(NOT EMSCRIPTEN)
    message(FATAL_ERROR "Configure with emcmake cmake; this package contains WebAssembly objects")
endif()
if(NOT CMAKE_C_COMPILER_VERSION VERSION_EQUAL "24.0.0")
    message(WARNING "Compiler differs from the original Clang 24.0.0; see nuked-build-info.txt for the matching SDK")
endif()
set(CMAKE_C_STANDARD 99)
set(CMAKE_C_STANDARD_REQUIRED ON)
add_subdirectory(nuked-opl2-lite)
add_library(restunts_game STATIC IMPORTED)
set_target_properties(restunts_game PROPERTIES
    IMPORTED_LOCATION "${CMAKE_CURRENT_SOURCE_DIR}/lib/librestunts_game.a")
add_library(restunts_webm STATIC IMPORTED)
set_target_properties(restunts_webm PROPERTIES
    IMPORTED_LOCATION "${CMAKE_CURRENT_SOURCE_DIR}/lib/librestunts_webm.a")
add_library(restunts_sdl STATIC IMPORTED)
set_target_properties(restunts_sdl PROPERTIES
    IMPORTED_LOCATION "${CMAKE_CURRENT_SOURCE_DIR}/lib/libSDL3.a")
file(GLOB entry_objects "${CMAKE_CURRENT_SOURCE_DIR}/objects/*.o")
if(NOT entry_objects)
    message(FATAL_ERROR "The relink package is missing its application entry objects")
endif()
add_executable(restunts ${entry_objects})
set_target_properties(restunts PROPERTIES LINKER_LANGUAGE C)
target_link_libraries(restunts PRIVATE restunts_game restunts_webm restunts_sdl nuked_opl2 m)
include(wasm-link.cmake)
restunts_configure_wasm(restunts "${CMAKE_CURRENT_SOURCE_DIR}/data"
    "${CMAKE_CURRENT_SOURCE_DIR}/shell.html")
