cmake_minimum_required(VERSION 3.21)
project(twngame LANGUAGES C)

if(NOT CMAKE_BUILD_TYPE)
        set(CMAKE_BUILD_TYPE Debug)
endif()

add_subdirectory($ENV{TWNROOT} ${CMAKE_BINARY_DIR}/twn)

cmake_path(GET CMAKE_SOURCE_DIR STEM LAST_ONLY GAME_PROJECT_NAME)
put_townengine(${CMAKE_CURRENT_SOURCE_DIR})

file(GLOB_RECURSE zig-sources ${CMAKE_CURRENT_SOURCE_DIR}/src/*.zig)

# TODO: support static build
# TODO: propagate release switches
add_custom_command(
    OUTPUT ${CMAKE_CURRENT_SOURCE_DIR}/libgame.so
    COMMAND env zig build
    DEPENDS ${TWN_TARGET} ${zig-sources}
)

add_custom_target(
    zig-step ALL
    DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/libgame.so
)